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

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

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

Проверка отправки почты WordPress

Создайте простой PHP-файл с функцией wp_mail и проверьте, приходит ли письмо:

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

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

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

Проверка логов WooCommerce и сервера

  • Включите логирование почты в WooCommerce: WooCommerce > Статус > Логи.
  • Проверьте ошибки в логах сервера (php_error.log, mail.log).
  • Проверьте, не блокирует ли хостинг отправку почты (особенно на shared-хостингах).

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

1. Установка SMTP-плагина

Стандартная функция wp_mail может не работать из-за ограничений почтового сервера. Рекомендуется использовать SMTP для надежной отправки почты.

Популярные плагины SMTP:

  • WP Mail SMTP
  • Post SMTP

Пример настройки с WP Mail SMTP:

  1. Установите и активируйте плагин WP Mail SMTP.
  2. Перейдите в Настройки > WP Mail SMTP.
  3. Выберите SMTP-сервер вашего почтового провайдера (Gmail, Mail.ru, Яндекс и т.п.).
  4. Укажите логин, пароль и порт SMTP.
  5. Сохраните настройки и отправьте тестовое письмо.

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

Если SMTP настроен, но письма всё равно не отправляются, проблема может быть в кастомных шаблонах писем:

  • Перейдите в WooCommerce > Настройки > Электронные письма.
  • Проверьте, включены ли нужные типы писем (например, "Новый заказ", "Заказ подтвержден").
  • Временно отключите кастомные шаблоны, если они есть (папка woocommerce/emails в вашей теме).

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

Конфликты с плагинами по безопасности или почте часто блокируют отправку:

  • Отключите все плагины, кроме WooCommerce и SMTP.
  • Проверьте отправку письма.
  • Включайте плагины по очереди, чтобы найти виновника.

4. Ручная отправка письма через код (для отладки)

Можно протестировать отправку письма программно в functions.php:

add_action('woocommerce_order_status_processing', 'send_custom_order_email', 10, 1);
function send_custom_order_email($order_id) {
    $order = wc_get_order($order_id);
    $to = $order->get_billing_email();
    $subject = 'Подтверждение вашего заказа #' . $order_id;
    $headers = array('Content-Type: text/html; charset=UTF-8');
    $message = 'Спасибо за заказ! Ваш заказ #' . $order_id . ' принят.';
    wp_mail($to, $subject, $message, $headers);
}

Это поможет проверить, работает ли отправка на определённом событии.

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

После внесения изменений:

  • Создайте тестовый заказ с разными статусами (например, "Обработка", "Выполнен").
  • Проверьте, приходят ли письма на почту покупателя.
  • Используйте логирование SMTP-плагина для просмотра ошибок.
  • В WooCommerce > Статус > Логи смотрите, нет ли ошибок почты.

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

  • Письма уходят в спам: настройте SPF, DKIM и DMARC для домена, используйте SMTP с авторизацией.
  • SMTP-подключение не устанавливается: проверьте правильность сервера, порта, логина, пароля, включено ли шифрование (SSL/TLS).
  • Конфликт плагинов безопасности: временно отключите плагины, например Wordfence, чтобы проверить работу почты.
  • Кастомные шаблоны писем не адаптированы к WooCommerce: протестируйте стандартные шаблоны.
  • Проблемы с хостингом: уточните у поддержки, разрешена ли отправка почты через PHP mail или SMTP.

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

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

Сравнение способов отправки писем в WooCommerce

МетодПреимуществаНедостатки
PHP mail()Простая настройка, не требует плагиновНизкая надежность, письма часто попадают в спам
SMTP через плагинВысокая надежность, поддержка шифрованияТребует настройки аккаунта и плагина
Внешние сервисы (SendGrid, Mailgun)Масштабируемость, подробные логиСложность интеграции, возможно платно
Как использовать WPRemark для оценки и модерации комментариев в WordPress
28.02.2026
WooCommerce: автоматическое удаление товаров без заказов
26.05.2026
Как создать свой плагин для автоматизации задач в WordPress
27.11.2025
Автоматическое изменение стоимости товара в WooCommerce по условиям
22.04.2026
WooCommerce: как установить лимит на количество товаров в корзине
09.07.2026