2017-09-26 20 views
0

私は今この問題の回答を過去4時間にわたって調査しようとしましたが、回答を見つけることができませんでした。カスタム配送料のためのWoocommerce割引クーポン

私はwoocommerceのチェックアウトページにカスタム料金を追加しました。これは、woocommerce出荷が提供できなかった複雑な配送計算によるものです。

クーポンを入力すると、このカスタム料金をゼロに設定するクーポンを作成する必要があります。

これはこれは私が達成するために必要なものである

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

私の私のカスタム料金を設定しています。

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

提出クーポンコード「は、この文字列」に等しい場合、それは私がゼロに$の船積み料金を設定する必要がある場合、私は確認する方法が必要です。

すべてのご協力をいただければ幸いです。

答えて

0

以下の機能は、後でチェックアウト価格に追加するウーコマースカートに送料を追加します。

// 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

関連する問題