2017-05-19 6 views
0

小計を変更するこのタイプのコードを試していますが、小計に応じて合計を変更するには、オーダーテーブルに割引フィールドを追加しないでください。woocommerce小計と合計での割引を適用する方法は?

// define the woocommerce_cart_subtotal callback 
function filter_woocommerce_cart_subtotal($array, $int, $int) { 
// make filter magic happen here... 
};  
// add the filter 
add_filter('woocommerce_cart_subtotal', 'filter_woocommerce_cart_subtotal', 10, 3); 
+0

問題は何ですか? – Reigel

+0

@Reigel小計は表示(テキスト)として変更されますが、論理的にはこのフックでは変更されません。だから、私も合計で変更したい。 – GDEEP

答えて

0

まあ、間違ったフックを使用しています。そのフィルタは、表示サブ合計を変更することです。あなたが必要なもの

はこれです:上記

add_action('woocommerce_calculate_totals', 'woocommerce_calculate_totals', 30); 
function woocommerce_calculate_totals($cart) { 
    // make magic happen here... 
    // use $cart object to set or calculate anything. 

    if ('excl' === $cart->tax_display_cart) { 
     $cart->subtotal_ex_tax = 400; 
    } else { 
     $cart->subtotal = 350; 
    } 

} 

かかわらず、製品がカートにあるものの、350や400のように表示小計になり、あなたの税金の設定に応じますが。論理なしで小計を設定しているからです。独自のロジックを追加します。

woocommerce_after_calculate_totalsも同様の考え方で使用できます。

add_action('woocommerce_after_calculate_totals', 'woocommerce_after_calculate_totals', 30); 
function woocommerce_after_calculate_totals($cart) { 
    // make magic happen here... 
    // use $cart object to set or calculate anything. 

    if ('excl' === $cart->tax_display_cart) { 
     $cart->subtotal_ex_tax = 400; 
    } else { 
     $cart->subtotal = 350; 
    } 
    $cart->total = 50; 

} 

reigelgallarde.me

+0

@Reigal合計でも変更したいと思います。 – GDEEP

+0

このファイルのヒントを得ることができます: 'woocommerce/includes/class-wc-cart.php'行目1093. – Reigel

+0

$ cart-> totalは働いていません。' $ cart-> total = 350; ' – GDEEP

関連する問題