Як автоматично додавати товар у кошик [WooCommerce]

Привіт:) У цій замітці покажу, як програмно додавати потрібний товар у кошик WooCommerce.

/**
 * Automatically add product to cart on visit
 * https://woocommerce.com/document/automatically-add-product-to-cart-on-visit/
 */
add_action( 'template_redirect', 'add_product_to_cart' );
function add_product_to_cart() {
	if ( ! is_admin() ) {
		$product_id = 55; // ID товару, який потрібно додати у кошик
		$found = false;
		// Перевірити, чи товар уже в кошику
		if ( sizeof( WC()->cart->get_cart() ) > 0 ) {
			foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
				$_product = $values['data'];
				if ( $_product->get_id() == $product_id )
					$found = true;
			}
			// Якщо товар, не знайдений, додати його
			if ( ! $found )
				WC()->cart->add_to_cart( $product_id );
		} else {
			// Якщо товар, не знайдений, додати його
			WC()->cart->add_to_cart( $product_id );
		}
	}
}

У коді значення 55 замініть на ID товару, який потрібно автоматично додавати у кошик.

Наступний код автоматично додає вибраний товар у кошик, якщо покупець замовив на певну суму.

/**
 * Add another product depending on the cart total
 * https://woocommerce.com/document/automatically-add-product-to-cart-on-visit/
 */
add_action( 'template_redirect', 'add_product_to_cart' );
function add_product_to_cart() {
  if ( ! is_admin() ) {
		global $woocommerce;
		$product_id = 55; // ID товару, який потрібно додати у кошик
		$found = false;
		$cart_total = 30; // Задана загальна сума

		if( $woocommerce->cart->total >= $cart_total ) {
			// Перевірити, чи товар уже в кошику
			if ( sizeof( $woocommerce->cart->get_cart() ) > 0 ) {
				foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
					$_product = $values['data'];
					if ( $_product->get_id() == $product_id )
						$found = true;
				}
				// Якщо товар, не знайдений, додати його
				if ( ! $found )
					$woocommerce->cart->add_to_cart( $product_id );
			} else {
				// Якщо товар, не знайдений, додати його
				$woocommerce->cart->add_to_cart( $product_id );
			}
		}
	}
}

У коді значення 55 та 30 відповідають за ID товару, який необхідно автоматично додати у кошик, та за загальну суму у кошику відповідно.

Михайло Петров
Михайло Петров

Мене звати Михайло. Я — WordPress-розробник. Створюю візитки, корпоративні сайти, блоги на WordPress.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *