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

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

Проблемы с отправкой уведомлений по электронной почте при создании заказа — частая боль WooCommerce-сайтов. Часто письма не доходят до клиентов или администраторов, либо отправляются с задержкой. Первым делом нужно проверить:

  • Активирована ли отправка писем в настройках WooCommerce (WooCommerce → Настройки → Email).
  • Включены ли нужные уведомления (например, «Новый заказ» или «Обработка заказа»).
  • Не попадают ли письма в спам — проверьте почтовый ящик получателя.
  • Работает ли функция wp_mail() на вашем хостинге — можно проверить с помощью простого теста.
  • Нет ли конфликтов с плагинами безопасности, антиспамом или SMTP.

Для тестирования отправки почты создайте простой PHP-файл с кодом:

<?php
$to = 'your-email@example.com';
$subject = 'Тестовая отправка почты';
$message = 'Если вы получили это письмо, то wp_mail работает корректно.';
$headers = array('Content-Type: text/html; charset=UTF-8');

if(wp_mail($to, $subject, $message, $headers)) {
    echo 'Письмо отправлено';
} else {
    echo 'Ошибка отправки';
}
?>

Если письмо не приходит, проблема в серверной настройке почты, а не WooCommerce.

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

1. Использование SMTP-плагина для надежной отправки почты

Стандартная функция wp_mail() использует mail() PHP, которая часто блокируется хостингом или попадает в спам. Рекомендуется настроить SMTP-сервер для отправки почты. Для этого:

  1. Установите плагин WP Mail SMTP.
  2. Перейдите в настройки плагина и укажите SMTP-сервер вашего почтового провайдера (Gmail, Яндекс, Mail.ru, корпоративный SMTP и т.д.).
  3. Введите логин и пароль, настройте порт и метод шифрования (обычно TLS 587 или SSL 465).
  4. Отправьте тестовое письмо из настроек, чтобы убедиться в работе.

2. Проверка и корректировка шаблонов писем WooCommerce

Если письма отправляются, но приходят пустыми или с ошибками, возможно, сломаны шаблоны email WooCommerce. Для проверки:

  • Перейдите в wp-content/plugins/woocommerce/templates/emails/ и посмотрите, не были ли изменены шаблоны.
  • В админке WooCommerce → Статус → Шаблоны найдите информацию о переопределённых шаблонах email.
  • Если шаблоны устарели, обновите их или временно отключите кастомные шаблоны, чтобы проверить отправку стандартных писем.

3. Отключение конфликтующих плагинов и тем

Для выявления конфликтов отключите все плагины кроме WooCommerce и смените тему на стандартную (например, Storefront). Если отправка заработала — включайте плагины по одному, чтобы найти виновника.

4. Добавление логирования отправки писем

Для отладки можно добавить логирование вызовов wp_mail(). В functions.php добавьте:

add_filter('wp_mail', function($args) {
    $log = sprintf("Отправка почты: Кому - %s; Тема - %s\n", implode(', ', (array)$args['to']), $args['subject']);
    error_log($log);
    return $args;
});

Логи проверяйте в файле wp-content/debug.log (для этого включите WP_DEBUG и WP_DEBUG_LOG в wp-config.php).

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

Чтобы убедиться, что письма о создании заказа отправляются успешно, выполните:

  1. Создайте тестовый заказ на сайте, используя реальный email.
  2. Проверьте папки «Входящие» и «Спам» на почте получателя.
  3. Просмотрите логи плагина SMTP и debug.log для ошибок.
  4. При необходимости используйте сторонние инструменты для проверки SMTP (например, Mail Tester).

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

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

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

  • Не храните пароли SMTP в открытом виде — используйте возможность плагина шифровать или хранить конфиденциально.
  • Ограничьте частоту отправки писем, чтобы избежать блокировки почтовым провайдером.
  • Регулярно обновляйте WooCommerce и SMTP-плагины для совместимости и безопасности.
  • Для больших магазинов на WooCommerce рассмотрите использование сторонних сервисов отправки почты (SendGrid, Mailgun) с API интеграцией.

Сравнение способов настройки отправки почты в WooCommerce

МетодПлюсыМинусыПример
Стандартная wp_mail()Простота, не требует установки плагиновНизкая надежность, письма часто в спамеВстроена в WordPress
SMTP-плагин (WP Mail SMTP)Высокая надежность, контроль над серверомТребует настройки, возможны проблемы с паролямиhttps://wpshop.ru/plugins/clearfy?utm_source=wp0.ru&utm_medium=article&utm_campaign=woocommerce-reshenie-problemy-s-otpravkoj-pisem-o-sozdanii-zakaza
API почтовых сервисов (SendGrid, Mailgun)Максимальная производительность и аналитикаСложность интеграции, платные сервисыТребует кастомной настройки и кода

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