Артём Мáлков

Разрешаем добавление только одного товара в корзину в WooCommerce

29 апр4 комм

Продолжаем с читателями нашего сайта решать нестандартные задачи, и сегодня на повестке дня у нас вопрос о том, как ограничить выбор пользователей лишь одним товаром из числа множества на вашем сайте в WooCommerce в CMS WordPress.

Начинающий вебмастер может сказать: «А зачем это может быть нужно?». Ответ прост – это нужно тогда, когда ваш магазин не предполагает приобретение сразу нескольких товаров. Хорошим примером здесь является сайт туроператора.

На таком сайте находятся товары – путевки в разные страны, и человек может выбрать только одну, что вполне логично.

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

Чтобы добавить необходимый функционал на ваш сайт, в низ файла functions.php, который находится в папке вашей темы, вставьте код:

function one_item_in_cart($valid, $product_id, $quantity) {
	
	global $woocommerce;
	
	$cart = $woocommerce->cart->empty_cart();
	
	if(!empty($cart) && $valid) {
		
		$woocommerce->cart->empty_cart();
		
		return $valid;
	
	}
	
	return $valid;

}

add_filter("woocommerce_add_to_cart_validation", "one_item_in_cart", 10, 3);

На что здесь стоит обратить внимание?

Каждый новый добавленный товар в корзину будет удалять старый. Таким образом, в корзине всегда будет только 1 товар, а вот его количество можно будет изменить. Это удобно, если за количество вы приняли, например, дни.

Рекомендуем к просмотру
Дробное количество товара в WooCommerce
Посты
Скидка в процентах на всю корзину без купона в WooCommerce
Посты
Изменяем количество товаров на странице WooCommerce
Хаки
4
комментария
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 1
    1
      •  Пользователь
    6 ноя в 00:41

    Артём, я тоже зарегистрировалась специально для того, чтобы оставить этот комментарий smiley

    Спасибо вам огромное за то, что поделились такой ценной информацией! Если бы вы знали, сколько времени я потратила на решение этой проблемы, пока не наткнулась на вашу статью. Вы просто меня спасли сегодня ♥

    Спасибо, спасибо, спасибооо!!!

      • 1
      1067
        •  Команда Pandoge
      9 ноя в 11:34

      Карина Кирстья, заходите к нам почаще smiley

    • 2
    1
      •  Пользователь
    6 окт в 08:14

    Зарегистрировался ради этого комментария.

    Спасибо большое за данное решение, оказалось очень нужно и очень полезно!

    p.s при регистрации выделите пожалуйста чекбокс принятия условий, его невидно, а по кнопке регистрация не выдаёт никаких ошибок, если чекбокс не поставлен :))

      • 1
      1067
        •  Команда Pandoge
      6 окт в 09:18

      Дмитрий, спасибо, учтём smiley

Подняться наверх
«Pandoge» - помощник вебмастера