Применение пользовательских аргументов количества на основе категории продукта на странице оформления заказа WooCommerce

#php #wordpress #woocommerce #checkout #product-quantity

#php #wordpress #woocommerce #Оформить покупку #продукт-количество

Вопрос:

У моего клиента на странице есть товары, которые вы можете купить 12 и 12.

  • Пример 12 коробок конфет за 10 долларов.

Итак, базовое значение поля количества равно 12, если вы хотите добавить еще одно поле, вы нажимаете стрелку, и появится объявление 12, поэтому значение количества изменяется с 12 на 24.

Он основан на категориях, поэтому, если category == ’12’, базовое значение ввода равно 12.

 add_filter("woocommerce_quantity_input_args", function($args, $product){

    if(has_term("12", "product_cat", $product->get_id())) {

        $args['input_value'] = 12;
        $args['min_value'] = 12; 
        $args['step'] = 12; 

    }

    return $args;

}, 10, 2);
 

Как мне исправить, чтобы значение количества отображалось на странице оформления заказа, если я добавлю 12×2 (24) в свою корзину, на ней будет отображаться только 12, а не то же значение количества, что и на странице магазина (24)

Ответ №1:

Вы можете использовать woocommerce_checkout_cart_item_quantity фильтр

Таким образом, вы получаете:

 function filter_woocommerce_checkout_cart_item_quantity( $item_qty, $cart_item, $cart_item_key ) {
    // Get product id
    $product_id = $cart_item['product_id'];
    
    // Has term
    if ( has_term( 12, 'product_cat', $product_id ) ) {
        // Output
        $item_qty = '<strong class="product-quantity">' . sprintf( 'amp;times;amp;nbsp;%s', 12 ) . '</strong>';       
    }

    // Return
    return $item_qty;
}
add_filter( 'woocommerce_checkout_cart_item_quantity', 'filter_woocommerce_checkout_cart_item_quantity', 10, 3 );