


Блог IT-шника
Блог IT-шника
Привіт:) У цій замітці покажу, як програмно додавати потрібний товар у кошик 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 товару, який необхідно автоматично додати у кошик, та за загальну суму у кошику відповідно.