Change total and tax_total Woocommerce


Change total and tax_total Woocommerce

使用自定义计算创建自定义结帐页面。如何通过Ajax改变total和tax_total(或者如果需要刷新页面)。

我为ajax请求创建了自定义页面,并设置了以下代码

$ss = new WC_Session_Handler();
$ss->set('tax_total',9999999);
$ss->save_data();
$ss->set('total',9999999);
$ss->save_data(); 
var_dump(WC());

在这个页面上我可以看到我的更改,但是'checkout page'什么都没有发生(即使刷新后)。如何更改任意的totaltax_total

尝试使用

add_action('woocommerce_calculate_totals', array($this, 'calculate_totals'), 10, 1);
function calculate_totals($totals){
//your code
}

也应该是tax_total在购物车对象,你可以改变它。

我在获得其他解决方案为我工作时遇到了问题,但至少对于v.3.0.1,这工作得很好:

add_action('woocommerce_cart_total', 'calculate_totals', 10, 1);
function calculate_totals($wc_price){
    $new_total = 0;
    foreach ( WC()->cart->cart_contents as $key => $value ) {
        //calculations here
    }
    return wc_price($new_total);
}