WooCommerce не отправляет письма о заказе — как исправить | Мастерская — de-bor.ru

Частный web-мастер Денис Борисов
WordPress-сайтов

WooCommerce не отправляет письма о заказе — как исправить

WooCommerce · 2026-05-28 · 5 мин чтения
WooCommerce показывает «заказ оформлен», клиент ждёт письмо, а оно не приходит. Проблема почти всегда в том, что WooCommerce полагается на wp_mail(), а тот без SMTP работать отказывается. Но есть и специфичные для WooCommerce причины.

Почему письма WooCommerce не доходят

Причин обычно четыре, и они наслаиваются:

  1. Нет SMTP. WooCommerce отправляет письма через wp_mail() -> PHP mail(). Как и Contact Form 7. Если SMTP не настроен — письма либо не уходят, либо попадают в спам.
  2. Action Scheduler не работает. Начиная с WooCommerce 4.0, письма отправляются через фоновую очередь. Если cron сайта не выполняется — письма зависают в статусе pending и никогда не доходят.
  3. Шаблон письма пустой или битый. Если в WooCommerce → Настройки → Письма шаблон не заполнен или сломан HTML-код, письмо уходит пустым и попадает в спам.
  4. Кэш чекаута. Если страница оформления заказа закэширована (LiteSpeed, WP Rocket, Cloudflare), WooCommerce может не выполнить отправку письма после заказа.
Проверьте себя за 30 секунд Сделайте тестовый заказ. Откройте WooCommerce → Статус → Запланированные задачи. Найдите woocommerce_run_on_woocommerce_order_status_*. Если у этих задач статус pending — проблема в cron. Если complete — проблема в SMTP или шаблонах.

Как исправить

1. Настроить SMTP

Первое и главное. WooCommerce без SMTP — как курьер без адреса. Инструкция та же, что для WordPress, но с двумя нюансами:

  1. Плагин WP Mail SMTP. Установите, укажите SMTP-сервер и пароль приложения. Бесплатной версии хватает.
  2. Укажите «От кого». В настройках плагина задайте Force From Email: shop@вашдомен.ru. WooCommerce использует адрес из настроек плагина, и если он не совпадает с доменом — Gmail/Mail.ru отклонят письмо.
Пароль приложения, не пароль от почты Яндекс и Mail.ru требуют создать отдельный пароль приложения (Настройки аккаунта → Безопасность). Пароль от ящика не сработает.

SMTP-серверы, проверенные на практике:

  • Яндекс 360: smtp.yandex.ru, порт 465 (SSL)
  • Mail.ru для бизнеса: smtp.mail.ru, порт 465 (SSL)
  • Beget: smtp.beget.com, порт 465

После настройки: WP Mail SMTP → Инструменты → Тест письма. Если ушло — SMTP работает.

2. Проверить Action Scheduler

Если SMTP настроен, а письма всё равно не доходят — проверьте очередь задач. WooCommerce ставит отправку писем в очередь через Action Scheduler. Если cron не работает, очередь копится и письма не уходят.

Диагностика:

WooCommerce → Статус → Запланированные задачи
Ищем задачи с "woocommerce" в имени
Смотрим статус: Complete или Pending

Если много задач в статусе Pending — запустите их вручную:

WooCommerce → Статус → Инструменты → «Запустить действие по расписанию»

Для стабильной работы замените встроенный WP-Cron на системный:

# В wp-config.php:
define('DISABLE_WP_CRON', true);

# В crontab (каждые 5 минут):
*/5 * * * * wget -q -O - https://вашсайт.ru/wp-cron.php?doing_wp_cron > /dev/null 2>&1
На VPS Вместо wget используйте php /путь/к/сайту/wp-cron.php. Быстрее и не зависит от сети. На Beget и Timeweb — только wget (консольного PHP нет).

3. Проверить шаблоны писем

WooCommerce → Настройки → Письма. Откройте каждое письмо (Новый заказ, Завершённый заказ, Счёт) и проверьте три вещи:

  • Тема письма — не пустая, содержит хотя бы название магазина.
  • Заголовок — заполнен, без битого HTML. Если там <div> без закрытия — письмо попадёт в спам.
  • Адрес получателя — на письмах типа «Новый заказ» должен быть ваш email (админа), а не клиента.
Не редактируйте PHP-шаблоны WooCommerce напрямую Используйте WooCommerce → Настройки → Письма или фильтр woocommerce_email_header в functions.php темы. Правки в plugins/woocommerce/templates/emails/ слетят при обновлении.

