Исключить варианты с двумя определенными условиями атрибута из использования купона в Woocommerce - PullRequest
0 голосов
/ 21 января 2019

Мне нужно запретить использование купонов, если у покупателя есть какие-либо конкретные варианты товара в его корзине со следующими атрибутами:

  • attribute_pa_style => swirly
  • attribute_pa_style => circle

Я просмотрел сценарии Woocommerce, которые применяются к ограничению определенных продуктов и определенных категорий, но не могу понять это в отношении атрибутов и всех купонов.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 22 января 2019

Это можно сделать, используя 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 вашей активной дочерней темы (или активной темы). Проверено и работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...