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

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

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

Когда письмо о новом заказе лучше отключить

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

Если письмо отключают на боевом сайте, обычно это делают не «навсегда», а точечно: для конкретного окружения, для определённого статуса заказа или на время интеграции. Это важный момент, потому что полное отключение уведомлений без альтернативного канала легко пропустить реальные заказы.

Диагностика: откуда именно приходит письмо

Перед правкой кода стоит убедиться, что письмо отправляет именно WooCommerce, а не плагин доставки, CRM или SMTP-расширение. Иначе вы отключите не тот источник и будете искать проблему не там.

Что проверить в админке

  • Откройте WooCommerce → Настройки → Письма.
  • Найдите письмо «Новый заказ» или New order.
  • Посмотрите, включено ли оно и какой адрес получателя указан.
  • Проверьте, не дублируется ли уведомление в плагинах для интеграций: CRM, email-рассылки, webhook-автоматизация.

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

Способ 1: отключить письмо через настройки WooCommerce

Самый безопасный вариант — использовать встроенные настройки. Это не требует кода и не сломается после обновления темы.

  1. Перейдите в WooCommerce → Настройки → Письма.
  2. Откройте уведомление Новый заказ.
  3. Снимите галочку Включить это уведомление по электронной почте.
  4. Сохраните изменения.

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

Способ 2: отключить письмо кодом через фильтр WooCommerce

У WooCommerce есть фильтр woocommerce_email_enabled_new_order. Он позволяет вернуть false и тем самым отключить отправку письма о новом заказе. Это удобнее, чем править ядро или переопределять шаблоны.

<?php
add_filter( 'woocommerce_email_enabled_new_order', 'twp_disable_new_order_email', 10, 2 );

function twp_disable_new_order_email( $enabled, $order ) {
    // Отключаем письмо администратора о новом заказе всегда.
    return false;
}

Такой код можно добавить в functions.php дочерней темы, но на практике надёжнее вынести его в небольшой mu-plugin, чтобы он не зависел от темы.

Вариант для staging или тестового домена

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

<?php
add_filter( 'woocommerce_email_enabled_new_order', 'twp_disable_new_order_email_on_staging', 10, 2 );

function twp_disable_new_order_email_on_staging( $enabled, $order ) {
    $host = wp_parse_url( home_url(), PHP_URL_HOST );

    if ( $host && str_contains( $host, 'staging' ) ) {
        return false;
    }

    return $enabled;
}

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

Сравнение подходов

СпособКогда использоватьПлюсыМинусы
Настройки WooCommerceНужно отключить письмо полностьюБез кода, быстро, безопасноНе подходит для условий по окружению
Фильтр woocommerce_email_enabled_new_orderНужно гибко управлять отправкойМожно отключать выборочноНужен код и контроль деплоя
Сторонний SMTP/CRM-плагинПисьма уже перехватываются внешним сервисомУдобно для интеграцийМожно получить дубли или конфликт логики

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

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

  • Сделайте тестовый заказ на сайте.
  • Проверьте, что письмо «Новый заказ» не пришло на адрес администратора.
  • Откройте WooCommerce → Статус → Журналы, если у вас включено логирование почты или интеграции.
  • Проверьте другие уведомления: письмо клиенту о заказе, письмо о смене статуса, уведомления об оплате должны остаться на месте.
  • Если стоит SMTP-плагин, посмотрите его журнал отправки, чтобы убедиться, что письмо не ушло в очередь.

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

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

Код добавили не туда

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

Отключили не то письмо

В WooCommerce есть несколько email-уведомлений. Фильтр woocommerce_email_enabled_new_order относится именно к письму администратора о новом заказе. Если нужно отключить письмо клиенту, нужен другой фильтр.

Письмо продолжает приходить из-за стороннего плагина

Некоторые плагины отправляют свои уведомления независимо от WooCommerce. В этом случае выключение стандартного email ничего не изменит. Смотрите настройки интеграции и журнал отправки.

Сломали уведомления на боевом сайте

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

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

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

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

Перед деплоем проверьте, что у магазина остаётся хотя бы один надёжный канал уведомлений о заказах: email, CRM, мессенджер или webhook. Отключать письмо «Новый заказ» без замены — плохая практика для боевого магазина.

Если нужно отключать письмо не всегда, а по условию

Иногда задача формулируется точнее: не отправлять уведомление для заказов из определённой страны, для тестового способа оплаты или при статусе pending. Тогда фильтр можно расширить, но делать это стоит аккуратно и только после проверки бизнес-логики.

<?php
add_filter( 'woocommerce_email_enabled_new_order', 'twp_disable_new_order_email_by_status', 10, 2 );

function twp_disable_new_order_email_by_status( $enabled, $order ) {
    if ( ! $order instanceof WC_Order ) {
        return $enabled;
    }

    if ( $order->get_status() === 'pending' ) {
        return false;
    }

    return $enabled;
}

Такой вариант уже требует понимания, какие статусы используются в вашем магазине и не ломает ли это внутренние процессы обработки заказов.

Как удалить кэш в WordPress: практическое руководство
21.11.2025
Автоматическое отключение пингов и пингбэков в WordPress: практическое руководство
31.12.2025
Как использовать Advanced Custom Fields для создания комплексных форм в WordPress
21.02.2026
Как добавить дополнительные типы пользователей в WordPress и управлять их правами
11.03.2026
Как автоматически удалять неоплаченные заказы через заданное время
01.07.2026
×

Время действовать!

Суперцены на
WordPress!

-20%
на премиум темы

Не упусти шанс ⋙