4. Отключить кэш на странице чекаута

Если используется LiteSpeed Cache или WP Rocket — страница оформления заказа не должна кэшироваться. Кэшированная страница может отдать старый nonce, и WooCommerce пропустит событие отправки письма.

# LiteSpeed Cache → Кэш → Исключения → Не кэшировать URL:
/checkout/
/cart/
/my-account/

# WP Rocket → Настройки → Не кэшировать страницы:
/checkout/
/cart/
/my-account/

Для Cloudflare: создайте Page Rule для *вашсайт.ru/checkout* → Cache Level: Bypass.

Проверка результата

После исправлений сделайте тестовый заказ. Письма должны прийти в течение 1-2 минут:

  • Клиенту — подтверждение заказа (тема по умолчанию: «Ваш заказ принят»).
  • Админу — уведомление о новом заказе (тема: «Новый заказ #123»).
Как убедиться, что письма уходят Установите плагин WP Mail Logging. Он логирует все письма, отправленные через wp_mail(): адрес получателя, тему, статус отправки. После тестового заказа проверьте лог — если письмо есть в логе со статусом «sent», проблема на стороне получателя (спам). Если письма нет в логе — проблема в WooCommerce или cron.

Дополнительно: WooCommerce → Статус → Логи. Найдите файл с woocommerce-*. Если там есть ошибки с mail или email — это подсказка.

Когда способ не сработает

  • Хостинг блокирует исходящие порты. Некоторые shared-хостинги закрывают порты 465 и 587 для исходящих соединений. Проверьте у техподдержки. Если закрыты — используйте транзакционный сервис (Mailgun, Brevo) с API-отправкой через порт 443.
  • WooCommerce Subscriptions. Для автоматических продлений нужен продвинутый cron (systemd timer или WP-Cron с высокой частотой). Action Scheduler может не справляться с нагрузкой. Решение: активируйте Action Scheduler CLI через wp action-scheduler run.
  • Кастомная тема ломает хуки. Если тема удаляет или переопределяет стандартные хуки WooCommerce — письма не отправятся. Проверьте, отключив тему на Storefront.
  • Плагин управления заказами. Некоторые плагины (YITH, Order Status Manager) перехватывают статусы заказов и могут блокировать триггеры отправки писем.
  • Письма уходят, но в спаме. Значит SMTP работает, но нет SPF/DKIM/DMARC-записей. Добавьте их в DNS-зону домена. WP Mail SMTP покажет инструкцию в разделе «Проверка домена».

Частые вопросы

Почему клиент получает письмо, а я (админ) — нет?
Проверьте WooCommerce → Настройки → Письма → Новый заказ. В поле «Получатель» должен быть ваш email. По умолчанию там {admin_email} — email из Настройки → Общие. Убедитесь, что он правильный.
Плагин WP Mail SMTP показывает «письмо отправлено», но оно не приходит
Сервер SMTP принял письмо, но почтовый сервер получателя его отклонил (спам). Добавьте SPF и DKIM-записи в DNS. Проверьте на mail-tester.com — он покажет рейтинг доставляемости и конкретные ошибки.
После обновления WooCommerce перестали приходить письма
Скорее всего, обновление сбросило настройки шаблонов писем или хуки темы перестали работать с новой версией. Проверьте WooCommerce → Статус → Логи на наличие fatal-errors. Часто помогает пересохранить настройки каждого письма (даже без изменений) — это сбрасывает кэш опций.
Можно ли обойтись без плагина SMTP?
Нет. mail() не авторизуется на почтовом сервере, и крупные почтовики (Gmail, Mail.ru, Яндекс) с высокой вероятностью отклонят такое письмо. Даже если письмо уходит сейчас, при смене хостинга или IP-адреса проблема вернётся. SMTP с авторизацией — единственный стабильный способ.
Проверено. Июнь 2026. WooCommerce 9.x, WordPress 6.x, PHP 8.x.

Письма не доходят, нет времени разбираться?

Настрою SMTP, проверю очередь задач, починю шаблоны писем. Обычно хватает часа.

Написать в Написать в

Сопровождение и поддержка сайта

Сопровождение и поддержка сайта

WooCommerce: оплата, доставка, письма.

от 5.400 ₽/мес

Подробнее
Техническая оптимизация

Техническая оптимизация

Ускорю WooCommerce, оптимизирую код.

7.200

Подробнее
Меню раздела
Теги

Разрабатываю WordPress-сайты

Лендинги, многостраничные сайты, интернет-магазины на WooCommerce — всё на WordPress с удобной панелью управления.

Сайт под ключ: регистрация домена и хостинга, установка WordPress, настройка шаблона и модулей.

Поддерживаю WordPress-сайты

Обновление плагинов и тем, резервное копирование, мониторинг работоспособности — сайт работает без сбоев.

Оперативное исправление ошибок, создание новых разделов, доработка функционала и наполнение контентом.

Продвигаю WordPress-сайты

SEO-оптимизация, настройка Яндекс Метрики и Вебмастера, подключение Google Search Console.

Оптимизация позволяет «поднять» сайт в поисковых выдачах, увеличить целевой трафик и привлечь новых клиентов.

Чистка от вирусов WordPress

Если сайт взломали, появился подозрительный код или спам-рассылка — найду и удалю вредоносный код, закрою уязвимости и настрою защиту от повторного заражения.

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

Диагностика сайта

Проверю ваш сайт по ключевым параметрам и подготовлю отчёт с рекомендациями:

  • Скорость загрузки и производительность;
  • Безопасность и уязвимости;
  • SEO-состояние и индексация;
  • Мобильная адаптация;
  • Технические ошибки и код.
Заказать диагностику
Михайлова Анастасия

Денис МАСТЕР своего дела. Вёл целый проект, работали с ним на протяжении 4х месяцев. Отзывчивый, понимающий с полуслова специалист. Стоимость услуг радует, а качество работы приводит в восторг.

Денис спасибо Вам от лица нашей строительной компании и от всего нашего персонала.

Михайлова Анастасия
Игорь Караваев

Обратился к Денису для восстановления сайта на WordPress после сбоя. Сделал, как и обещал, за сутки — сайт снова работает без ошибок. Профессионал своего дела, доходчиво объясняет, вежлив и тактичен. Однозначно рекомендую!

Игорь Караваев
Яна Веркулич

Денис, спасибо огромное за работу)) Очень тепло вспоминаю Вас и все что Вы сделали для моей работы и моего сайта.

