WooCommerce:多次自动应用相同的优惠券
WooCommerce : auto apply the same coupon several times
在 WooCommerce 中,我自动应用优惠券,但我找不到实现此行为的方法:
- 每次购物车中有 x 件商品 => 使用适当的优惠券。
例如:
- 如果该作者的 3 本书 => -5 欧元在购物车上
- 如果同一作者的额外 3 本书(其他书籍相同)=> -5 欧元额外
- 等(没有限制:如果订购 3000 本书应该有效 => -15000 欧元)
我使用 $wc->cart->add_discount($discount),但它 returns "coupon already applied" 因为第二组商品在购物车中。
你知道这是否可能吗?
谢谢
与其使用优惠券,不如使用自定义折扣功能来实现此功能:
add_action( 'woocommerce_cart_calculate_fees', 'cart_item_discount_by3', 10, 1 );
function cart_item_discount_by3( $cart_object ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
// initializing and set variables
$discount = 0;
$by3 = 3; // each 3 item quantity
$dicount_price_by3 = 5; // amout to discount each 3 items quantity
// Iterating through each cart item
foreach( $cart_object->get_cart() as $cart_item ):
// Get the item quantity
$qty = $cart_item["quantity"];
// starting when quantity is upto 3
if($qty >= $by3):
for($j = $by3, $k = 0; $j <= $qty; $j+=$by3, $k++);
$discount += $dicount_price_by3 * $k;
break;
endif;
endforeach;
// Adding the discount (a negative fee)
if ($discount > 0){
$cart_object->add_fee( __( "Discount quantity", 'woocommerce'), -$discount, true );
# Note: Last argument in add_fee() method is related to applying the tax or not to the discount (true or false)
// Displaying a custom notice (optional)
wc_clear_notices();
wc_add_notice( __("You get a quantity discount on some items"), 'notice');
}
}
代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。
此代码已经过测试并有效。
在 WooCommerce 中,我自动应用优惠券,但我找不到实现此行为的方法:
- 每次购物车中有 x 件商品 => 使用适当的优惠券。
例如:
- 如果该作者的 3 本书 => -5 欧元在购物车上
- 如果同一作者的额外 3 本书(其他书籍相同)=> -5 欧元额外
- 等(没有限制:如果订购 3000 本书应该有效 => -15000 欧元)
我使用 $wc->cart->add_discount($discount),但它 returns "coupon already applied" 因为第二组商品在购物车中。
你知道这是否可能吗?
谢谢
与其使用优惠券,不如使用自定义折扣功能来实现此功能:
add_action( 'woocommerce_cart_calculate_fees', 'cart_item_discount_by3', 10, 1 );
function cart_item_discount_by3( $cart_object ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
// initializing and set variables
$discount = 0;
$by3 = 3; // each 3 item quantity
$dicount_price_by3 = 5; // amout to discount each 3 items quantity
// Iterating through each cart item
foreach( $cart_object->get_cart() as $cart_item ):
// Get the item quantity
$qty = $cart_item["quantity"];
// starting when quantity is upto 3
if($qty >= $by3):
for($j = $by3, $k = 0; $j <= $qty; $j+=$by3, $k++);
$discount += $dicount_price_by3 * $k;
break;
endif;
endforeach;
// Adding the discount (a negative fee)
if ($discount > 0){
$cart_object->add_fee( __( "Discount quantity", 'woocommerce'), -$discount, true );
# Note: Last argument in add_fee() method is related to applying the tax or not to the discount (true or false)
// Displaying a custom notice (optional)
wc_clear_notices();
wc_add_notice( __("You get a quantity discount on some items"), 'notice');
}
}
代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。
此代码已经过测试并有效。