В процессе эксплуатации WordPress сайта часто возникает необходимость отключить или кастомизировать системные email-уведомления. Это может быть связано с избыточным количеством писем, спамом в почте или же желанием интегрировать собственную систему уведомлений. В данной статье подробно разберём, как отключить различные системные email-уведомления WordPress без использования плагинов, используя только код.
Почему важно управлять системными email-уведомлениями WordPress
По умолчанию WordPress отправляет множество уведомлений: о регистрации новых пользователей, изменении паролей, восстановлении доступа, комментариях и других событиях. В некоторых случаях эти письма мешают, создают нагрузку на почтовый ящик или вызывают путаницу у администратора и пользователей.
Использование встроенных хуков и фильтров WordPress позволяет тонко настроить или полностью отключить ненужные уведомления без установки дополнительных плагинов, что снижает нагрузку на сайт и повышает безопасность.
Основные системные email-уведомления WordPress и способы их отключения
Отключение email о новых регистрациях пользователей
По умолчанию WordPress отправляет письмо админу о регистрации нового пользователя. Для отключения этого уведомления можно использовать фильтр wp_new_user_notification_email_admin, возвращая пустое значение.
function wpset_disable_new_user_notification_admin( $wp_new_user_notification_email_admin, $user, $blogname ) {
return false; // Отключаем письмо админу
}
add_filter( 'wp_new_user_notification_email_admin', 'wpset_disable_new_user_notification_admin', 10, 3 );Однако в более новых версиях WordPress возможны изменения, поэтому можно полностью отключить функцию уведомления с помощью удаления действия:
remove_action( 'register_new_user', 'wp_send_new_user_notifications' );Если нужно отключить уведомление самому пользователю о регистрации, можно использовать аналогичный фильтр:
function wpset_disable_new_user_notification_user( $wp_new_user_notification_email, $user, $blogname ) {
return false; // Отключаем письмо пользователю
}
add_filter( 'wp_new_user_notification_email', 'wpset_disable_new_user_notification_user', 10, 3 );Отключение email о смене пароля и восстановлении доступа
WordPress отправляет уведомления при смене пароля или запросе восстановления. Чтобы отключить такие письма, нужно перехватить соответствующие функции, например retrieve_password и password_change_email.
add_filter( 'send_password_change_email', '__return_false' );
add_filter( 'send_email_change_email', '__return_false' );Это отключит уведомления пользователям о смене пароля и email.
Отключение уведомлений о новых комментариях
Если вам не нужны email-уведомления о новых комментариях, можно отключить их с помощью фильтров:
add_filter( 'notify_post_author', '__return_false' );
add_filter( 'notify_moderator', '__return_false' );Первый фильтр отключает отправку писем автору записи, второй — модератору о новых комментариях, ожидающих модерации.
Пример комплексного решения для отключения всех системных email уведомлений
Ниже пример кода, который можно добавить в файл functions.php вашей темы или в отдельный mu-plugin, чтобы полностью отключить системные email уведомления WordPress:
function wpset_disable_all_wp_emails() {
// Отключаем уведомления о новых пользователях
remove_action( 'register_new_user', 'wp_send_new_user_notifications' );
// Отключаем уведомления о смене пароля
add_filter( 'send_password_change_email', '__return_false' );
add_filter( 'send_email_change_email', '__return_false' );
// Отключаем уведомления о новых комментариях
add_filter( 'notify_post_author', '__return_false' );
add_filter( 'notify_moderator', '__return_false' );
}
add_action( 'init', 'wpset_disable_all_wp_emails' );Этот код отключит большинство стандартных системных уведомлений, не влияя на другие функции сайта.
Как кастомизировать email уведомления вместо полного отключения
Если полное отключение не нужно, а требуется изменить содержание писем, используйте фильтры, которые возвращают содержимое письма. Например, изменить тему письма о новой регистрации пользователя:
function wpset_custom_new_user_email_subject( $subject, $user, $blogname ) {
return 'Добро пожаловать на сайт ' . $blogname . ', ' . $user->user_login;
}
add_filter( 'wp_new_user_notification_email_subject', 'wpset_custom_new_user_email_subject', 10, 3 );Также можно менять тело письма, добавлять ссылки, инструкции или другую полезную информацию.
Плагины для управления email уведомлениями в WordPress
Если вы предпочитаете использовать готовые решения, обратите внимание на плагины:
- Disable Emails — полностью отключает все отправляемые письма WordPress.
- WP Mail SMTP — позволяет настраивать SMTP и некоторые параметры писем.
- Email Control — настраивает, какие уведомления отправлять.
Для интеграции с вашими плагинами, например, WPGPT или Expert Review, настройка уведомлений в коде поможет избежать конфликтов и избыточной почтовой нагрузки.
Итог
Управление системными email уведомлениями WordPress — важная задача для любого сайта. Используя описанные методы и фильтры, можно легко отключать ненужные письма или кастомизировать их под свои нужды без установки дополнительных плагинов, что положительно сказывается на производительности и безопасности сайта.