使用自定义计算创建自定义结帐页面。如何通过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'什么都没有发生(即使刷新后)。如何更改任意的total
或tax_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);
}