Разрешить обновление количества товаров в корзине только для одной категории товаров в Woocommerce - PullRequest
1 голос
/ 04 июня 2019

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

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

add_filter( 'woocommerce_cart_item_quantity', 'wc_cart_item_quantity', 10, 3 );
function wc_cart_item_quantity( $product_quantity, $cart_item_key, $cart_item 
){
    if( is_cart() ){
        $product_quantity = sprintf( '%2$s <input type="hidden" 
name="cart[%1$s][qty]" value="%2$s" />', $cart_item_key,             
$cart_item['quantity'] );
    }
    return $product_quantity;
}

1 Ответ

0 голосов
/ 04 июня 2019

Вы можете использовать условную функцию has_tem() для таргетинга только определенной категории продуктов, установленной для вашей корзины, например:

add_filter( 'woocommerce_cart_item_quantity', 'wc_cart_item_quantity', 10, 3 );
function wc_cart_item_quantity( $product_quantity, $cart_item_key, $cart_item ){
    $categories = array('disc'); // Define your allowed product category(ies)

    if( is_cart() && ! has_term( $categories, $taxonomy, $cart_item['product_id'] ){
        $product_quantity = sprintf( '%2$s <input type="hidden" 
name="cart[%1$s][qty]" value="%2$s" />', $cart_item_key,             
$cart_item['quantity'] );
    }
    return $product_quantity;
}

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

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