В этом уроке я хочу показать вам, как в коде задать минимальное и максимальное значения для поля выбора, сколько товаров вы хотите добавить в корзину.
Также про корзину WooCommerce на моём сайте есть отдельный видеоурок, вот ссылка.
Фильтр-хук woocommerce_quantity_input_args
позволяет переписать параметры по умолчанию для поля количества товара. Кроме того, этот хук работает не только на странице товара, но и в самой корзине, т.к. там тоже есть такие счетчики.
Прежде, чем мы перейдём к коду, который к слову нужно вставлять в functions.php
, я хочу напомнить, что есть и другие факторы, которые влияют на эти значения полей количества – например сколько товара доступно на складе.
add_filter( 'woocommerce_quantity_input_args', 'truemisha_quantity_changes', 25, 2 ); function truemisha_quantity_changes( $args, $product ) { if ( ! is_cart() ) { // не корзина $args[ 'min_value' ] = 4; $args[ 'max_value' ] = 10; } else { // корзина $args[ 'max_value' ] = 10; } return $args; }
$args[ 'min_value' ]
в Корзине равно нулю, что означает удаление товара из корзины.$args['input_value']
– какое количество отображать по умолчанию, когда покупатель только попадает на страницу товара и $args['step']
– на сколько увеличивать/уменьшать количество при нажатии на стрелки.Исходя из того, что $product
– это объект товара, мы можем задать например максимальное значение количества, в котором этот товар может быть добавлен в корзину при помощи кода:
add_filter( 'woocommerce_quantity_input_args', 'truemisha_max_product_qty', 25, 2 ); function truemisha_max_product_qty( $args, $product ) { if( 25 == $product->get_id() ) { // ID товара $args[ 'max_value' ] = 1; // не более одного } return $args; }
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
А как ограничить кол-во товара в самом поле input, т.е. например, чтобы больше 2 символов нельзя было ввести?
Если для вашей темы
$args[ 'max_value' ]
не работает, то можно добавить атрибутmaxlength="2"
вglobal/quantity-input.php
.До else установил такие параметры
И в самом счетчике все правильно работает, но в корзину кладется все равно по одному
Можете подсказать, в чем может быть проблема, пожалуйста?