我从this question here来到这里,希望为我的WooCommerce网站找到解决方案。我正在寻找一种方法,只为购物车中的偶数项目在我的购物车中获得折扣。
例如:
如果购物车中只有1件商品:全价
购物车中的2件物品: - (减号) 2 $两者
购物车中的5件物品: - (减号) 2件4美元(如果购物车中有奇数件物品.1件物品总是有全价)
顺便说一下,我的所有产品价格相同。
有人能够帮助我解决这个问题吗,因为有人在我提到的问题链接上为这个人提供了帮助吗?
答案 0 :(得分:2)
这是您的自定义函数,它附加在 woocommerce_cart_calculate_fees
操作挂钩中,可以满足您的期望:
add_action( 'woocommerce_cart_calculate_fees','cart_conditional_discount', 10, 1 );
function cart_conditional_discount( $cart_object ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$cart_count = 0;
foreach($cart_object->get_cart() as $cart_item){
// Adds the quantity of each item to the count
$cart_count += $cart_item["quantity"];
}
// For 0 or 1 item
if( $cart_count < 2 ) {
return;
}
// More than 1
else {
// Discount calculations
$modulo = $cart_count % 2;
$discount = (-$cart_count + $modulo);
// Adding the fee
$discount_text = __('Discount', 'woocommerce');
$cart_object->add_fee( $discount_text, $discount, false );
}
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。
此代码经过测试并有效。