/ Плагины / Сообщения woocommerce

Сообщения woocommerce

HIT

16.12.2016

11961

1

Сообщения woocommerce — система сопроводительной информации при использовании интернет-магазина. В системе есть 3 типа сообщений: информационные (notice), успешные действия (success), ошибки/предупреждения (error)

Стандартные сообщения

Это перечень стандартных сообщений разделенных по типам.

Информационные сообщения:

  • У вас есть купон? Нажмите здесь для введения кода (Оформление)
  • Товаров, соответствующих вашему запросу, не обнаружено. (Категория без товаров, Результат поиска)
  • Оформление заказа не доступно, пока ваша корзина пуста. (Оформление, переадрессация на пустую корзину)
  • Заказов ещё не создано. Перейти в магазин (Личный кабинет/Заказы)

Сообщения при успешных действиях

  • Корзина обновлена. (Корзина)
  • Вы отложили “Товар” в свою корзину. (Страница товара)
  • Товар удален. Отменить? (Страница товара, Архив)
  • Product correctly added to cart (Архив). Сообщение появляется при добавлении товара в корзину. Изначально данное уведомление не выводится. Начинает выводится если переместить уведомления в пользовательский хук, который идет раньше woocommerce (см. ниже)

Ошибки/предупреждения

  • К сожалению, у нас недостаточно «Наименование товара» для выполнения заказа (в наличии 3). Пожалуйста, измените свой заказ и попробуйте ещё раз. Приносим извинения за доставленные неудобства. (Корзина)
  • Вы не можете добавить это количество в корзину — у нас в наличии 3, у вас в корзине уже 3. (Страница товара)
  • Платёж Ваш телефон (название поля) является обязательным для заполнения полем. (Оформление)
  • Введите код купона, пожалуйста. (Корзина, Оформление)
  • Купона «123456» не существует! (Корзина, Оформление)
  • Жаль, но этот купон не может быть использован для товаров, которые находятся у вас в корзине. (Корзина, Оформление)
  • Этот товар не может быть куплен. (Категория)
  • Пожалуйста, укажите опции товара… (Категория)

Пользовательские сообщения

Создадим пользовательские сообщения. Как пример, сообщение появляется на странице Оформление товара.

// Информационное сообщение
add_action( 'woocommerce_before_checkout_form', 'skyverge_add_checkout_notice', 11 );
function skyverge_add_checkout_notice() {
	wc_print_notice( __( 'Сообщение уведомления вместо', 'woocommerce' ), 'notice' );
}

// Сообщение success
add_action( 'woocommerce_before_checkout_form', 'skyverge_add_checkout_success', 9 );
function skyverge_add_checkout_success() {
	wc_print_notice( __( 'Вы находитесь на странице оформления', 'woocommerce' ), 'success' );
}

// Сообщение предупреждение/ошибка
add_action( 'woocommerce_review_order_before_payment', 'skyverge_before_paying_notice' );
function skyverge_before_paying_notice() {
	wc_print_notice( __( 'Сообщение об ошибке', 'woocommerce' ), 'error' );
}

Условия появления сообщений

Сообщения на сайте появляются на определенных страницах при каких-либо условиях. Исследуем это.

function sp_custom_notice() {
$subtotal = WC()->cart->get_cart_subtotal();
$free_shipping_threshold = 5000;
if ( $subtotal < $free_shipping_threshold ) {
wc_add_notice( 'Сумма покупки больше 5000 руб. Бесплатная доставка!', 'notice' );
}
}

add_action( 'wp', 'sp_custom_notice' );
Вообще у пользовательских сообщений woocommerce странная логика, на них некорректно действуют условия. В данном случае проще использовать пользовательские функции с условием.

Отключить сообщения

В карточке товара и в архивах уведомления отключаются так:

remove_action( 'woocommerce_before_shop_loop', 'wc_print_notices', 10 ); remove_action( 'woocommerce_before_single_product', 'wc_print_notices', 10 );

Чтобы отключить уведомления в корзине, нужно в файле cart.php закомментировать строку wc_print_notices();
При этом, если закомментировать ту же строку в файле form-checkout.php для отключения сообщений на странице Оформления товара — это не сработает. Уведомления все равно выводятся.

