2017-09-26 108 views
0

我已經試過在過去的4個小時裏爲這個問題尋找答案,我還沒有設法找到答案。定製運費的Woocommerce折扣優惠券

我有一個自定義費用添加到我的woocommerce結帳頁面。這是由於woocommerce shipping無法提供的複雜的交付計算。

我現在需要創建一張優惠券,以便將此自定義費用設置爲零,如果輸入優惠券。

這是我的設置我的自定義費用

WC()->cart->add_fee(__('Shipping', 'woocommerce'), $shipping_price); 

這是我需要實現。

if($coupon_code == "this-string"){ 
$shipping_price = 0; 
} 

我需要一種方法來檢查,如果提交的優惠券代碼等於「此字符串」,如果是,我需要$運輸費用爲零。

請大家幫忙,謝謝。

回答

0

以下功能將增加運費到您的woo-commerce購物車,這會增加結帳價格。

// ADD SHIPPING COST 

function woo_add_cart_fee() { 

    WC()->cart->add_fee(__('Shipping', 'woocommerce'), 100); 

} 

add_action('woocommerce_cart_calculate_fees', 'woo_add_cart_fee'); 

如果你想定製的優惠券應用到運輸費用,你可以做沿着這

// ADD SHIPPING COST 

function woo_add_cart_fee() { 

    $custom_coupon = $_GET["coupon_name"]; 

    if ($custom_coupon = 'discount_code_half') { 

     WC()->cart->add_fee(__('Shipping', 'woocommerce'), 100); 

    }elseif ($custom_coupon = 'discount_code_more_than_half') { 

     WC()->cart->add_fee(__('Shipping', 'woocommerce'), 50); 

    }elseif ($custom_coupon = 'discount_code_free') { 

     WC()->cart->add_fee(__('Shipping', 'woocommerce'), 0); 

    }else (! $custom_coupon) { 

     WC()->cart->add_fee(__('Shipping', 'woocommerce'), 200); 

    } 
} 
add_action('woocommerce_cart_calculate_fees', 'woo_add_cart_fee');  

線的東西對於這種方法工作,你需要有一個優惠券按鈕提交購物車頁面的優惠券名稱。

無論是從上一頁還是您可以提交到它所在的同一頁面。無論哪種方式您的網頁將不得不刷新,所以你可以使用

$custom_coupon = $_GET["coupon_name"]; 

希望此回答可以幫助。 :)

0

您可以撥打WC()->cart->get_applied_coupons()以獲取應用於購物車的所有優惠券。然後您可以檢查您的優惠券代碼是否在該陣列中。事情是這樣的:

if(in_array($coupon_code, WC()->cart->get_applied_coupons())) { 
    // Do something 
} 
0

未經檢驗的,但我認爲你會希望在應用代碼時做一些事情,所以woocommerce_applied_coupon鉤子是相關的。

function so_46429329_applied_coupon($coupon_code) { 
    if($coupon_code == "this-string"){ 
     $shipping_price = 0; 
     WC()->cart->add_fee(__('Shipping', 'woocommerce'), $shipping_price); 
    } 
} 
add_action('woocommerce_applied_coupon', 'so_46429329_applied_coupon'); 

,我還沒有測試的部分是,這是否會覆蓋現有的「送貨費」或者,如果你需要找到一種方法,首先刪除。

+0

嗨我試過你的代碼。但它沒有改變任何東西。我不必重寫它。如果我能得到它可以折扣$ shipping_price的價值將工作。你知道我該怎麼做嗎? –

+0

我可以幫助我創建一個常規優惠券,折扣說.. R50然後我將能夠在$ shipping_price的價值。 –

+0

我有一個想法,這就是我發佈。 :)它是未經測試的......看起來在參數'($ cooupon_code)'應該是'($ coupon_code)''有一個輸入錯誤...否則條件IF將永遠不匹配。查看編輯。如果您啓用了「WP_DEBUG」和「WP_DEBUG_LOG」,那麼這應該顯示在您的調試日誌中......當嘗試開發自定義功能時,這通常是一個好主意。 – helgatheviking