Как использовать хук WooCommerce thankyou для автоматических действий после оформления заказа

Что такое хук woocommerce_thankyou и где он применяется

Хук woocommerce_thankyou срабатывает после успешного оформления заказа в WooCommerce. Его основное назначение — запускать пользовательские функции сразу после того, как покупатель оплатил заказ и попал на страницу благодарности. Это идеальное место для выполнения дополнительных действий, например, отправки кастомных уведомлений, интеграции с CRM, изменения метаданных заказа или автоматического создания связанных записей.

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

Если вы добавили функцию на хук woocommerce_thankyou, но она не выполняется, проверьте следующее:

  • Правильное подключение к хуку с помощью add_action('woocommerce_thankyou', 'ваша_функция', 10, 1);
  • Функция принимает параметр $order_id (важно для доступа к данным заказа)
  • Нет фатальных ошибок или конфликтов с другими плагинами
  • Оформление заказа действительно завершено (статус заказа должен быть «processing» или «completed»)

Пошаговое решение: пример автоматической отправки кастомного email после оформления заказа

Добавим код в functions.php вашей темы или в кастомный плагин:

add_action('woocommerce_thankyou', 'send_custom_email_after_order', 10, 1);
function send_custom_email_after_order($order_id) {
    if (!$order_id) return;

    $order = wc_get_order($order_id);
    if (!$order) return;

    // Проверяем статус заказа
    if (!in_array($order->get_status(), array('processing', 'completed'))) return;

    // Получаем email покупателя
    $to = $order->get_billing_email();
    $subject = 'Спасибо за ваш заказ!';
    $message = 'Ваш заказ #'. $order_id .' успешно получен и обрабатывается.';
    $headers = array('Content-Type: text/html; charset=UTF-8');

    wp_mail($to, $subject, $message, $headers);
}

Этот код отправит простой HTML email с благодарностью покупателю сразу после оформления заказа.

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

  • Оформите тестовый заказ на сайте с реальным email, к которому у вас есть доступ.
  • Проверьте папку входящих и спама у получателя — должно прийти письмо с темой «Спасибо за ваш заказ!».
  • Включите логирование ошибок PHP (через wp-config.php) для отлова возможных ошибок в коде.

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

  • Не передается ID заказа: убедитесь, что функция принимает параметр $order_id и что он не пустой.
  • Письмо не отправляется: проверьте корректность настроек почты на сервере, используйте плагины типа WP Mail SMTP для теста.
  • Код не вызывается: проверьте правильность подключения хука, не конфликтует ли код с другими плагинами, отключите кеширование на страницах оформления заказа.
  • Функция запускается несколько раз: возможно, хук подключен в нескольких местах или с разным приоритетом — проверьте дублирование.

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

  • Используйте wc_get_order для получения объекта заказа, а не прямой запрос к базе.
  • Ограничивайте действия только для нужных статусов заказа, чтобы не нагружать сервер лишними вызовами.
  • Для сложных интеграций используйте очередь задач (wp-cron или сторонние очереди), чтобы не замедлять страницу благодарности.
  • Проверяйте и фильтруйте входящие данные, если работаете с пользовательским вводом.

Сравнение вариантов реализации автоматических действий на thankyou

ВариантПреимуществаНедостатки
Хук woocommerce_thankyou (код)Прямой доступ к заказу, гибкость, нет сторонних зависимостейВыполняется при каждом переходе на страницу благодарности, возможна нагрузка
Плагин автоматизации (например, WP Remark)Удобство настройки, готовые шаблоны действийМожет быть избыточным, зависит от обновлений плагина
Вебхуки WooCommerceХорошо подходит для интеграций с внешними сервисамиТребует настройки внешнего сервера, нет локальной обработки
Как создать автоматическую резервную копию WordPress с помощью WPRemark
20.02.2026
Как успешно запустить собственный плагин WordPress в продакшн: практические советы
20.12.2025
Как использовать хуки в WordPress: практическое руководство
19.11.2025
Как добавить динамические параметры в шорткод WordPress
11.12.2025
Автоматическое создание Sitemap в WordPress с поддержкой Multisite
09.02.2026