Перенести (пока не знаю зачем это может пригодиться) уведомления в пользовательский хук «выше» вывода woocommerce

remove_action( 'woocommerce_before_shop_loop', 'wc_print_notices', 10 ); remove_action( 'woocommerce_before_single_product', 'wc_print_notices', 10 ); add_action( 'body-after', 'wc_print_notices', 10 ); add_action( 'body-after', 'wc_print_notices', 10 );

Сообщение «товар добавлен в корзину..»

Отключить это уведомление

// Удалить сообщение «Товар добавлен в корзину..»
add_filter( 'wc_add_to_cart_message_html', '__return_null' );

Редактировать его

add_filter( 'wc_add_to_cart_message_html', 'bbloomer_custom_add_to_cart_message' );
 
function bbloomer_custom_add_to_cart_message() {
$message = 'Nicely done!' ;
return $message;
}

Сообщение «товар удален. Вернуть?»

Отключить это сообщение

// Отключить уведомление о том что товар удален
function sw_delete_remove_product_notice(){
	$notices = WC()->session->get( 'wc_notices', array() );
	if(isset($notices['success'])){
		for($i = 0; $i < count($notices['success']); $i++){
			if (strpos($notices['success'][$i], __('removed','woocommerce')) !== false) {
				array_splice($notices['success'],$i,1);
			}
		}
		WC()->session->set( 'wc_notices', $notices['success'] );
	}
}

add_action( 'woocommerce_before_shop_loop', 'sw_delete_remove_product_notice', 5 );
add_action( 'woocommerce_shortcode_before_product_cat_loop', 'sw_delete_remove_product_notice', 5 );
add_action( 'woocommerce_before_single_product', 'sw_delete_remove_product_notice', 5 );

Убрать слово Billing из уведомления об обязательных полях при оформлении

function customize_wc_errors( $error ) {
    if ( strpos( $error, 'Billing ' ) !== false ) {
        $error = str_replace("Billing ", "", $error);
    }
    return $error;
}
add_filter( 'woocommerce_add_error', 'customize_wc_errors' );

Общее сообщение «Заполните обязательные поля»

Удалим в Оформлении перечень полей которые необходимо заполнить, и заменим их общей формулировкой «Заполните все обязательные поля».

add_action( 'woocommerce_after_checkout_validation', 'quadlayers', 9999, 2);
function quadlayers( $fields, $errors ){
	// in case any validation errors
	if( !empty( $errors->get_error_codes() ) ) {

		// omit all existing error messages
		foreach( $errors->get_error_codes() as $code ) {
			$errors->remove( $code );
		}
		// display custom single error message
		$errors->add( 'validation', 'Заполните все обязательные поля' );
	}
}

Поделиться в соц. сетях:

  • Похожие записи
  • Комментарии
  • Вложения
Обзор плагинов по созданию скидок

Обзор плагинов по созданию скидок

Рассмотрим различные плагины по созданию функционала скидок. Рассматриваться будут плагины которые предоставляют возможность комплексного формирования скидок на состав корзины. Практически все плагины в обзоре могут в бесплатной версии предоставить простой Читать далее »

Исчезающие сообщения woocommerce

Исчезающие сообщения woocommerce

У woocommerce есть встроенная система сообщений: при добавлении товара в корзину, при удалении товара из корзины, при различных ошибках. Но они появляются перед основным контентом, нарушая исходную верстку. Сделаем их Читать далее »

Шорткод вывода товаров по метке

Шорткод вывода товаров по метке

Иногда требуется быстро вывести товары с определенной меткой. Данный шорткод проверял лично — работает. В данной функции предусмотрен вывод товаров по колонкам (wc_get_loop_prop( ‘columns’ )). Шорткод выглядит так: Данный шорткод Читать далее »

/

Добавить комментарий

1 комментарий

  1. Алексей

    А как же удалить информационные сообщения на странице оформления заказа?

Сообщения woocommerce
Связывание товаров по атрибутам
Рекомендации для васСвязывание товаров по атрибутамOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.