Диагностика проблемы с отправкой 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);
}Этот код отправит простое письмо покупателю после оформления заказа, если стандартные уведомления не подходят.