Как автоматически применить купон на скидку в корзине WooCommerce

Опубликовано: 2020-06-25

Скидки — отличный способ увеличить продажи и помочь построить хорошие отношения с клиентами. Это способ привлечь ваших клиентов, чтобы они вернулись в ваш магазин и купили его снова.

WooCommerce также предоставляет владельцам магазинов возможность добавлять купоны на скидку для своих клиентов. И они используют разные способы, чтобы обратиться к своим клиентам за купонами, такие как отправка им электронных писем, добавление баннера на свой веб-сайт и так далее. Но иногда клиенты могут забыть применить купон во время оформления заказа.

Поэтому, если вы, как владелец магазина, не хотите, чтобы ваши клиенты покупали товары без купонов на скидку, вам нужно найти способ, чтобы купоны автоматически применялись к корзине при покупке покупателями. Это можно сделать, предоставив URL-адреса кода купона клиентам по электронной почте или добавив их на веб-сайт, при нажатии на который купон будет автоматически применен к корзине. Или более простой способ добиться этого — автоматически применять код купона, когда покупатель добавляет товар в корзину.

В WooCommerce сейчас нет возможности автоматически применять купоны на скидку , но этого можно добиться, добавив фрагмент кода или используя некоторые из доступных расширений.

Использование фрагмента кода

Давайте возьмем пример, когда владелец магазина хочет предоставить скидку 20% на заказы на сумму более 250 долларов по случаю Хэллоуина, Черной пятницы или Рождества, и он хочет, чтобы ни один из его клиентов не пропустил скидку. Итак, чтобы добиться этого, есть 2 способа, которые мы обсудим ниже.

1. Применение кода купона непосредственно в корзине при добавлении товара

Для этого первым шагом является создание кода купона в WooCommerce с ограничением минимального использования до 250 долларов США в меню «Добавить новый купон/Редактировать купон» -> «Ограничения использования».

Minimum Spend for Coupon
Минимальные расходы на купон

Купон добавляется в соответствии с требованиями владельца, но, поскольку ввод купона здесь по-прежнему выполняется вручную, весьма вероятно, что клиент может забыть использовать код купона. Поэтому лучший способ избежать этого — автоматически применить код к корзине. Этого можно добиться, добавив приведенный ниже код в файл functions.php дочерней темы или используя любой плагин фрагментов кода.

 /**
 * Применить купон на скидку автоматически в корзину 
 */

функция ts_apply_discount_to_cart() {
    
    $order_total = WC()->корзина->get_subtotal();
  
    если ($order_total > 250) {
        $coupon_code = 'СКИДКА 20%';
        if ( !WC()->cart->add_discount(sanitize_text_field($coupon_code)) ) {
            WC()->show_messages();
        }
    }
}
add_action('woocommerce_before_cart_table', 'ts_apply_discount_to_cart');

Здесь мы использовали хук woocommerce_before_cart_table, который находится в форме корзины WooCommerce перед отображением таблицы корзины. В этом хуке мы проверяем общую сумму заказа, и если общая сумма заказа составляет 250 долларов США или более, мы применяем купон «20% OFF» к корзине с помощью функции add_discount().

Automatically apply coupon code on cart
Автоматически применять код купона в корзине

2. Использование URL-адресов кода купона

Другой способ применить код купона напрямую к корзине — предоставить URL-адреса кода купона покупателям, отправив им электронные письма, информационные бюллетени или разместив их на веб-сайте в виде баннера. Поэтому, когда покупатель нажимает на URL-адрес и если товар уже добавлен в корзину, код купона будет применен автоматически.

Для этого вам нужно добавить приведенный ниже код в файл functions.php вашей дочерней темы.

 /**
 * Установите переменную сеанса при загрузке страницы, если в строке запроса есть переменная купона_кода.
 */
