更改总数和 tax_total Woocommerce

Change total and tax_total Woocommerce

我使用自定义计算创建了自定义结帐页面。我怎么不能通过 Ajax 更改总计和 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);
}