Денис Профессионал с большой буквы, решает любые вопросы, отличный специалист))

Рекомендую к сотрудничеству, еще раз спасибо)

Яна Веркулич
Бюро Переводов

Денис оперативно и грамотно справляется со всеми поставленными задачами. Внес правки на англоязычную и русскоязычную версии сайта, учел все пожелания. Будем обращаться еще!

Бюро Переводов
Анастасия Виричева

Денис мастер своего дела, рекомендую его как специалиста.
Понимает, что нужно сделать и справляется с поставленной задачей в короткое время.

Делал сайт для салона красоты, просто и функционально.

Анастасия Виричева
Владимир

Очень много времени мучались с сайтом на OpenCart. «Специалисты» не могли нормально разобраться в проблеме, возникавшей при выполнении элементарной задачи.

Денис сделал это в два счета, также расписал подробно, в чем была проблема и как она решена. На 200% доволен. Даже не хочется его рекомендовать, потому что будет постоянно занят))

Владимир
Ксения Петровская

Денис оперативно ответил и помог решить проблему, которую я даже описать нормально не могла)) Мы сами что-то накрутили с корпоративной почтой — письма то уходили, то нет, в общем всё сломали.

Денис всё починил, теперь у нас нормальная почта, домен работает, письма приходят и уходят. Цена как заявлена — оплатили по факту проверки. Спасибо большое!

Ксения Петровская
Александр Кривуля

Заказал у Дениса доработать сайт на WordPress. При этом трудно себе представлял, что сам хочу. Благодаря профессионализму Дениса и его умению всё грамотно и просто объяснять, предлагать разные варианты решений — цель была достигнута.

Умение общаться доходчиво и терпеливо с клиентами — огромный плюс. Я очень доволен. Однозначно рекомендую!

Александр Кривуля
Кондитер мания

Прекрасный специалист, ответил и устранил ошибку на сайте за пару часов, сохранила контакт, будем по необходимости обращаться. Рекомендую!

Кондитер мания

Бесплатная настройка хостинга и домена

Регистрация хостинга на 1 месяц и домена .ru/.рф на 1 год входит в стоимость разработки сайта.

Подробнее

Разрабатываю сайты для клиентов по всей России:

Показать все города