Если после каждого заказа покупателю уходит письмо с просьбой оставить отзыв, это быстро начинает мешать: особенно когда у магазина уже есть отдельная CRM-цепочка, собственный сервис рассылок или ручная работа с постпродажной коммуникацией. В WooCommerce такой запрос может появляться из темы, плагина для email-автоматизации или из кастомного кода. Поэтому сначала важно понять, кто именно отправляет письмо, а уже потом отключать его точечно.
Ниже разберём рабочие способы: от проверки настроек до отключения через код. Подходы подойдут, если нужно убрать именно запрос отзыва после покупки, а не ломать остальные письма WooCommerce.
Когда проблема действительно в WooCommerce, а когда — в плагине
В стандартном WooCommerce нет универсального письма «оставьте отзыв после покупки» как обязательной системной функции. Обычно запрос появляется из одного из трёх источников:
- плагин автоматических писем или маркетинговых цепочек;
- кастомный код в теме или в mu-plugins;
- расширение, которое добавляет follow-up email после смены статуса заказа.
Если письмо приходит через несколько дней после доставки, а не сразу после оформления заказа, почти наверняка это не базовый WooCommerce, а отдельная автоматизация.
Диагностика: где искать источник письма
Проверьте сначала админку и файлы сайта. Это быстрее, чем сразу править код.
- Откройте WooCommerce → Настройки → Emails и посмотрите, нет ли включённого шаблона с отзывами или follow-up.
- Проверьте список активных плагинов: рассылки, CRM, маркетинг, abandoned cart, post-purchase automation.
- Если есть доступ к файлам, поищите по проекту строки
review,feedback,thank you email,customer_completed_order,woocommerce_order_status_completed. - Посмотрите, не добавлен ли код в
functions.php, плагин для сниппетов или mu-plugin.
Если письмо отправляется только на одном сайте из нескольких, сравните активные плагины и тему. На практике источник почти всегда находится там.
Как отключить запрос отзыва без поломки остальных писем
Лучший вариант — убрать только конкретную автоматизацию, а не отключать всю почтовую систему. Ниже три сценария: через настройки, через удаление хука и через фильтр, если письмо добавлено кодом.
1. Отключение в настройках плагина
Если запрос отзыва создаёт плагин, ищите в его настройках переключатели вроде Review request, Post-purchase email, Customer follow-up, Ask for review. Названия у разных решений отличаются, но логика одна: отключить именно цепочку после покупки.
Если плагин нужен для других писем, не удаляйте его сразу. Сначала выключите только один сценарий и проверьте, не исчезли ли важные уведомления.
2. Удаление действия, если письмо добавлено через хук
Когда письмо подключено через action hook, его можно отключить точечно. Пример ниже показывает типовой подход: сначала ищем, какой callback был добавлен, потом удаляем его тем же приоритетом.
// Пример: отключаем кастомный follow-up email после завершения заказа.
// Важно: имя функции и хук должны совпадать с тем, что реально используется в проекте.
add_action( 'init', function () {
remove_action( 'woocommerce_order_status_completed', 'mytheme_send_review_request_email', 10 );
} );Если callback зарегистрирован не на woocommerce_order_status_completed, а на другом событии, например на woocommerce_thankyou или woocommerce_payment_complete, удалять нужно именно его. Иначе код ничего не изменит.
3. Отключение через фильтр, если письмо формируется плагином
Некоторые плагины дают фильтр для выключения отправки. Если он есть в документации, используйте его вместо грубого удаления файлов. Пример ниже — безопасный шаблон, который часто применяют в кастомных решениях:
add_filter( 'myplugin_send_review_request', function( $send, $order_id ) {
return false;
}, 10, 2 );Здесь важно не выдумывать имя фильтра. Если в вашем плагине нет такого хука, этот код не поможет. Сначала проверьте документацию или исходники.
Сравнение подходов: что выбрать в реальном проекте
| Способ | Когда подходит | Плюс | Минус |
|---|---|---|---|
| Настройки плагина | Запрос делает готовое расширение | Без кода, быстро | Не всегда очевидно, где именно выключать |
| remove_action() | Запрос добавлен через тему или сниппет | Точечное отключение | Нужно знать точный хук и callback |
| Фильтр | Плагин поддерживает управление через hooks | Чистое решение | Зависит от конкретного плагина |
Пошаговое решение, если письмо приходит после завершения заказа
Если вы не нашли явный переключатель в админке, действуйте по этой схеме.
- Создайте резервную копию файлов и базы.
- Временно отключите плагины рассылок и автоматизаций, кроме WooCommerce.
- Сделайте тестовый заказ и проверьте, приходит ли письмо.
- Если письмо исчезло — включайте плагины по одному, пока не найдёте источник.
- Когда источник найден, отключите только сценарий запроса отзыва или удалите его хук.
Если письмо осталось даже без сторонних плагинов, проверьте тему и mu-plugins. Именно там часто лежат старые сниппеты, которые забыли после внедрения.
Как проверить, что решение сработало
Проверка должна быть не по ощущениям, а по факту отправки письма.
- Сделайте тестовый заказ с реальной почтой, которую вы контролируете.
- Доведите заказ до того статуса, на котором раньше срабатывал запрос отзыва.
- Проверьте очередь писем, если на сайте используется SMTP-плагин или внешний сервис.
- Убедитесь, что не отключились другие письма WooCommerce: подтверждение заказа, смена статуса, возврат средств.
Если у вас подключён лог почты, это самый удобный способ проверки. По нему видно, отправлялось ли письмо системой вообще, или оно просто не дошло до ящика.
Частые ошибки и как их исправить
Отключили не тот хук
Самая частая ошибка — удалить действие с woocommerce_thankyou, хотя письмо висит на woocommerce_order_status_completed. В результате ничего не меняется. Решение простое: сначала найдите точку подключения, потом удаляйте её.
Сломали все письма WooCommerce
Иногда вместо точечного отключения выключают SMTP-плагин, почтовый модуль или весь плагин автоматизации. Тогда пропадают и нужные уведомления. Исправление: верните плагин, а отключайте только один сценарий или один callback.
Код добавили не туда
Если сниппет положили в файл темы, а потом тема обновилась, изменение исчезнет. Для таких правок лучше использовать дочернюю тему, mu-plugin или отдельный мини-плагин.
Не учли кэш и отложенную отправку
Если письмо уходит через очередь, после правки может остаться уже запланированная отправка. Очистите очередь в почтовом плагине и повторите тестовый заказ.
Безопасность и производительность: что не стоит делать
Не отключайте почту WooCommerce целиком ради одного письма. Это создаёт больше проблем, чем решает. Если нужен только отказ от запроса отзыва, убирайте именно его.
Не редактируйте ядро плагина: обновление всё перезапишет. Для кастомных правок используйте:
- дочернюю тему;
- mu-plugin;
- отдельный плагин для сниппетов, если он уже есть в проекте.
Если в магазине много автоматизаций, полезно держать список всех почтовых сценариев в одном месте. Это упрощает поддержку и снижает риск случайно отключить важное письмо при очередном обновлении.
Если нужен более чистый набор уведомлений
Когда в магазине накопилось слишком много лишних писем, имеет смысл не только отключить запрос отзыва, но и пересмотреть остальные уведомления. Для этого удобно использовать плагин вроде Clearfy Pro, если в проекте уже нужен инструмент для чистки лишних сущностей и упрощения админки: https://wpshop.ru/plugins/clearfy. Но это не замена точечной диагностике: сначала найдите источник письма, потом уже решайте, нужен ли дополнительный инструмент.
Если после всех проверок запрос отзыва всё ещё приходит, значит он сидит не в WooCommerce, а в отдельной автоматизации. В таком случае быстрее всего помогает поиск по хукам и временное отключение плагинов по одному. Это скучно, но в реальном проекте обычно работает лучше, чем попытка угадать настройку по названию.