Автоматическое добавление товара в корзину при посещении сайта

Добавьте код в файл functions.php дочерней темы или используйте плагин, который позволяет добавлять пользовательские функции, например Code Snippets.

Не добавляйте код напрямую в файл functions.php родительской темы — при обновлении он будет перезаписан.


/**
 * Автоматически добавляет товар в корзину при посещении сайта
 */
add_action( 'template_redirect', 'add_product_to_cart' );

function add_product_to_cart() {
    if ( ! is_admin() ) {

        $product_id = 64; // замените на свой 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 );
        }
    }
}

Если нужно автоматически добавлять товар в корзину в зависимости от суммы корзины, используйте следующий код:


/**
 * Добавляет товар в зависимости от суммы корзины
 */
add_action( 'template_redirect', 'add_product_to_cart' );

function add_product_to_cart() {
    if ( ! is_admin() ) {

        global $woocommerce;

        $product_id = 2831; // замените на 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 );
            }
        }
    }
}

Поделиться с друзьями
Документация WooCommerce