我们有一个需求:coupon1和coupon2是两个优惠券,coupon1和coupon2都能单独使用,并且coupon1只能与coupon2一起使用,同理coupon2也只能与coupon1一起使用。
代码如下:
// coupon1与 coupon2优惠券的使用:coupon1只能与coupon2一起使用,同理coupon2也只能与coupon1一起使用。
add_filter("woocommerce_coupon_is_valid",function($status,$coupon){
$cart = WC()->cart;
$applied_coupons = $cart->get_applied_coupons();
$ccoupon = $coupon->get_code();
if(count($applied_coupons) === 0){//没有使用优惠券
return $status;
}
if(count($applied_coupons) === 1){//使用了一张优惠券
if($ccoupon == "coupon1" or $ccoupon == "coupon2"){//如果是应用coupon1或者如果是应用coupon2
if (is_array($applied_coupons)) {
// 有且只有coupon2优惠券时能使用
if(isset($applied_coupons[0])){
if (($applied_coupons[0] === "coupon1" or $applied_coupons[0] === "coupon2")) {
return $status;
}
}
}else{
return $status;
}
}else{//如果是应用其他优惠券
if (is_array($applied_coupons)) {
if(!(in_array("coupon1",$applied_coupons) or in_array("coupon2",$applied_coupons ))){// 没有应用coupon1或者coupon2
return $status;
}
}else{
return $status;
}
}
add_filter("woocommerce_coupon_error",function(){return "Coupon cannot be used, please remove existing coupon before applying.";});
return false;
}elseif(count($applied_coupons) === 2){//使用了两张优惠券
if($ccoupon == "coupon1" or $ccoupon == "coupon2"){//如果是应用coupon1或者如果是应用coupon2
if (is_array($applied_coupons)) {
// 有且只有coupon2优惠券时能使用
if (in_array("coupon1",$applied_coupons) and in_array("coupon2",$applied_coupons )) {
return $status;
}
}else{
return $status;
}
}else{//如果是应用其他优惠券
if (is_array($applied_coupons)) {
if(!(in_array("coupon1",$applied_coupons) or in_array("coupon2",$applied_coupons ))){// 没有应用coupon1或者coupon2
return $status;
}
}else{
return $status;
}
}
add_filter("woocommerce_coupon_error",function(){return "Coupon cannot be used, please remove existing coupon before applying.";});
return false;
}
return $status;
},10,2);
© 版权声明
THE END
暂无评论内容