Разрешить определенные купоны, если в Woocommerce есть товары с задержкой заказа - PullRequest
0 голосов
/ 05 января 2019

Можно ли разрешить определенный купон woocommerce только при невыполненных заказах?

Я пытался использовать Если в корзине WooCommerce есть товары с задержанным заказом, не применяйте код ответа купона , который ограничивает использование товаров с отсроченным заказом.

Я изменил if( $stock_info < 1 ){ на if( $stock_info > 0 ){ вместо

Но тогда я могу использовать только купоны на невыполненных заказах ... но где я могу сделать это для определенного купона?

Могу ли я использовать его идентификатор? но где?

1 Ответ

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

Следующий код сделает определенные коды купонов действительными, если в корзине есть товары с переупорядочением:

add_filter( 'woocommerce_coupon_is_valid', 'specific_coupons_valid_for_backorders', 10, 3 );
function specific_coupons_valid_for_backorders( $is_valid, $coupon, $discount ){
    // HERE below define in the array your coupon codes
    $coupon_codes = array( 'summer', 'tenpercent' );

    if( in_array( $coupon->get_code(), $coupon_codes ) ) {
        $is_valid = false;

        // Loop through cart items and check for backordered items
        foreach ( WC()->cart->get_cart() as $cart_item ) {
            if( $cart_item['data']->is_on_backorder( $cart_item['quantity'] ) ) {
                $is_valid = true; // Backorder found, coupon is valid
                break; // Stop and exit from the loop
            }
        }
    }
    return $is_valid;
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.

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