我们有一个需求: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或者如果是应用coupon2if (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或者coupon2return $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或者如果是应用coupon2if (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或者coupon2return $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);// 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);// 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
暂无评论内容