Системные письма WordPress — это письма, которые платформа отправляет автоматически, например, уведомления о новых комментариях, смене пароля, регистрации пользователей и другие. Иногда возникает необходимость отключить или изменить эти уведомления, чтобы уменьшить нагрузку на почтовый сервер, убрать лишний спам или адаптировать коммуникацию под собственный стиль. В этой статье рассмотрим, как именно можно отключать или удалять системные письма WordPress с помощью кода и плагинов.
Почему и когда нужно отключать системные письма WordPress
Часто владельцы сайтов сталкиваются с проблемой, когда WordPress отправляет слишком много различных уведомлений. Например, при активном комментарировании — на почту приходит огромное количество писем о новых комментариях. Или же сайт используется в закрытом режиме, и уведомления о регистрации пользователей не нужны. В таких случаях отключение ненужных писем помогает:
- Снизить нагрузку на почтовый сервер и избежать блокировок;
- Уменьшить количество спама и лишних писем в почтовом ящике администратора;
- Сделать коммуникацию с пользователями более целенаправленной и кастомной.
Далее рассмотрим, как отключать самые распространённые системные письма.
Отключение уведомлений о новых комментариях
WordPress по умолчанию отправляет два вида писем, связанных с комментариями: уведомления администратору о новых комментариях и уведомления автору записи о новых комментариях к его записи. Чтобы отключить их, достаточно добавить следующий код в файл functions.php вашей темы или в плагин для кастомных функций:
function 2wp_disable_comment_notifications() {
// Отключаем уведомления админу о новых комментариях
add_filter('notify_post_author', '__return_false');
add_filter('notify_moderator', '__return_false');
}
add_action('init', '2wp_disable_comment_notifications');Этот код применяет фильтры WordPress, которые возвращают false и тем самым предотвращают отправку писем.
Пояснения к коду
Фильтр notify_post_author отвечает за уведомления авторам записей, а notify_moderator — за уведомления администраторам и модераторам о новых комментариях, требующих модерации.
Отключение писем о смене пароля и восстановлении доступа
Иногда на порталах с большим количеством пользователей нежелательно получать уведомления о смене пароля. Для отключения этих писем можно использовать фильтр wp_mail и перехватывать письма по их теме.
function 2wp_disable_password_change_emails($args) {
if (isset($args['subject'])) {
$subjects_to_block = [
'Ваш пароль был изменён',
'Восстановление пароля'
];
foreach ($subjects_to_block as $block_subject) {
if (strpos($args['subject'], $block_subject) !== false) {
return false; // Отключаем отправку
}
}
}
return $args;
}
add_filter('wp_mail', '2wp_disable_password_change_emails');Этот способ более универсальный, он блокирует отправку писем с определёнными темами. Можно расширить список тем по необходимости.
Удаление всех системных писем WordPress
Если нужно полностью отключить все системные письма (например, на тестовом сайте), можно использовать следующий код:
function 2wp_disable_all_emails($send, $to, $subject, $message, $headers, $attachments) {
return false; // Всегда отменяем отправку
}
add_filter('wp_mail', '2wp_disable_all_emails', 10, 6);Этот фильтр перехватывает все вызовы функции wp_mail и отменяет отправку. Будьте осторожны: это отключит абсолютно все письма, включая важные уведомления.
Альтернативный подход — через плагин Clearfy Pro
Если вы хотите отключать системные письма без правки кода, можно использовать плагин Clearfy Pro. Он включает модуль управления всеми типами системных уведомлений WordPress, что позволяет легко включать и отключать письма через интерфейс без риска повредить сайт.
Создание кастомных фильтров для конкретных писем
Иногда требуется не просто отключить письма, а изменить их содержание или отправителя. Для этого можно использовать фильтр wp_mail и модифицировать параметры:
function 2wp_custom_mail_params($args) {
if (strpos($args['subject'], 'Регистрация') !== false) {
$args['headers'][] = 'From: Служба поддержки <support@example.com>';
$args['message'] .= "\n\nСпасибо, что зарегистрировались на нашем сайте!";
}
return $args;
}
add_filter('wp_mail', '2wp_custom_mail_params');Таким образом можно добавлять подписи, изменять заголовки и тело письма без изменения исходного кода WordPress.
Как отключать письма другим способом — пример на хуках
Некоторые системные письма WordPress формируются через конкретные функции и хуки. Например, уведомления о новой регистрации пользователей отправляются функцией wp_new_user_notification(). Чтобы отключить это уведомление, можно переопределить функцию или использовать фильтры:
remove_action('register_new_user', 'wp_send_new_user_notifications');Или создать свою функцию, которая не будет ничего отправлять, и подключить её на этот же хук.
Вывод
Отключение системных писем WordPress — частая задача для вебмастеров и разработчиков. Важно понимать, какие письма вы хотите отключить и почему. В статье приведены несколько практических решений с примерами кода, которые помогут быстро реализовать нужный функционал без ошибок. Для удобства и безопасности можно использовать и готовые решения, такие как Clearfy Pro, позволяющие управлять почтовыми уведомлениями через интерфейс.