WooCommerce: решение проблемы с отправкой писем о создании заказа

Диагностика проблемы с отправкой email в WooCommerce

Первым шагом необходимо убедиться, что проблема действительно связана с отправкой писем WooCommerce, а не с сервером или настройками почты. Обычно пользователи жалуются, что письма о новых заказах не приходят, хотя заказ успешно создается в админке.

Проверяем следующие моменты:

  • Включены ли уведомления в настройках WooCommerce (WooCommerce → Настройки → Email).
  • Есть ли письма в папке «Спам» или они блокируются почтовым сервером.
  • Работает ли базовая отправка почты в WordPress (например, отправка письма через функцию wp_mail()).

Тест отправки почты через wp_mail()

Для проверки базовой отправки добавьте следующий код в файл functions.php вашей темы и посетите любую страницу сайта:

add_action('wp_loaded', function() {
    wp_mail('your-email@example.com', 'Тестовая почта', 'Проверка отправки wp_mail');
});

Если письмо не приходит, значит проблема на уровне сервера или конфигурации почты.

Пошаговое решение проблемы отправки писем о создании заказа

1. Установка SMTP-плагина для надежной отправки

По умолчанию WordPress использует wp_mail(), которая зависит от настроек сервера. Для надежной работы рекомендуем использовать SMTP:

  • Установите плагин WP Mail SMTP.
  • В настройках плагина выберите SMTP-сервер вашего почтового провайдера (Gmail, Яндекс, Mail.ru и др.).
  • Заполните параметры SMTP (хост, порт, логин, пароль).

2. Проверка и настройка WooCommerce Email

Перейдите в WooCommerce → Настройки → Email и убедитесь, что письма New Order и Processing Order активированы.

Также проверьте, что адреса получателей указаны правильно, без опечаток.

3. Очистка кэша и тестирование

Если на сайте используется плагин кэширования (например, WP Super Cache, W3 Total Cache), очистите кэш после настройки SMTP и отправьте тестовый заказ.

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

После настройки отправьте тестовый заказ в WooCommerce. Убедитесь, что:

  • Письмо о новом заказе пришло на указанный email администратора.
  • Письмо о подтверждении заказа пришло на email покупателя (если включено).

Также рекомендуем проверить логи SMTP-плагина: обычно в WP Mail SMTP есть вкладка с журналом отправленных писем и ошибок.

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

  • Письма не приходят, но wp_mail() работает: проверьте, не блокирует ли хостинг внешние SMTP-соединения. В этом случае обратитесь в поддержку хостера.
  • Письма попадают в спам: настройте SPF, DKIM и DMARC записи в DNS для вашего домена.
  • Неверный email в настройках WooCommerce: исправьте адреса получателей уведомлений.
  • Плагин SMTP конфликтует с другими плагинами: попробуйте временно отключить другие плагины и проверить отправку.

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

  • Используйте SMTP с авторизацией и шифрованием (TLS/SSL) — это повысит безопасность отправки почты.
  • Не храните пароли SMTP в открытом виде — при возможности применяйте секреты или переменные окружения.
  • Для крупных магазинов настройте отдельный почтовый сервер или сервис (например, SendGrid, Mailgun) для рассылок, чтобы избежать блокировок.
  • Отключайте ненужные email уведомления, чтобы не перегружать сервер и почтовые ящики.

Пример базовой настройки отправки письма о заказе через хук WooCommerce

Если требуется кастомизация, можно добавить свой хук для отправки письма:

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

    $order = wc_get_order($order_id);
    $to = $order->get_billing_email();
    $subject = 'Спасибо за заказ!';
    $message = 'Ваш заказ №' . $order_id . ' принят и обрабатывается.';
    wp_mail($to, $subject, $message);
}

Этот код отправит простое письмо покупателю после оформления заказа, если стандартные уведомления не подходят.

Наш каталог плагинов WordPress