WooCommerce количество товаров в корзину В WooCommerce можно настроить количество товаров, которые пользователи могут добавлять в корзину. Вы можете изменить минимальные и максимальные лимиты, управлять количеством товаров на странице товара, а также добавить дополнительные функции, такие как ограничение количества товаров для определённых категорий или типов товаров. 1. Настройка количества товаров на странице товара По умолчанию WooCommerce отображает поле для выбора количества товара на странице продукта. Это поле можно настроить или изменить с помощью кастомного кода или плагинов. Установка минимального и максимального количества товаров Чтобы задать минимальное и максимальное количество товара для добавления в корзину, используйте следующие фильтры: Минимальное количество товара: add_filter( 'woocommerce_quantity_input_min', 'custom_woocommerce_quantity_min', 10, 2 ); function custom_woocommerce_quantity_min( $min, $product ) { return 2; // Минимальное количество товара — 2 } Максимальное количество товара: add_filter( 'woocommerce_quantity_input_max', 'custom_woocommerce_quantity_max', 10, 2 ); function custom_woocommerce_quantity_max( $max, $product ) { return 10; // Максимальное количество товара — 10 } 2. Установка шага изменения количества товара Вы также можете настроить шаг изменения количества, то есть сколько единиц товара добавляется или убавляется при каждом нажатии на кнопки + или -. add_filter( 'woocommerce_quantity_input_step', 'custom_woocommerce_quantity_step', 10, 2 ); function custom_woocommerce_quantity_step( $step, $product ) { return 2; // Шаг изменения количества — 2 } 3. Ограничение количества товаров в корзине для определённых категорий или продуктов Иногда необходимо задать особые ограничения для конкретных товаров или категорий. Например, если вы продаёте эксклюзивные или ограниченные товары, можно установить максимальное количество, которое может добавить один пользователь. Ограничение количества товаров для категории: add_filter( 'woocommerce_add_to_cart_validation', 'limit_category_product_quantity', 10, 2 ); function limit_category_product_quantity( $passed, $product_id ) { $categories = array( 'exclusive-products' ); // Задайте категорию if ( has_term( $categories, 'product_cat', $product_id ) ) { $max_quantity = 2; // Максимум 2 товара из категории $cart_quantity = WC()->cart->get_cart_contents_count(); if ( $cart_quantity >= $max_quantity ) { wc_add_notice( sprintf( 'Вы можете добавить не более %s товаров из категории "%s" в корзину.', $max_quantity, implode( ', ', $categories ) ), 'error' ); $passed = false; } } return $passed; } 4. Принудительное добавление товара с определённым количеством Если вы хотите, чтобы при добавлении товара в корзину автоматически указывалось определённое количество, можно использовать следующий код: add_filter( 'woocommerce_add_cart_item_data', 'force_quantity_add_to_cart', 10, 2 ); function force_quantity_add_to_cart( $cart_item_data, $product_id ) { $cart_item_data['quantity'] = 3; // Принудительное добавление 3 единиц товара return $cart_item_data; } 5. Ограничение общего количества товаров в корзине Если вам нужно ограничить общее количество товаров, которые могут находиться в корзине, вы можете использовать следующий код: add_action( 'woocommerce_before_calculate_totals', 'limit_cart_total_quantity' ); function limit_cart_total_quantity( $cart ) { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; $max_items = 5; // Максимум 5 товаров в корзине $cart_total_quantity = $cart->get_cart_contents_count(); if ( $cart_total_quantity > $max_items ) { wc_add_notice( sprintf( 'В корзине не может быть больше %s товаров.', $max_items ), 'error' ); } } 6. Программное изменение количества товаров в корзине Вы можете программно изменить количество товара, который уже добавлен в корзину. Это может быть полезно, если вы хотите обновить количество товаров при каких-то условиях. Пример обновления количества товара: function update_cart_item_quantity() { foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { // Принудительно устанавливаем количество на 5 для каждого товара WC()->cart->set_quantity( $cart_item_key, 5 ); } } add_action( 'woocommerce_cart_loaded_from_session', 'update_cart_item_quantity' ); 7. Плагины для управления количеством товаров Если вы хотите более гибко управлять количеством товаров в корзине, вы можете использовать специальные плагины, которые предоставляют дополнительные настройки и удобный интерфейс. WooCommerce Min/Max Quantities (платный) Плагин позволяет задать минимальное и максимальное количество товаров для каждого продукта. Можно установить ограничения на количество товаров в корзине, как для каждого товара, так и для общего количества. Advanced Product Quantity for WooCommerce (бесплатный и платный) Этот плагин позволяет задать шаг изменения количества товара, минимальные и максимальные лимиты для каждого продукта. Поддерживает вариативные товары и простые товары. Quantity Manager for WooCommerce (бесплатный) Плагин позволяет настроить минимальное и максимальное количество для каждого товара, а также задать шаг изменения количества. Настройка количества товаров в WooCommerce может быть выполнена с помощью встроенных функций, кастомного кода или плагинов. Вы можете ограничить минимальное и максимальное количество товаров, настроить шаг изменения количества, а также управлять количеством товаров для определённых категорий или товаров в корзине. Это позволяет вам контролировать процесс покупок и улучшать пользовательский опыт в вашем магазине.