Иногда бывает нужно добавить какое-нибудь поле на страницу оформления заказа, либо применить купон, если какой-то определённый товар в корзине клиента. И в этом уроке я покажу, как это проверить через код.
В то же время важно помнить, что эта проверка будет отличаться для вариативных товаров.
Также не могу не порекомендовать мой курс по 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 вариации товара:
Что же такое array( 'attribute_pa_razmer' => 's' )
? Оно состоит из двух частей:
attribute_{ТАКСОНОМИЯ АТРИБУТА}
s
– ярлык значения атрибута, выбранного для конкретной вариации.Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
Михаил, а почему в случае с вариацией требуется номер материнского товара, да еще и атрибут? Ведь по идее id вариации уникальный, его должно быть достаточно чтобы однозначно идентифицировать товар.
md5-хеш товара в корзине содержит также и атрибут вариации.
Зато тут не требуется.
День добрый! Мне нужно при выборе скрытого атрибута в товаре, добавить еще одну форму оплаты "Покупка частями monobak" и исключить возможность выбора оплаты "Покупка частями monobak" если нет атрибута.
Что не хватает в данном коде! Дайте ответ
Заранее спасибо!
Добрый день, Николай,
В этой категории вы найдёте то, что ищете. И у вас вроде 12-я строчка в коде какая-то не такая.
Здравствуйте, Михаил. Огромное спасибо за отличный материал. Можете подсказать, как осушествить дополнитеольную проверку:
Есть функционал добавления "товар-подарка" в корзине при сумме свыше 1000. Нужно сделать дополнительную проверку в корзине, что если есть "товар-подарка", то стоимость финальная более 1000. Буду благодарен за любую помощь или совет.
Здравствуйте, думаю, что вам нужно скомбинировать код этого урока с уроком, где я показываю, как динамически менять цену товаров в корзине в зависимости от условий.