我有Woocommerce购物车,我成功地添加了一个“捆绑”折扣,如果购物车数量是5或更多,就可以从购物车中的每一项商品中得到7美元的折扣。
我还想为某些产品启用优惠券。但是我不想把我的优惠券和优惠券放在一起。
以下是我目前如何添加捆绑折扣:
add_action( 'woocommerce_cart_calculate_fees','wc_cart_quantity_discount', 10, 1 );
function wc_cart_quantity_discount( $cart_object ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$discount = 0;
$cart_item_count = $cart_object->get_cart_contents_count();
if( $cart_item_count > 4 )
$percent = 25;
$discount -= $cart_object->get_cart_contents_count() * 7;
if( $percent > 0 )
$cart_object->add_fee( __( "Bundle discount", "woocommerce" ), $discount, true);
} 例如,:
我的手推车里有5件物品,其中1件已经用优惠券打折了35%。
是否有一种方法,使我的捆绑折扣只对4项不打折的项目申请优惠券?
我不想加7美元加35%的折扣。我只希望优惠券有优先权,如果它是适用的,而不失去我的其他4个项目的折扣。
发布于 2017-09-07 21:02:39
下面是钩式函数代码,当购物车中至少有5个项目时,它将为每个非折扣购物车项目添加一个折扣$7:
add_action( 'woocommerce_cart_calculate_fees','wc_cart_quantity_discount', 10, 1 );
function wc_cart_quantity_discount( $cart_object ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$cart_total_count = $cart_object->get_cart_contents_count();
$cart_items_count = 0;
// Counting non discounted cart items (by a coupon discount)
foreach( $cart_object->get_cart() as $cart_item_key => $cart_item )
if( $cart_item['line_subtotal'] == $cart_item['line_total'] )
$cart_items_count += $cart_item['quantity'];
if( $cart_total_count > 4 ){
$discount = $cart_items_count * 7;
$cart_object->add_fee( __( "Bundle discount", "woocommerce" ), -$discount, true);
}
}代码在您的活动子主题(或主题)的function.php文件中,或者在任何插件文件中。
这段代码是经过测试和工作的。
https://stackoverflow.com/questions/46103372
复制相似问题