WooCommerce Замовлення не надсилають листи підтвердження: 7 виправлень
Чому WooCommerce-листи перестають працювати
WooCommerce надсилає листи через функцію WordPress wp_mail(), яка за замовчуванням використовує PHP-функцію mail(). Більшість хостинг-провайдерів блокують або обмежують її. Результат: листи виглядають так, ніби надсилаються, але ніколи не доходять.
Це одна з найпоширеніших проблем підтримки WooCommerce, і майже завжди вона пов'язана з налаштуваннями SMTP, а не з помилкою WooCommerce.
Крок 1: Перевірте налаштування електронної пошти WooCommerce
Перейдіть в WooCommerce → Налаштування → Електронні листи.
Переконайтеся:
- Сповіщення "Нове замовлення" увімкнено та має дійсну адресу отримувача
- "Замовлення клієнта обробляється" увімкнено
- Адреса "Від" походить з вашого реального домену (не Gmail/Hotmail)
Крок 2: Надішліть тестовий лист
Все ще в WooCommerce → Налаштування → Електронні листи, відкрийте будь-який шаблон листа та натисніть "Надіслати тестовий лист".
- Якщо тестовий лист прийшов → WooCommerce працює, проблема в тригерах статусу замовлення
- Якщо тестовий лист не прийшов → доставка пошти WordPress зламана
Крок 3: Встановіть та налаштуйте WP Mail SMTP
Цей плагін замінює PHP-пошту на правильне SMTP-з'єднання. Він безкоштовний і вирішує 90% проблем із електронною поштою WordPress.
WooCommerce → Плагіни → Додати новий → пошук "WP Mail SMTP"
Після встановлення перейдіть у Налаштування WP Mail SMTP → Загальні, оберіть постачальника зі списку нижче та введіть його дані:
- Brevo (Sendinblue): зареєструйтесь на brevo.com, увійдіть, перейдіть в SMTP & API → API Keys, створіть ключ. В плагіні оберіть "Sendinblue", вставте ключ API.
- Mailgun: зареєструйтесь на mailgun.com, отримайте домен та API-ключ (розділ Domains). В плагіні оберіть "Mailgun", введіть регіон (US/EU), домен та API-ключ.
- SendGrid: зареєструйтесь на sendgrid.com, створіть API-ключ з правами "Mail Send". В плагіні оберіть "SendGrid", вставте ключ.
Рекомендовані SMTP-провайдери (безкоштовний тариф):
| Провайдер | Безкоштовний ліміт | Найкраще підходить для |
|---|---|---|
| Brevo (Sendinblue) | 300/день | Більшість сайтів |
| Mailgun | 100/день | Розробники |
| SendGrid | 100/день | Вищі обсяги |
| Gmail SMTP | 500/день | Особисті проекти |
Після налаштування використовуйте вбудований інструмент тестування WP Mail SMTP → Email Test, щоб надіслати тестовий лист.
Крок 4: Перевірте папки зі спамом та налаштуйте DNS
Попросіть клієнта перевірити спам. Gmail особливо фільтрує транзакційні листи з IP-адрес спільного хостингу.
Якщо листи потрапляють у спам, додайте DNS-записи у вашого хостинг-провайдера або реєстратора домену:
- SPF: створіть TXT-запис зі значенням
v=spf1 include:_spf.google.com ~all(якщо використовуєте Gmail) абоv=spf1 include:sendinblue.com ~allдля Brevo. - DKIM: ваш поштовий провайдер (Brevo/Mailgun тощо) згенерує DNS-запис – скопіюйте його як TXT-запис.
- Переконайтеся, що адреса "Від" збігається з вашим доменом.
Крок 5: Перевірте послідовність статусів замовлення
WooCommerce надсилає листи лише при певних змінах статусу:
| Зміна статусу | Надісланий лист |
|---|---|
| Очікує → Обробляється | Клієнт: "Замовлення отримано" |
| Обробляється → Завершено | Клієнт: "Замовлення виконано" |
| Будь-який → Призупинено | Клієнт: "Замовлення призупинено" |
Якщо замовлення переходять одразу в "Завершено" (часто буває з цифровими товарами або деякими платіжними шлюзами) — лист "Обробляється" ніколи не надсилається.
Перевірте: WooCommerce → Замовлення — в якому статусі опиняються нові замовлення?
Крок 6: Перевірте конфлікти плагінів
Деякі плагіни втручаються у надсилання листів WooCommerce і випадково ламають його. Щоб перевірити:
- Вимкніть усі плагіни, крім WooCommerce
- Зробіть тестове замовлення
- Якщо лист прийшов → активуйте плагіни по одному, щоб знайти конфлікт
Крок 7: Перевірте журнал помилок
Додайте в wp-config.php:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
Зробіть тестове замовлення та перевірте wp-content/debug.log на наявність помилок, пов'язаних з поштою. Після діагностики обов'язково вимкніть відладку (закоментуйте рядки або видаліть).
Швидке виправлення
У 9 з 10 випадків: встановіть WP Mail SMTP, налаштуйте його з безкоштовним обліковим записом Brevo або Mailgun — і все готово. Займає близько 15 хвилин.
Якщо ви виконали всі кроки, але листи все ще не надсилаються, або ви не хочете робити це самостійно — ми в DevCev Digital можемо провести діагностику та налаштувати все за вас. Просто опишіть проблему тут: /free-diagnostic.