Как отключить запрос отзывов после заказа в WooCommerce и убрать лишние письма

После обновлений WooCommerce многие замечают лишние письма покупателям: просьбы оставить отзыв, оценить заказ или вернуться в магазин. На небольшом магазине это выглядит как мелочь, но на практике такие уведомления быстро раздражают клиентов и мешают выстраивать нормальную post-purchase-коммуникацию. Если у вас уже настроены свои письма через CRM, рассылку или триггеры, штатные напоминания WooCommerce часто только дублируют сообщения.

Ниже разберём, как понять, откуда именно уходит запрос на отзыв, как отключить его без поломки остальных писем и как проверить, что WooCommerce больше не отправляет такие уведомления.

Диагностика: что именно нужно отключить

Сначала стоит понять, это штатная функция WooCommerce или письмо отправляет тема, плагин рассылок, сервис автоматизации или кастомный код. В админке это не всегда видно сразу: письмо может быть включено в настройках WooCommerce, а может приходить из другого источника по событию woocommerce_order_status_completed или через планировщик задач.

Проверьте стандартные настройки писем

Откройте WooCommerce → Настройки → Emails и посмотрите список уведомлений. Если у вас включены письма вроде Customer note, Completed order или письма от плагинов для отзывов, они могут использоваться как база для напоминаний после покупки. У WooCommerce нет отдельной универсальной галочки «отключить запрос отзывов» для всех сценариев, поэтому важно смотреть не только на список писем, но и на дополнительные расширения.

Проверьте плагины, которые могут отправлять запросы

  • плагины для отзывов и рейтингов товаров;
  • CRM и email-маркетинг интеграции;
  • автоматизации на основе заказов;
  • кастомные сниппеты в functions.php или mu-plugins;
  • шаблоны писем в теме, если они были доработаны вручную.

Если письмо приходит через SMTP-плагин, это не значит, что проблема в SMTP. SMTP только доставляет письмо, но не создаёт его. Источник нужно искать выше по цепочке.

Как отключить запрос отзывов штатно

Если напоминание связано с установленным плагином, самый безопасный путь — отключить его в настройках самого расширения. Это лучше, чем резать отправку на уровне WordPress, потому что вы не ломаете другие уведомления и не оставляете «мертвый» код в системе.

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

<?php
/**
 * Убирает действие, которое может запускать письмо после завершения заказа.
 * Добавляйте в небольшой кастомный плагин или mu-plugin, а не в тему.
 */
add_action( 'init', function () {
    // Пример: если сторонний код повесил отправку письма на завершение заказа,
    // его можно снять только при точном знании callback.
    // remove_action( 'woocommerce_order_status_completed', 'callback_function_name', 10 );
} );

Здесь важный момент: remove_action() работает только если вы знаете точное имя функции или метода, который подключён к хуку. Если это сторонний плагин, сначала найдите его callback в коде или документации. Иначе вы просто ничего не отключите.

Практическое решение через фильтр и собственную логику

Когда источник письма известен, но отключать весь модуль нельзя, лучше ограничить отправку по условию. Например, не слать запрос отзывов для определённых категорий товаров, для заказов с самовывозом или для тестовых заказов.

Ниже пример, как можно убрать отправку письма, если заказ помечен как тестовый через мета-поле. Это не универсальный хук «для отзывов», а рабочий паттерн для собственных уведомлений и интеграций.

<?php
add_filter( 'woocommerce_email_enabled_customer_completed_order', function( $enabled, $order ) {
    if ( ! $order instanceof WC_Order ) {
        return $enabled;
    }

    $is_test = $order->get_meta( '_is_test_order' );
    if ( $is_test ) {
        return false;
    }

    return $enabled;
}, 10, 2 );

Этот пример отключает стандартное письмо Completed order только для заказов с мета-полем _is_test_order. Если у вас запрос на отзыв завязан на другое письмо, принцип тот же: ищете конкретный фильтр или действие и ограничиваете его по условиям.

Если письмо отправляет сторонний плагин

У многих плагинов для отзывов есть собственные настройки задержки, триггера и исключений. Обычно там можно отключить отправку после завершения заказа, оставить только ручную отправку или ограничить письма по статусу заказа. Это предпочтительнее, чем пытаться «глушить» письмо через общие хуки WordPress.

