В процессе работы с WordPress нередко возникает необходимость отключить автоматическую отправку email уведомлений, которые по умолчанию рассылает система. Это может быть полезно, например, если вы хотите временно прекратить уведомления о новых комментариях, регистрациях пользователей или изменениях паролей, но при этом не хотите устанавливать дополнительные плагины, чтобы не нагружать сайт.
Почему стоит отключать email уведомления вручную, а не через плагины
Многие разработчики предпочитают минимизировать количество установленных плагинов, чтобы избежать конфликтов, замедления сайта и проблем с безопасностью. Кроме того, плагины могут предлагать слишком много функций, когда вам нужна только базовая возможность отключения почты. В таких случаях гораздо удобнее реализовать отключение уведомлений напрямую через код в functions.php вашей темы или в отдельном плагине.
Это даёт полный контроль над процессом и позволяет гибко отключать именно те уведомления, которые вам не нужны.
Основные типы email уведомлений в WordPress и способы их отключения
WordPress по умолчанию отправляет такие уведомления:
- Уведомления о новых комментариях
- Уведомления о регистрации новых пользователей
- Уведомления о смене пароля
- Уведомления администраторам о обновлениях
Для отключения каждого из этих типов можно использовать свои фильтры и хуки.
Отключение уведомлений о новых комментариях
Чтобы отключить уведомления, которые приходят администратору при появлении нового комментария, можно использовать фильтр wp_mail или более специфичные хуки. Один из простых методов — переопределить функцию отправки письма, если тема письма содержит определённые ключевые слова.
add_filter('wp_mail', 'wpcourse_disable_comment_notifications');
function wpcourse_disable_comment_notifications($args) {
if (strpos($args['subject'], 'Новый комментарий') !== false) {
// Возвращаем false, чтобы email не отправлялся
return false;
}
return $args;
}Однако такой способ не самый надёжный. Лучше использовать хук notify_post_author и notify_moderator, которые контролируют отправку уведомлений о комментариях:
remove_action('comment_post', 'wp_notify_postauthor', 10, 2);
remove_action('comment_moderation', 'wp_notify_moderator');Этот код отключит уведомления администратора и автора записи о новых комментариях.
Отключение уведомлений о регистрации новых пользователей
По умолчанию WordPress отправляет два письма при регистрации нового пользователя: одно — пользователю, другое — администратору. Чтобы отключить уведомления админу, используйте фильтр send_new_user_notifications_email:
add_filter('send_new_user_notifications_email', 'wpcourse_disable_admin_registration_email', 10, 3);
function wpcourse_disable_admin_registration_email($send, $user, $blogname) {
return false; // Отключаем уведомления админу
}Если нужно отключить письмо пользователю, его тоже можно перехватить, но это требует более сложных изменений.
Отключение уведомлений о смене пароля
WordPress отправляет уведомление пользователю при смене пароля с помощью функции wp_password_change_notification(). Чтобы отключить это уведомление, можно переопределить функцию:
if (!function_exists('wp_password_change_notification')) {
function wp_password_change_notification($user) {
// Пустая функция, чтобы отключить уведомление
}
}Этот трюк убирает отправку уведомления о смене пароля.
Универсальное отключение всех исходящих email в WordPress
Если необходимо полностью отключить отправку email с сайта (например, на тестовом сервере), можно использовать фильтр wp_mail и возвращать false:
add_filter('wp_mail', 'wpcourse_disable_all_emails');
function wpcourse_disable_all_emails($args) {
return false;
}Но будьте осторожны: это заблокирует все почтовые уведомления, включая важные.
Пример создания мини-плагина для отключения уведомлений
Лучше всего вынести код в отдельный мини-плагин, чтобы не потерять изменения при обновлении темы. Создайте файл disable-emails-wpcourse.php с таким содержимым:
<?php
/**
* Plugin Name: Disable Emails WPCourse
* Description: Отключение стандартных email уведомлений WordPress
* Version: 1.0
* Author: WPCourse
*/
// Отключаем уведомления о новых комментариях
remove_action('comment_post', 'wp_notify_postauthor', 10, 2);
remove_action('comment_moderation', 'wp_notify_moderator');
// Отключаем уведомления админу при регистрации новых пользователей
add_filter('send_new_user_notifications_email', '__return_false');
// Отключаем уведомления о смене пароля
if (!function_exists('wp_password_change_notification')) {
function wp_password_change_notification($user) {
// Не отправляем уведомление
}
}
Активируйте этот плагин через админку WordPress, и нужные уведомления перестанут приходить.
Советы по контролю отправки email в WordPress
Для более гибкого управления уведомлениями можно использовать плагины, например, Clearfy Pro, который позволяет легко отключать ненужные уведомления и оптимизировать сайт.
Также полезно настроить SMTP-сервер для корректной отправки важных писем, чтобы исключить попадание в спам.
В итоге, отключение email уведомлений вручную через код — это простой и надёжный способ контролировать почтовую активность вашего сайта, без лишних плагинов.