WooCommerce: как настроить автоматическую отправку сообщений покупателям после заказа

Диагностика проблемы: почему сообщения не отправляются автоматически

В WooCommerce по умолчанию настроены базовые email-уведомления покупателям и администраторам. Однако, нередко требуется отправлять кастомные сообщения — например, с дополнительной информацией, промокодами или инструкциями. Если автоматические сообщения не доходят, проблема может быть в:

  • Отключенной или некорректно настроенной email-рассылке WooCommerce;
  • Конфликтах с плагинами, блокирующими почту;
  • Проблемах с сервером или настройками SMTP;
  • Отсутствии правильных хуков для запуска отправки;
  • Ошибках в коде кастомных функций.

Пошаговое решение: как добавить и настроить автоматическую отправку сообщений

1. Проверяем базовую работу email WooCommerce

В панели WordPress перейдите WooCommerce > Настройки > Email. Отправьте тестовое письмо с помощью кнопки "Отправить тестовое письмо". Если письмо не приходит — проблема на уровне сервера или SMTP.

2. Подключаем SMTP для надежной отправки почты

Установите плагин WP Mail SMTP и настройте его с данными вашего почтового сервера (например, Gmail, Mail.ru или корпоративный SMTP). Это устранит проблемы с отправкой писем.

3. Добавляем кастомную функцию для отправки сообщения после заказа

Используем хук woocommerce_order_status_completed — срабатывает, когда заказ переходит в статус "завершён". Вставьте код в файл functions.php вашей дочерней темы или в мини-плагин:

add_action('woocommerce_order_status_completed', 'send_custom_order_email', 10, 1);
function send_custom_order_email($order_id) {
    if (!$order_id) return;

    $order = wc_get_order($order_id);
    $to = $order->get_billing_email();
    $subject = 'Спасибо за ваш заказ! Дополнительная информация';
    $headers = array('Content-Type: text/html; charset=UTF-8');
    $message = '<p>Здравствуйте, ' . $order->get_billing_first_name() . '!</p>';
    $message .= '<p>Спасибо за покупку в нашем магазине. Ваш заказ #' . $order->get_order_number() . ' успешно завершён.</p>';
    $message .= '<p>В качестве бонуса используйте промокод <strong>THANKYOU10</strong> при следующем заказе.</p>';

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

4. Тестируем отправку

Создайте тестовый заказ в магазине и измените его статус вручную на "Завершён" (Completed). Проверьте, получает ли покупатель письмо с кастомным сообщением.

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

  • Заказ должен менять статус на "завершён";
  • Покупатель получает кастомное письмо с указанным содержимым;
  • Письмо не попадает в спам (проверьте заголовки и корректность SMTP);
  • В логах сервера нет ошибок отправки.

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

  • Письма не отправляются вообще: проверьте настройки SMTP, отключите плагины, которые могут блокировать почту (например, антивирусные или кеширующие).
  • Письма приходят с задержкой или в спам: настройте SPF, DKIM, DMARC записи у домена, используйте проверенные SMTP-серверы.
  • Код не срабатывает: убедитесь, что хук woocommerce_order_status_completed используется правильно, а функция подключена в functions.php без синтаксических ошибок.
  • Письмо пустое или некорректное: проверьте HTML-разметку письма, заголовки (Content-Type), используйте функции WordPress для генерации контента.

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

  • Не вставляйте в письмо чувствительные данные (например, пароли или полные платежные данные).
  • Используйте плагин для логирования почты, например WP Mail Logging, чтобы отслеживать отправленные письма и возможные ошибки.
  • Для большого количества заказов лучше использовать очередь отправки сообщений и сторонние сервисы (SendGrid, Mailgun), чтобы избежать блокировок хостингом.
  • Минимизируйте объем HTML в письмах для быстрой загрузки и совместимости с почтовыми клиентами.

Таблица сравнения способов отправки сообщений в WooCommerce

МетодПреимуществаНедостатки
Стандартные email WooCommerceПростая настройка, встроено, не требует кодаОграниченные возможности кастомизации
Кастомные функции (wp_mail + хуки)Полный контроль над содержимым и моментом отправкиТребует навыков программирования, возможны ошибки
Плагины для автоматизации (например, AutomateWoo)Мощные настройки, триггеры, интеграцииПлатные, могут нагрузить сайт
Как настроить автоматический импорт постов из Facebook в WordPress
20.03.2026
Как создать социальный чат в WordPress с применением WPRemark
25.02.2026
Как автоматически удалять старые сообщения из комментариев WordPress
28.03.2026
Как отключить переадресацию в WordPress: практические решения
01.01.2026
WordPress и OAuth 2.0: как настроить безопасную социальную авторизацию
31.03.2026