ПодходКогда подходитМинус
Настройки плагинаЕсли письмо делает отдельное расширениеНужно искать конкретный модуль
remove_action / remove_filterЕсли известен callbackТребует точного имени функции или метода
Собственная логика через фильтрЕсли нужны исключения по заказамНужно тестировать на реальных статусах

Пошагово: как отключить лишние письма без побочных эффектов

  1. Сделайте резервную копию файлов и базы.
  2. Проверьте, какое именно письмо приходит: тема, отправитель, шаблон, время отправки.
  3. Отключите соответствующий модуль в настройках плагина, если письмо не штатное.
  4. Если письмо штатное, найдите хук или фильтр, который его включает.
  5. Добавьте отключение в mu-plugin или отдельный мини-плагин.
  6. Проверьте несколько сценариев: обычный заказ, тестовый заказ, заказ со сменой статуса.

Для небольших правок лучше использовать mu-plugin. Тогда код не исчезнет после смены темы и не потеряется при обновлении.

Как проверить, что решение сработало

Проверка должна быть не «письмо вроде не пришло», а воспроизводимая. Иначе через день вы снова поймаете дубли.

  • Сделайте тестовый заказ с реальным email, который вы контролируете.
  • Переведите заказ в тот статус, который раньше запускал письмо.
  • Проверьте очередь отправки, если у вас установлен плагин для отложенных писем.
  • Откройте логи SMTP или почтового плагина и убедитесь, что письмо не сформировано.
  • Проверьте, не остались ли напоминания в сторонней CRM.

Если письмо всё ещё уходит, значит вы отключили не тот источник. В этом случае смотрите заголовки письма, имя шаблона и список активных плагинов, которые работают с заказами.

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

Отключили не тот email-тип

Иногда пользователи отключают Completed order, а письмо с просьбой оставить отзыв приходит из другого модуля. Решение простое: сравните тему письма и настройки всех плагинов, связанных с отзывами и автоматизацией.

Добавили код в тему, а потом потеряли его после обновления

Если правка нужна надолго, не кладите её в functions.php активной темы. Используйте мини-плагин или mu-plugin. Это особенно важно на магазинах, где тема обновляется регулярно.

Сняли хук без точного callback

remove_action() не работает «по названию письма». Нужна точная функция, метод класса и при необходимости тот же приоритет. Без этого отключение просто не сработает.

Проверили только один сценарий заказа

Например, тестировали только оплату картой, а письмо уходит после ручного перевода в completed. Проверяйте все реальные статусы, которые используются в магазине.

Безопасность и производительность

Если вы правите уведомления кодом, не делайте это через случайные сниппеты из интернета без проверки на конкретной версии WooCommerce. Лучше ограничиться минимальным куском кода и хранить его отдельно от темы. Для магазинов с большим количеством заказов это ещё и вопрос стабильности: лишние письма могут создавать нагрузку на почтовую очередь и усложнять поддержку.

Если у вас уже стоит набор утилит для чистки и контроля дублей, можно посмотреть в сторону Clearfy Pro, но только если он реально закрывает вашу задачу по отключению лишних уведомлений и не дублирует то, что уже делает ваш стек.

Для магазинов с активной email-автоматизацией полезно держать отдельный список того, какие письма отправляет WooCommerce, какие — CRM, а какие — сторонний плагин отзывов. Это экономит время при разборе инцидентов и помогает не отключить лишнее.

Если хочется быстро понять, какой модуль отвечает за письмо, удобнее всего временно отключать подозрительные плагины по одному на staging-копии и смотреть, исчезает ли триггер. На боевом сайте так делать не стоит.

Как удалить вредоносные скрипты с сайта WordPress: эффективные методы и инструменты
08.12.2025
Как использовать фильтр pre_get_posts для правильной работы пагинации на страницах архива в WordPress
18.05.2026
Как закрыть от индексации страницы автора и архивы в WordPress
25.08.2026
Как добавить автоматическое обновление цен в WooCommerce при изменении атрибутов
24.04.2026
Как создать автозаполняемый формат даты в WordPress
11.12.2025