2016-08-15 29 views
3

私は合計重量を製品に追加してカートに表示する必要があります。
私はカートで、商品を追加するときに追加料金を設定することを意味します。WooCommerce - 商品合計重量に基づく追加料金を

この電荷は、次のように計算する必要があります。

$extra_charge = $total_cart_weight * 0.15; 

それが可能だ場合、どのように私はこれを達成することができますか?私はあなたが追加料金のカテゴリを作成するthisプラグインを使用することができます信じて

おかげ

+0

あなたは私のコードをテストしていますか?プラグインよりもはるかに優れ、リソースの消費量が少なく、軽量です。ありがとう – LoicTheAztec

+0

はい、私はテストしました。私は知りません。私のテーマ名は "santa"、カートワイトは "$ woocommerce-> cart-> cart_contents_weight"です。どうすればこの関数を動作させることができますか? –

答えて

1

、この方法:

function weight_add_cart_fee() { 

    // Set here your percentage 
    $percentage = 0.15; 

    if (is_admin() && ! defined('DOING_AJAX')) 
     return; 

    // Get weight of all items in the cart 
    $cart_weight = WC()->cart->get_cart_contents_weight(); 

    // calculate the fee amount 
    $fee = $cart_weight * $percentage; 

    // If weight amount is not null, adds the fee calcualtion to cart 
    if (!empty($cart_weight)) { 
     WC()->cart->add_fee(__('Extra charge (weight): ', 'your_theme_slug'), $fee, false); 
    } 
} 
add_action('woocommerce_cart_calculate_fees','weight_add_cart_fee'); 

このコードは、テストされ、を動作します。あなたのアクティブな子テーマまたはテーマのfunction.phpファイルに行きます。税金のオプションについて

グローバル税務の設定に応じてadd_fee() method tax optionsを参照してください。

参考:

0

。カート料金の%を総重量料金の%にするようにプラグインを編集する必要があるかもしれませんが、それを把握するのは難しいことではありません。あなたがどこから体重を得ているのか分からない限り、私は本当にあなたのためのプラグインを編集できません。 wc-extra-fee-option.phpファイルを編集し、$ extra_fee_option_costに$ totalの代わりにweightを掛けるように133行を変更するだけです。これを行うには、クラスにウェイトを入れ、133行目でクラスを呼び出します。あるいは、ウェイトをグローバル変数にして、133行目の$ totalの代わりにそのグローバル変数を使用します。あなたは簡単にwoocommerce_cart_calculate_feesフックにこの機能をフックにそれを行うことができます

関連する問題