Как отключить авто-знаки товаров в WooCommerce без потери функциональности

Что такое авто-знаки (automatic badges) в WooCommerce и зачем их отключать

Авто-знаки (или бейджи) в WooCommerce — это визуальные метки, которые автоматически добавляются к товарам, например, «Новинка», «Распродажа» или «Хит». Они помогают привлечь внимание покупателей, но иногда мешают кастомному дизайну или вызывают конфликт с темой и плагинами.

Задача: убрать эти авто-знаки без потери основной функциональности товаров и без правки исходников плагина.

Диагностика проблемы: как понять, что авто-знаки создаются WooCommerce или темой

  • Проверьте исходный код страницы товара: если бейджи создаются через CSS-классы типа onsale или через хуки WooCommerce, значит это стандартные авто-знаки.
  • Отключите все кастомные плагины, оставьте только WooCommerce и тему — если знаки пропадают, вероятно, они добавляются через сторонний плагин.
  • Если в теме есть папка woocommerce с файлами переопределения sale-flash.php или похожими, она может добавлять собственные бейджи.

Пошаговое решение: отключение авто-знаков через код

WooCommerce использует хук woocommerce_sale_flash для вывода бейджа «Sale». Обычный способ — удалить этот хук или перезаписать функцию вывода.

1. Отключение стандартного бейджа «Sale»

remove_action('woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 10);
remove_action('woocommerce_before_single_product_summary', 'woocommerce_show_product_sale_flash', 10);

Добавьте этот код в functions.php вашей дочерней темы.

2. Отключение кастомных бейджей из темы или плагинов

Если вы нашли в теме или плагинах фильтр woocommerce_sale_flash, можно перезаписать его, чтобы вернуть пустой результат:

add_filter('woocommerce_sale_flash', '__return_empty_string');

3. Отключение других авто-знаков (например, «Новинка»)

Если используются дополнительные бейджи, которые не стандартные, нужно определить, как они добавляются (обычно через хуки или фильтры в плагинах). Чаще всего это:

  • Фильтры на woocommerce_product_get_rating_html
  • Вывод через шорткоды или кастомные функции в шаблонах

Отключите или перепишите соответствующие функции, например:

remove_action('woocommerce_before_shop_loop_item_title', 'custom_new_badge_function', 15);

Проверка результата после внедрения

  • Очистите кеш браузера и кеш сайта (если есть кэширование).
  • Перейдите на страницу каталога и отдельного товара — бейджи «Sale» и «Новинка» должны отсутствовать.
  • Проверьте, что цены и другие элементы товара отображаются корректно.
  • Для точной проверки используйте инструменты разработчика в браузере (F12) — убедитесь, что элементы с классом onsale не выводятся.

Частые ошибки и как их исправить

  • Код не работает после обновления темы или WooCommerce: всегда используйте дочернюю тему для кастомизаций, чтобы изменения не были перезаписаны.
  • Бейджи остаются, несмотря на удаление хуков: проверьте кастомный CSS и JavaScript, которые могут добавлять эти элементы динамически.
  • Отключение бейджей приводит к ошибкам в шаблонах: убедитесь, что удаление хуков не ломает верстку, проверьте консоль браузера на наличие JS-ошибок.
  • Использование метода add_filter('woocommerce_sale_flash', '__return_empty_string'); не убирает бейджи: возможно, они добавляются кастомными функциями — найдите и отключите их.

Практические советы по безопасности и производительности

  • Не редактируйте напрямую файлы плагинов WooCommerce — используйте хуки и фильтры.
  • Добавляйте кастомный код в дочернюю тему или в плагин-сниппет, чтобы избежать потери изменений при обновлении.
  • Отключение ненужных элементов уменьшает нагрузку на клиентскую часть и ускоряет загрузку страниц.
  • Используйте инструменты профилирования (например, Query Monitor) для оценки влияния изменений на производительность.

Сравнение способов отключения авто-знаков

МетодПреимуществаНедостаткиПример кода
Удаление хука (remove_action) Простой, работает с базовыми бейджами Не работает с кастомными бейджами remove_action('woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 10);
Фильтр пустого значения (add_filter) Универсальный, переопределяет вывод Может не работать с полностью кастомным выводом add_filter('woocommerce_sale_flash', '__return_empty_string');
Удаление кастомных функций (remove_action по кастомным хукам) Точный контроль, подходит для любых бейджей Требует изучения кода темы/плагина remove_action('woocommerce_before_shop_loop_item_title', 'custom_new_badge_function', 15);

Итог

Отключение авто-знаков в WooCommerce — задача, решаемая через грамотное использование хуков и фильтров. Главное — понимать источник добавления бейджей и не вносить изменения напрямую в плагины. Если нужна помощь в более сложной кастомизации, рекомендуем использовать проверенные плагины для управления WooCommerce или обратиться к расширениям от WPShop, например, Clearfy Pro для оптимизации и чистки сайта.

Кастомизация страницы входа в WordPress: плагины и примеры кода
15.03.2026
Как отключить AJAX подгрузку корзины WooCommerce для улучшения производительности
17.05.2026
Как сделать автоматическое удаление старого контента по типу записи в WordPress
03.04.2026
Как создать собственный виджет WordPress: практическое руководство
10.11.2025
Как удалить неиспользуемые виджеты в WordPress для ускорения сайта
09.03.2026