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

Диагностика проблемы: почему стандартные страницы товара нужно расширять

В WooCommerce часто требуется добавить дополнительный контент на страницы товаров: уникальные описания, рекламные блоки, отзывы, таблицы характеристик, кастомные кнопки и пр. Без использования хуков приходится модифицировать шаблоны, что неудобно и неустойчиво к обновлениям. Хуки позволяют внедрять контент программно, сохраняя совместимость с будущими версиями WooCommerce.

Какие хуки доступны на странице товара

WooCommerce предоставляет несколько основных хуков в шаблоне single-product.php и его частях:

  • woocommerce_before_single_product — перед всем контентом товара.
  • woocommerce_before_single_product_summary — до блока с изображениями и описанием.
  • woocommerce_single_product_summary — внутри основного блока с описанием, ценой, кнопкой.
  • woocommerce_after_single_product_summary — после описания, например, для табов и дополнительной информации.
  • woocommerce_after_single_product — в конце всей страницы товара.

Используя эти хуки, можно вставлять контент в нужных местах без правки шаблонов.

Пошаговое решение: добавляем кастомный блок с информацией после цены

Допустим, нужно добавить блок с дополнительными гарантиями сразу после цены на странице товара.

1. Создайте функцию для вывода контента:

function add_custom_warranty_info() {
    echo '<div class="custom-warranty" style="margin-top:15px; font-weight:bold; color:#007cba;">'
       . 'Гарантия 12 месяцев от производителя' . '</div>';
}

2. Подключите функцию к нужному хуку с приоритетом, чтобы вставить сразу после цены:

add_action('woocommerce_single_product_summary', 'add_custom_warranty_info', 25);

Приоритет 25 стоит после стандартной цены (обычно 10) и кнопки «Добавить в корзину» (20).

Как проверить, что добавленный контент появился

  • Откройте любую страницу товара на сайте.
  • Проверьте, что под ценой отображается блок с текстом «Гарантия 12 месяцев от производителя».
  • Используйте инструменты разработчика браузера (F12) для проверки HTML и стилей.
  • Если не отображается — проверьте, подключен ли ваш код в functions.php или в плагине.

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

  • Неправильно выбран приоритет хука. Контент либо не отображается, либо появляется в неправильном месте. Решение — подобрать приоритет с учетом стандартных функций WooCommerce.
  • Код функции не подключен или подключен после хуков. Убедитесь, что код добавлен в functions.php активной темы или в плагин, и загружается до инициализации WooCommerce.
  • Использование хуков вне контекста страницы товара. Некоторые хуки работают только в шаблонах товара. Добавляйте проверки if (is_product()) для безопасности.
  • Конфликты с другими плагинами. Отключите временно сторонние плагины, чтобы выявить конфликт.

Практические советы по оптимизации и безопасности при добавлении контента через хуки

  • Используйте esc_html() или esc_attr() для вывода динамических данных, чтобы избежать XSS-уязвимостей.
  • Минимизируйте тяжелые вычисления в функциях хука — кешируйте результаты, если нужно.
  • Не добавляйте слишком много контента через хуки на одну страницу, чтобы не замедлять загрузку.
  • Проверяйте совместимость с мобильными устройствами, стилизуйте новые блоки адаптивно.

Таблица: сравнение способов добавления кастомного блока на страницу товара

СпособПлюсыМинусы
Правка шаблона single-product.phpПолный контроль над разметкойТребует обновления при обновлении WooCommerce, риск ошибок
Добавление через хуки (как в статье)Безопасно, устойчиво к обновлениям, легко менятьОграничено местами, куда есть хуки
Использование плагинов-конструкторов (Elementor, Divi и др.)Простота, визуальное редактированиеЗависимость от плагина, возможное замедление сайта

Дополнительный пример: добавление кастомного блока с видео после описания товара

function add_custom_video_after_description() {
    if ( ! is_product() ) {
        return;
    }
    echo '<div class="custom-product-video" style="margin-top:30px;">'
       . '<iframe width="560" height="315" src="https://www.youtube.com/embed/dQw4w9WgXcQ" ' 
       . 'title="Видео о товаре" frameborder="0" allowfullscreen></iframe>'
       . '</div>';
}
add_action('woocommerce_after_single_product_summary', 'add_custom_video_after_description', 5);
Как автоматически отправлять email при создании записи в WordPress
31.03.2026
Автоматическое удаление старого контента в WordPress
24.03.2026
Как удалить сериализованные данные из базы данных WordPress правильно
18.11.2025
Как автоматизировать обновление шаблонов WordPress без рисков
16.04.2026
Создание и восстановление резервной копии базы данных WordPress
20.02.2026