排除具有2项特定属性中的项的变化从在Woocommerce优惠券使用(Exclude variati

2019-09-25 23:24发布

我需要防止的优惠券,如果客户在他们的车与下列属性方面的任何具体的变型产品中使用:

  • attribute_pa_style => swirly
  • attribute_pa_style => circle

我已经通过了适用于限制特定的产品和特定类别的Woocommerce剧本看了看,但不能与有关属性和所有优惠券看着办吧。

任何帮助表示赞赏。

Answer 1:

这是可以做到用woocommerce_coupon_is_valid过滤钩子是这样的:

add_filter( 'woocommerce_coupon_is_valid', 'check_if_coupons_are_valid', 10, 3 );
function check_if_coupons_are_valid( $is_valid, $coupon, $discount ){
    // YOUR ATTRIBUTE SETTINGS BELOW:
    $taxonomy   = 'pa_style';
    $term_slugs = array('swirly', 'circle');

    // Loop through cart items and check for backordered items
    foreach ( WC()->cart->get_cart() as $cart_item ) {
        foreach( $cart_item['variation'] as $attribute => $term_slug ) {
            if( $attribute === 'attribute_'.$taxonomy && in_array( $term_slug, $term_slugs ) ) {
                $is_valid = false; // attribute found, coupons are not valid
                break; // Stop and exit from the loop
            }
        }
    }
    return $is_valid;
}

代码放在您的活动子主题的function.php文件(或活动主题)。 测试和工程。



文章来源: Exclude variations with 2 specific attribute terms from coupon usage in Woocommerce