我正在加入Woocommerce的woocommerce_calculate_totals
设置年龄验证的最低订单金额。基本上,客户需要订购最低1美元的订单。这适用于查看购物车页面,但小计被checkout.js
覆盖 - 我可以看到它在页面加载后被修改。
这是functions.php
中的代码:
function hv_set_min_total() {
if( is_checkout() ) {
global $woocommerce;
// set minimum cart total
$min_cart_total = 1;
// Total used before taxes and shipping
$total = $woocommerce->cart->subtotal;
// compare values
if( $total < $min_cart_total ) {
$diff = $min_cart_total - $total;
$woocommerce->cart->subtotal += $diff;
$woocommerce->cart->cart_contents_total += $diff;
$woocommerce->cart->subtotal_ex_tax += $diff;
}
}
}
add_action( 'woocommerce_calculate_totals', 'hv_set_min_total' );
我还尝试连接各种其他挂钩,这些挂钩都会更改小计,但仍会被checkout.js
文件覆盖。关于如何阻止这种情况发生的任何想法?
我尝试过的其他事情,但仍被删除:
答案 0 :(得分:0)
我没有康复,但让我们看看这是否适合您,您使用的是woocommerce_calculate_totals
,但您没有返回任何内容。
我要做的是:
function totales ($totals){
//echo "<pre>";
//print_r($totals);
//echo "</pre>";
//All your code ...
$totals->subtotal_ex_tax = ($totals->subtotal_ex_tax - 100000);
$totals->cart_contents_total = ($totals->cart_contents_total - 15000);
return $totals;
}
add_action('woocommerce_calculate_totals', 'totales', 10 , 1);
这样您就可以修改产品的小计和总数而不是价格。
如果您想知道包含该钩子的方法go here
答案 1 :(得分:0)
事实证明,当is_checkout()
运行时checkout.js
方法显然返回false或不可用,这导致小计恢复到原始状态。
对于遇到此问题的任何人:is_checkout()
无法使用checkout.js
方法