WC_Cart::add_to_cart() — добавление товара в корзину в WooCommerce
Создает и возвращает идентификатор товара в корзине. Если же до использования функции товар уже был в корзине, то просто будет добавлена ещё одна единица этого же товара (если такая возможность имеется).
$korzina = new WC_Cart(); $korzina->add_to_cart( $product_id = 0, $quantity = 1, $variation_id = 0, $variation = array(), $cart_item_data = array() ) |
А вот это в общем то более правильный вариант:
global $woocommerce; $woocommerce->cart->add_to_cart( $product_id = 0, $quantity = 1, $variation_id = 0, $variation = array(), $cart_item_data = array() ) |
- $product_id
- (целое число) ID товара, также непосредственно сюда можно передать ID вариации товара. Параметр обязателен, функция возратит
false
, если его не указать. - $quantity
- (целое число) Количество единиц товара.
- $variation_id
- (целое число) ID вариации товара. Берём его отсюда:
- $variation
- (массив) Ассоциативный массив атрибутов товара.
- $cart_item_data
- (массив) Дополнительные данные в формате
array( 'ключ' => значение )
, которые требуется передать в хуки внутри функции, которые вы сами можете посмотреть здесь. Если же вы хотите, чтобы я разобрал какой-то из них на примере — не вопрос, просто напишите об этом в комментариях.
Пример 1. Простое использование
Без создания объекта, напрямую через класс функцию выполнить не получится.
$korzina = new WC_Cart(); $korzina->add_to_cart( 544 ); |
Пример 2. Добавляем текущий товар в корзину, используя глобальный объект текущего поста и глобальный объект $woocommerce
Я говорю, что это более правильный вариант, потому что объект корзины класса WC_Cart
уже создан и находится в $woocommerce->cart
и не нужно создавать его ещё раз.
global $post, $woocommerce; $woocommerce->cart->add_to_cart( $post->ID ); |