[Woocommerce] Как вывести уведомление с суммой сколько еще осталось до бесплатной доставки

  Автор:
  Комментариев нет
  1263

В интернет-магазине на Woocommerce есть бесплатная доставка. Если покупатель добавил в корзину товаров больше чем на 5000 рублей, то, доставка бесплатная.

Задача: добавить в корзину строку, где указана сумма, сколько еще не хватает до бесплатной доставки.

Например, покупатель добавил товара на сумму 2000 рублей. Бесплатная доставка начинается от 5000 рублей. В строке должно быть написано «Осталось 3000 ₽ до бесплатной доставки».

Если в корзине товара на 5000 и более рублей, выводим «Бесплатная доставка».

Разместить данную строку необходимо перед списком добавленных товаров

Вариант №1 — в виде уведомления

Код добавить в файл functions.php дочерней темы или с помощью плагина Индивидуальные функции


add_action( 'woocommerce_before_cart_table', 'wc_add_notice_amound_left_for_free_shipping' ); // *

function wc_add_notice_amound_left_for_free_shipping() {

  $free_shipping_settings = get_option('woocommerce_free_shipping_settings'); // **
  $amount_for_free_shipping = $free_shipping_settings['min_amount'];

  $cart = WC()->cart->subtotal;
  $remaining = $amount_for_free_shipping - $cart;

  if( $amount_for_free_shipping > $cart ){
      $notice = sprintf( "Осталось %s ₽ до бесплатной доставки", wc_price($remaining));
       wc_print_notice( $notice , 'notice' );
  }      
}

В этом варианте мы используем встроенную функцию Woocommerce вывода уведомлений wc_print_notice.

Вариант №2 — кастомный


add_action( 'woocommerce_before_cart_table', 'wc_add_notice_amound_left_for_free_shipping' ); // *

function wc_add_notice_amound_left_for_free_shipping() {

  $free_shipping_settings = get_option( 'woocommerce_free_shipping_settings' ); // **
  $min_amount = $free_shipping_settings['min_amount'];

  $cart = WC()->cart->subtotal;
  $remaining = $min_amount - $cart;
  $html_start = '<p class="amound-left-for-free-shipping">';
  $html_end = '</p>';
  
  if( $min_amount > $cart ){	
	$notice = sprintf( "%s Осталось %s до бесплатной доставки %s ", $html_start, wc_price($remaining), $html_end);		
	echo $notice ;
   } else {
     echo '<p class="amound-left-for-free-shipping">Бесплатная доставка</p>';
   }     
}

В этом варианте больше возможностей для стилей.

Стили для второго варианта. Стили вставить либо в файл style.css дочерней темы или в разделе Внешний вид -> Настройки -> Дополнительные стили

.amound-left-for-free-shipping {    
    font-size: 14px;
    padding: 10px 20px 10px 20px;
    background: #454545;
    display: inline-block;
    color: #ffffff;
    text-align: right;
    float: right;
    font-weight: 600;
    border-radius: 50px;}

.amound-left-for-free-shipping .woocommerce-Price-amount.amount {
	color: #ffffff;
}

* Мы обращаемся к таблице в базе данных wp_options к строке бесплатной доставки woocommerce_free_shipping_settings. Здесь нужно будет уточнить как данная опция записалась у вас в базе данных. По умолчанию woocommerce_free_shipping_settings, но может быть и такой вариант woocommerce_free_shipping_1_settings, или woocommerce_free_shipping_3_settings (то есть между shipping и settings добавляется цифра).

Можно зайти в базы данных через phpMyAdmin и проверить как записана данная опция у вас в базе. Или просто методом перебора (добавлять цифры к woocommerce_free_shipping_settings), выявить какой сработает.

** В зависимости от того, где вы хотите вывести данное уведомление используем соответствующий хук. В примерах выше выводим над корзиной. Хук woocommerce_before_cart_table. Выберите тот хук, который нужен. Прекрасный визуальный пример с хуками для Корзины — WooCommerce Visual Hook Guide: Cart Page и для Оформления заказа — WooCommerce Visual Hook Guide: Checkout Page


С вопросами и за помощью обращайтесь в нашу службу поддержки 24/7

 

Нужен качественный хостинг для сайта на WordPress?
Рекомендую, проверенные годами, хостинг Timeweb:
Надежный проверенный годами хостинг для сайта на WordPress
а также, хостинг Beget:
Хостинг Beget

[Woocommerce] Как вывести уведомление с суммой сколько еще осталось до бесплатной доставки

   1 голос
Средняя оценка: 5 из 5
Если Вам понравилась статья и Вы нашли её полезной, поделитесь ею в соцсетях! Нажмите на кнопки ниже, чтобы сделать это прямо сейчас.

Анфиса Бреус

Анфиса Бреус - специалист по Wordpress с 2007 года. Создатель и разработчик шаблона "AB-Inspiration" для самостоятельной и профессиональной настройки сайтов на WordPress для бизнеса. Основатель клуба "Мастер WordPress" и автор эксклюзивных курсов по WordPress. Фрилансер. Спикер.

Оставьте свой комментарий:

Ваш адрес email не будет опубликован. Обязательные поля помечены *