当购物车的数量是2的倍数时,我试图为购物车的总价格增加折扣;我已经制定了一些代码,只允许每种产品中的一种,我计划生产9种产品。
目前价格为17美元/产品;如果用户添加两个产品,则总数应为30美元,这应该反映在2个数量的每个倍数(意味着有3个产品,价格是47美元,但是4个,它是60美元)。
以下是我的代码。出于某种原因,当我在购物车中有一个产品时,它将总数设置为30美元。
function custom_price_function( $total, $cart ) {
//if( $cart->cart_contents_count = 2 && $cart->cart_contents_count >= 80 )
if( $cart->cart_contents_count = 2 )
$total = 30;
return $total;
}
add_filter( 'woocommerce_calculated_total', 'custom_price_function', 10, 2 );
答案 0 :(得分:1)
这样的事情应该有效:
function calculate_total($total, $cart) {
if($cart->cart_contents_count == 1){
return $total;
}
$to_discount = 0;
for($x = 0; $x <= $cart->cart_contents_count; $x ++){
if($x % 2 === 0){
$to_discount += 2;
}
if($cart->cart_contents_count == $x && $x % 2 === 0){
$to_discount += 2;
}
}
return $new_price - $to_discount;;
}
add_filter( 'woocommerce_calculated_total', 'calculate_total', 10, 2 );
我们所做的是根据购物车中商品的总数来计算。你可以将它扩展为更具动态性。但它完成了你现在所需要的东西
简单测试:
for($x = 1; $x < 10; $x++ ){
echo calculate_total(17 * $x, $x) . "\n";
}
输出:
17
30
47
62
79
94
111
126
143