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

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

Если после оформления заказа в WooCommerce клиент не получает письмо подтверждения, это может быть связано с рядом причин — от неверных настроек почты до конфликтов с плагинами или серверными ограничениями. Первым делом необходимо проверить, отсылаются ли вообще письма WordPress и WooCommerce.

Как проверить, отправляет ли WordPress почту

Для проверки используйте плагин Check Email или отправьте тестовое письмо вручную через код:

add_action('admin_init', function() {
    if (!isset($_GET['send_test_email'])) return;
    wp_mail('your-email@example.com', 'Тест письма WordPress', 'Тестовое письмо для проверки отправки.');
    exit('Письмо отправлено');
});

Замените your-email@example.com на свой адрес и перейдите в админке по URL https://site.ru/wp-admin/?send_test_email=1. Если письмо не пришло — проблема на уровне сервера или почтовой настройки.

Пошаговое решение проблемы с письмами WooCommerce

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

В админке перейдите WooCommerce > Настройки > Email. Убедитесь, что уведомления о новом заказе и подтверждение заказчику включены. Проверьте правильность адреса электронной почты и шаблонов.

2. Переопределите функцию отправки почты для логирования

Добавьте код в functions.php вашей темы для отладки отправки:

add_filter('woocommerce_email_send', function($send, $email) {
    error_log('Отправка письма WooCommerce: ' . $email->id . ' - статус: ' . ($send ? 'успешно' : 'ошибка'));
    return $send;
}, 10, 2);

Посмотрите логи сервера (error_log) — появится информация о попытках отправки.

3. Используйте SMTP для отправки почты

Стандартная функция wp_mail() часто блокируется хостингом. Установите плагин WP Mail SMTP и настройте SMTP-сервер (например, Gmail, Mail.ru, или корпоративный SMTP). Пример настройки с PHPMailer:

// В wp-config.php или functions.php
add_action('phpmailer_init', function($phpmailer) {
    $phpmailer->isSMTP();
    $phpmailer->Host = 'smtp.mail.ru';
    $phpmailer->SMTPAuth = true;
    $phpmailer->Port = 465;
    $phpmailer->SMTPSecure = 'ssl';
    $phpmailer->Username = 'your-email@mail.ru';
    $phpmailer->Password = 'your-password';
    $phpmailer->From = 'your-email@mail.ru';
    $phpmailer->FromName = 'Название сайта';
});

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

После настройки SMTP отправьте тестовое письмо через WooCommerce:

  • В админке WooCommerce > Настройки > Email выберите любой шаблон и нажмите «Отправить тестовое письмо».
  • Оформите тестовый заказ на сайте и проверьте, приходит ли подтверждение на почту клиента.

Если письма приходят, значит проблема решена.

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

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

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

  • Используйте SMTP с авторизацией и шифрованием (SSL/TLS) для безопасности писем.
  • Не отключайте WooCommerce email-уведомления полностью, а лишь отключайте ненужные через фильтры.
  • Для повышения производительности используйте кэширование страниц и не отправляйте письма прямо в процессе заказа — лучше использовать очередь (например, с плагином WP Offload SES или WP Mail Queue).

Сравнение вариантов решения

МетодПлюсыМинусы
Стандартная функция wp_mail()Простота, встроено в WordPressЧасто блокируется хостингом, письма попадают в спам
SMTP через WP Mail SMTPНадежная доставка, поддержка популярных почтовых сервисовТребует настройки, возможно оплата SMTP-сервиса
Использование сторонних сервисов (SendGrid, Mailgun)Высокая надежность, аналитикаСложнее интеграция, дополнительные расходы
WooCommerce: решение проблемы с отправкой письма подтверждения заказа
28.05.2026
Как добавить поддержку PHP 8.2 в WordPress и проверить совместимость плагинов
10.02.2026
Как отключить Gutenberg и вернуть классический редактор в WordPress
02.04.2026
WooCommerce: решение проблемы неработающего AJAX добавления товара в корзину при конфликте с плагинами
21.05.2026
WooCommerce: решение проблемы неработающего AJAX добавления товара в корзину
07.05.2026

С появлением Gutenberg в WP появились и блоки. Однако не всем по душе новая версия редактора.