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

Иногда бывает нужно добавить какое-нибудь поле на страницу оформления заказа, либо применить купон, если какой-то определённый товар в корзине клиента. И в этом уроке я покажу, как это проверить через код.

В то же время важно помнить, что эта проверка будет отличаться для вариативных товаров.

Также не могу не порекомендовать мой курс по WooCommerce, в котором мы создаём тему для WooCommerce с нуля на основе готового HTML и CSS.

Проверяем, что простой товар в корзине

$simple_product_id = 27;
 
if( WC()->cart->find_product_in_cart( WC()->cart->generate_cart_id( $simple_product_id ) ) ) {
	// товар с ID 27 в корзине
}

Если переменная $simple_product_id не задаётся в самом коде, то я думаю вы уж сможете найти ID товара в админке WooCommerce 🙃 Если нет, то возможно это поможет.

Проверяем, что вариативный товар в корзине

$cart_id = WC()->cart->generate_cart_id(
	27, // ID самого товара
	60, // ID вариации товара
	array( 'attribute_pa_razmer' => 's' ) // значение атрибута вариации товара
);
 
if( WC()->cart->find_product_in_cart( $cart_id ) ) {
	// Вариация с ID = 60 товара 27 сейчас в корзине
}

На тот случай, если вы не знаете, откуда взять ID вариации товара:

Откуда узнать ID вариации товара WooCommerce

Что же такое array( 'attribute_pa_razmer' => 's' )? Оно состоит из двух частей:

  1. attribute_{ТАКСОНОМИЯ АТРИБУТА}
  2. s – ярлык значения атрибута, выбранного для конкретной вариации.

Миша

Недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

Комментарии — 3

Оставить комментарий

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, если же код – меньше одной строчки, то можно и в <code></code>.