感谢@Bhautik,如果购物车金额低于特定金额,我有不应用优惠券的解决方案。 我的主题是: 我有问题。我有优惠券可以给我 15% 的折扣。我也有最低 200 美元的运输方式。我注意到如果我在金额上应用优惠券 ~ 200 美元,小计低于 200 美元并且优惠券运输方式有效。如果小计低于 200 美元,我想创建一种方法来限制更智能的优惠券不被应用。 我想取消单个优惠券代码的限制,成为任何人。
我们有解决方案
add_action( 'woocommerce_before_cart' , 'home_test_coupon_fix' );
add_action( 'woocommerce_before_checkout_form' , 'home_test_coupon_fix' );
function home_test_coupon_fix() {
global $woocommerce;
$cart_total = WC()->cart->get_subtotal();
$coupon_id = 'hometest';
$minimum_amount = 500 + WC()->cart->get_coupon_discount_amount( $coupon_id );
$currency_code = get_woocommerce_currency();
wc_clear_notices();
if ( $cart_total < $minimum_amount && $woocommerce->cart->applied_coupons[0] === $coupon_id ) {
WC()->cart->remove_coupon( 'hometest' );
wc_print_notice( "Get 50% off if you spend more than $minimum_amount $currency_code!", 'notice' );
}
wc_clear_notices();
}
答案 0 :(得分:1)
删除此 && $woocommerce->cart->applied_coupons[0] === $coupon_id
条件以应用所有优惠券。试试下面的代码。
add_action( 'woocommerce_before_cart' , 'home_test_coupon_fix' );
add_action( 'woocommerce_before_checkout_form' , 'home_test_coupon_fix' );
function home_test_coupon_fix() {
global $woocommerce;
$cart_total = WC()->cart->get_subtotal();
$minimum_amount = 500 + WC()->cart->get_coupon_discount_amount( $woocommerce->cart->applied_coupons[0] );
$currency_code = get_woocommerce_currency();
wc_clear_notices();
if ( $cart_total < $minimum_amount ) {
WC()->cart->remove_coupon( $woocommerce->cart->applied_coupons[0] );
wc_print_notice( "Get 50% off if you spend more than $minimum_amount $currency_code!", 'notice' );
}
wc_clear_notices();
}