Как проверить, что товар с определённым 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 в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

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

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

Миша Рудрастых и WordPress

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал