@s1mypj
Начинающий web-программист.

Как сделать возможность купить только один товар?

Добрый день, искал в свободном доступе код, который разрешает разрешает добавление только одного товара в корзину, но все они не работают, вот один из многих которые я перепробовал:
add_filter( 'woocommerce_add_to_cart_validation', 'custom_only_one_in_cart', 99, 2 );
function custom_only_one_in_cart( $passed, $added_product_id ) {

    // empty cart first: new item will replace previous
    wc_empty_cart();

    // display a message if you like
    wc_add_notice( 'Max number of items in cart reached!', 'notice' );

    return $passed;
}

Это возможно из-за того, что у меня идёт добавление товара одним кликом по кнопке через ajax обработку, наверное знаете этот код.
Подскажите, пожалуйста, как решить эту проблему?
Может есть возможность через js как-то отследить есть ли в корзине товар и если он есть просто перенаправлять на оформление?
ajax обработка кнопки
$('.s1_oneclick_btn').click(function(e) {
	e.preventDefault();
	$(this).addClass('adding-cart');
	var product_id = '14';

	var ajax_url = "/wp-admin/admin-ajax.php"

	$.ajax ({
		url: ajax_url,  
		type:'POST',
		data:'action=oneclick&product_id=' + product_id + '&quantity=1',
	})
	.done(function() {
		var url = "http://a0368503.xsph.ru/checkout/";
		$(location).attr('href',url);
		});
	});

И конечная в functions.php добавление товара в корзину:
function oneclick() {
  $product_id = $_POST['product_id'];
  $variation_id = $_POST['variation_id'];
  $quantity = $_POST['quantity'];

  if ($variation_id) {
    WC()->cart->add_to_cart( $product_id, $quantity, $variation_id );
  } else {
    WC()->cart->add_to_cart( $product_id, $quantity);
  }

  $items = WC()->cart->get_cart();
  global $woocommerce;
  $item_count = $woocommerce->cart->cart_contents_count; 

  die();
}
  • Вопрос задан
  • 187 просмотров
Решения вопроса 1
tuxfighter
@tuxfighter
троль
В настройках товара. Раздел "Заказы", галка "продавать индивидуально"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы