Когда в настройках магазина включено перенаправление в корзину после добавления товара, покупатель попадает на страницу корзины и видит сверху зелёную полосу: «Товар добавлен в корзину». Информации в ней ноль — человек и так смотрит на корзину с этим товаром, — а места она занимает много, особенно на телефоне, где полоса может занять треть экрана и сдвинуть кнопку оформления вниз.
Убрать или переделать уведомление можно несколькими способами. Начнём с важного уточнения по коду, который до сих пор встречается в старых статьях и на форумах.
Старый фильтр больше не работает
В старых статьях уведомление меняют через фильтр wc_add_to_cart_message. Он объявлен устаревшим ещё в WooCommerce 3.0, и на современном магазине код с ним просто ничего не делает — без ошибок и предупреждений в интерфейсе. Актуальный фильтр называется wc_add_to_cart_message_html, и у него другая сигнатура: помимо текста он получает список добавленных товаров и флаг, показывать ли количество.
Если вы когда-то вставляли старый вариант и уведомление «почему-то» вернулось после обновления — это оно.
Скрыть уведомление полностью
Самый короткий вариант — вернуть из фильтра пустую строку. Код добавляется в functions.php дочерней темы:
// Убираем уведомление «Товар добавлен в корзину»
add_filter( 'wc_add_to_cart_message_html', '__return_empty_string' );
__return_empty_string — стандартная функция WordPress, которая всегда возвращает пустую строку; писать свою не нужно. Уведомление перестанет выводиться везде: и на странице корзины, и на странице товара, и в каталоге.
Изменить текст
Чаще уведомление хочется не убрать, а сделать полезным — например, добавить ссылку «Продолжить покупки», которой в стандартном сообщении нет. Для этого пишем свою функцию:
add_filter( 'wc_add_to_cart_message_html', 'shop_add_to_cart_message', 10, 3 );
function shop_add_to_cart_message( $message, $products, $show_qty ) {
// $products — массив вида [ id_товара => количество ]
$names = array();
foreach ( $products as $product_id => $qty ) {
$names[] = get_the_title( $product_id );
}
$message = sprintf(
'%s — в корзине. <a href="%s" class="button">Продолжить покупки</a>',
esc_html( implode( ', ', $names ) ),
esc_url( wc_get_page_permalink( 'shop' ) )
);
return $message;
}
Обратите внимание на третий параметр в add_filter — тройку. Без неё в функцию придёт только $message, а $products останется пустым. Массив $products устроен как «идентификатор товара → количество», поэтому из него легко собрать и названия, и число штук.
Стандартная ссылка «Посмотреть корзину», которую WooCommerce добавляет сам, в этом варианте исчезает — вы формируете сообщение целиком. Если она нужна, добавьте её тем же способом через wc_get_cart_url().
Тип уведомления
Зелёный цвет полосы задаётся типом уведомления success. Его тоже можно поменять отдельным фильтром — например, на нейтральный notice, если зелёный спорит с дизайном:
add_filter( 'woocommerce_add_to_cart_notice_type', function () {
return 'notice';
} );
Вариант без кода
Прежде чем писать фильтры, загляните в настройки: WooCommerce → Настройки → Товары. Там два переключателя, которые полностью меняют поведение.
«Перенаправлять на страницу корзины после успешного добавления» — та самая опция, из-за которой уведомление и кажется лишним. Если её выключить, покупатель остаётся на странице товара, и уведомление там уже уместно: оно сообщает, что действие сработало.
«Включить кнопки AJAX-добавления в корзину в архивах» — при включении товар из каталога добавляется без перезагрузки страницы, а вместо полосы рядом с кнопкой появляется маленькая ссылка «Посмотреть корзину». Никакого уведомления сверху нет вовсе.
Для многих магазинов правильная комбинация — выключенное перенаправление и включённый AJAX: покупатель не покидает каталог, а корзина обновляется в шапке. Тогда и скрывать ничего не приходится.
Если у вас блочная корзина
В новых магазинах страница корзины собирается на блоке Cart, а не на шорткоде. Блок показывает уведомления через собственную систему, и внешний вид полосы там другой. Фильтр wc_add_to_cart_message_html по-прежнему влияет на текст сообщения, которое WooCommerce ставит в очередь уведомлений, но проверить результат стоит именно на своей корзине — поведение шорткода и блока различается в деталях. Разницу между ними мы подробно разбирали в статье о событиях jQuery в WooCommerce.
Коротко
Уведомление о добавлении в корзину скрывается одной строкой через wc_add_to_cart_message_html — старый wc_add_to_cart_message не работает с версии 3.0. Тем же фильтром можно заменить текст на полезный, например с названием товара и ссылкой «Продолжить покупки». А часто вопрос снимается вообще без кода: выключите перенаправление в корзину и включите AJAX-добавление в каталоге.
Частые вопросы
Он устарел с WooCommerce 3.0 и больше не применяется. Актуальный фильтр — wc_add_to_cart_message_html, он получает текст, список добавленных товаров и флаг показа количества.
add_filter( 'wc_add_to_cart_message_html', '__return_empty_string' ); — в functions.php дочерней темы. Функция __return_empty_string встроена в WordPress.
Да. В WooCommerce → Настройки → Товары выключите перенаправление в корзину и включите AJAX-добавление в архивах — тогда полоса не появляется вовсе, а рядом с кнопкой возникает ссылка «Посмотреть корзину».
Второй аргумент фильтра — массив «идентификатор товара → количество». Пройдитесь по нему и соберите названия через get_the_title(). Не забудьте указать в add_filter три аргумента, иначе массив не придёт.
Источники
- 1.WooCommerce Hooks Reference — wc_add_to_cart_message_htmlhttps://woocommerce.github.io/code-reference/hooks/hooks.html
- 2.Configuring WooCommerce Settings — документация WooCommercehttps://woocommerce.com/document/configuring-woocommerce-settings/


