WooCommerce: как использовать хук для добавления индивидуального совета на странице товара

Диагностика задачи: зачем нужен индивидуальный совет на странице товара

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

Выбор правильного хука для вывода совета на странице товара

WooCommerce предлагает несколько хуков для вставки контента на страницу товара. Наиболее удобные для наших целей:

  • woocommerce_single_product_summary — выводит контент в основной части (справа от изображения), можно использовать с разными приоритетами;
  • woocommerce_after_single_product_summary — после всей основной информации, подходит для длинных блоков;
  • woocommerce_before_single_product — до отображения товара, редко используется для советов.

Для индивидуального совета лучше всего выбрать woocommerce_single_product_summary с приоритетом 25-30, чтобы добавить его после цены и описания.

Пошаговое решение: добавляем индивидуальный совет для товаров категории «Спорт»

Допустим, мы хотим показывать совет «Не забывайте про разминку!» только на товарах из категории «Спорт».

add_action('woocommerce_single_product_summary', 'add_custom_advice_for_sport_products', 28);
function add_custom_advice_for_sport_products() {
    if (has_term('sport', 'product_cat')) {
        echo '<div class="custom-advice" style="margin-top:15px; padding:10px; background:#eaf5ff; border-left:4px solid #0073aa;">';
        echo '<strong>Совет:</strong> Не забывайте про разминку перед тренировкой!';
        echo '</div>';
    }
}

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

Объяснение кода

  • has_term('sport', 'product_cat') проверяет, принадлежит ли товар категории «sport»;
  • HTML блок стилизован простым инлайновым CSS, чтобы совет выделялся визуально;
  • Приоритет 28 ставит вывод после цены и описания.

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

1. Откройте страницу любого товара, принадлежащего категории «Спорт».

2. Убедитесь, что под описанием товара появился блок с текстом «Совет: Не забывайте про разминку перед тренировкой!».

3. Для товара из другой категории блок не должен отображаться.

4. Очистите кэш сайта и браузера, если изменений не видно сразу.

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

  • Совет не отображается на странице товара: Проверьте, что категория «sport» действительно существует и товар к ней привязан. Также убедитесь, что код добавлен в правильный файл и активен.
  • Совет отображается на всех товарах: Возможно, функция has_term вызывается без параметров или проверка реализована неправильно. Проверьте, что вы указали правильный слаг категории.
  • HTML блок ломает верстку: Используйте собственные CSS-классы и стили, избегайте инлайновых стилей в продакшене. Проверьте конфликт стилей темы или плагинов.

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

  • Не используйте прямой вывод echo с пользовательскими данными без экранирования. В нашем примере фиксированный текст, но если совет формируется динамически, применяйте esc_html() или wp_kses_post().
  • Проверка категории через has_term эффективна и не нагружает базу при небольшом количестве условий.
  • Если совет зависит от сложных условий, кешируйте результат с помощью транзиентов (set_transient()) для ускорения загрузки.

Альтернативные варианты и сравнение

МетодПлюсыМинусыКод/Плагин
Использование хуков WooCommerce (как в статье) Легко кастомизируется, не требует плагинов, быстрая загрузка Требует навыков разработки, можно ошибиться с приоритетами Код, показанный выше
Плагин для вставки контента по условиям (например, WooCommerce Custom Product Tabs) Удобный интерфейс, подходит для неразработчиков Дополнительная нагрузка, меньше гибкости Плагин из репозитория WordPress
Редактирование шаблонов темы (single-product.php) Полный контроль над разметкой Обновления темы могут перезаписывать изменения, сложность поддержки Правки в шаблонах темы
Как настроить 404-страницу в WordPress, чтобы не терять трафик и не индексировать мусор
10.09.2026
Как использовать REST API в WordPress для расширения функционала
26.08.2026
Как избежать проблем с кэшированием в WordPress: практические советы и примеры
08.09.2026
WooCommerce: как исправить проблему отсутствия обновлений стоимости после изменения валюты
01.10.2026
WooCommerce: как быстро использовать хуки для добавления контента в страницы товара
28.09.2026