我正在尝试创建一个功能,以使购物车和结帐页面中的优惠券代码成为条件。
条件如下:(1)如果应用了couponX,则删除存在的couponY。 (2)如果应用了couponY,则删除couponX(如果存在)。
添加和删除多个优惠券的可能性也会有所帮助。
我有这个,它似乎工作得很好,除了在添加save5today之后不允许我添加overstock10优惠券。
add_action( 'woocommerce_before_calculate_totals', 'auto_add_remove_coupon' );
function auto_add_remove_coupon( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
return;
$save5today = 'save5today';
$overstock10 = 'overstock10';
if ( $cart->has_discount( $save5today ) ) {
$cart->remove_coupon( $overstock10 );
wc_clear_notices();
wc_add_notice( __("Your custom notice - coupon added (optional)","woocommerce"), 'notice');
} elseif ( $cart->has_discount( $overstock10 ) ) {
$cart->remove_coupon( $save5today );
wc_clear_notices();
wc_add_notice( __("Your custom notice - coupon removed (optional)","woocommerce"), 'notice');
}
}