функция ts_get_custom_coupon_code_to_session() {

    если(isset($_GET['coupon_code'] )) {
        // Убедитесь, что сессия клиента запущена
        если( !WC()->сеанс->has_session() )
            WC()->session->set_customer_session_cookie(true);
      
        // Проверяем и регистрируем код купона в пользовательской переменной сеанса
        $coupon_code = WC()->session->get('coupon_code');
        if(пусто($coupon_code) && isset($_GET['coupon_code']) ) {
            $coupon_code = esc_attr($_GET['coupon_code']);
            WC()->session->set('coupon_code', $coupon_code); // Установить код купона в сеансе
        }
    }
}
add_action('init', 'ts_get_custom_coupon_code_to_session');

/**
 * Примените код купона к корзине, если в сеансе есть переменная cupon_code. 
 */
функция ts_apply_discount_to_cart() {
    // Установить код купона
    $coupon_code = WC()->session->get('coupon_code');
    если ( ! пусто( $coupon_code ) && ! WC()->cart->has_discount($coupon_code )){
        WC()->корзина->add_discount($coupon_code); // применяем скидку по купону
        WC()->session->__unset('coupon_code'); // удалить код купона из сеанса
    }
}
add_action('woocommerce_before_cart_table', 'ts_apply_discount_to_cart', 10, 0);

Здесь мы использовали два хука init и woocommerce_before_cart_table. Где в хуке инициализации мы проверяем, содержит ли текущий URL-адрес запрос code_coupon var или нет, и если он содержит, то значение переменной сохраняется в сеансе WooCommerce. В хуке woocommerce_before_cart_table мы проверяем, что, если в сеансе WooCommerce установлена ​​переменная купон_код, то применить этот код купона к корзине.

После добавления приведенного выше кода вы можете использовать приведенный ниже URL-адрес, чтобы отправить его своим клиентам.

 https://mywebsite.com/?coupon_code=20OFFРождество

Или, если вы хотите перенаправить URL-адрес непосредственно в корзину или на страницу оформления заказа после применения купона, вы можете использовать приведенные ниже URL-адреса.

 https://mywebsite.com/cart/?coupon_code=20OFFРождество
 https://mywebsite.com/checkout/?coupon_code=20OFFРождество 
Coupon Applied with URL contains coupon_code Variable
Купон, примененный с URL-адресом, содержит переменную «coupon_code».

После того, как купон применен к корзине, вы не хотите, чтобы ваши клиенты добавляли еще один купон в ту же корзину. Поэтому лучше скрыть поле с кодом купона на странице корзины и оформления заказа. Вот еще один пост, в котором объясняется, как скрыть поле кода купона WooCommerce.

Использование расширений WooCommerce

Другой способ добиться этого — использовать различные расширения WooCommerce, которые позволяют автоматически применять код купона к корзине. Ниже приведены некоторые из расширений:

  1. Smart Coupons — в этом плагине есть все, что вам нужно для увеличения продаж и клиентов, используя скидки, купоны, кредиты, ваучеры, бесплатные продукты, предложения и рекламные акции. Это самый продаваемый и самый полный плагин для управления купонами для WooCommerce.
  2. WooCommerce URL-купоны — расширение WooCommerce URL-купоны помогает создавать уникальные URL-адреса, которые автоматически применяют скидку и продукты в корзине покупателя. Вы можете изменить, куда перенаправляется клиент после посещения уникального URL-адреса, и ваши купоны URL-адресов по-прежнему будут подчиняться всем ограничениям купонов, таким как ограничения использования.
  3. Расширенные купоны. Расширенные купоны расширяют возможности ваших купонов, чтобы вы могли лучше продвигать свой магазин.
  4. Расширенные функции купонов WooCommerce БЕСПЛАТНО — «Расширенные функции купонов WooCommerce» добавляют функциональность к купонам WooCommerce и позволяют использовать автоматические правила скидок. Очень проста в использовании, функциональность удобно интегрирована в панель редактирования купона WooCommerce.
  5. Auto Coupons for WooCommerce — это простой и легкий плагин, позволяющий автоматически применять купоны к корзине, если соблюдаются установленные правила.

Таким образом, вы можете использовать фрагменты кода или плагины, чтобы предложить покупателю непропущенную скидку на покупки.