В этом уроке поделюсь с вами сниппетом кода для functions.php
, который позволит синхронизировать количество одного товара в корзине с количеством другого (или всех).
Про страницу корзины у меня на сайте есть отдельный видеоурок, вот ссылка.
Наш сниппет кода будет состоять из двух частей – в первой части кода мы определим, находится ли в корзине наш целевой товар, к количеству которого и будет осуществляться привязка, а во второй части кода – зададим программно количество для других товаров.
add_action( 'template_redirect', 'truemisha_sync_cart_quantities', 25 ); function truemisha_sync_cart_quantities() { // если корзина пуста, то ничего не делаем if ( WC()->cart->is_empty() ) { return; } // ID целевого товара, к его количеству будет осуществляться привязка $product_id = 32; // запускаем цикл всех товаров в корзине и чекаем целевой foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { // если товар целевой, то узнаем его количество и закидываем в переменную if ( $product_id === $cart_item[ 'product_id' ] ) { $qty = $cart_item[ 'quantity' ]; break; } } // если переменная количества не существует, то ничего не делаем if ( empty( $qty ) ) { return; } // устанавливаем это же значение количества всем остальным товарам foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { if ( $product_id !== $cart_item[ 'product_id' ] ) { WC()->cart->set_quantity( $cart_item_key, $qty ); } } }
Хочу также добавить, если вы хотите синхронизировать между собой только два товара, а не все товары в корзине, то можете немного изменить это условие:
if ( 31 == $cart_item[ 'product_id' ] ) { // 31 ID "созависимого" товара
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
полезно!
Здравствуйте! Подскажите, а как можно вывести количество товара в корзине = 1, не зависимо от того, сколько раз товар добавили в корзину?