Автоматические письма от WordPress и подключенных плагинов — удобный способ информировать пользователей, администраторов и редакторов сайта о важных событиях. Но иногда эти уведомления превращаются в спам: например, из-за множества подписок на комментарии, обновления или действия плагинов. В этой статье подробно рассмотрим, как управлять и отключать автоматические подписки на письмах в WordPress, чтобы избавить себя и пользователей от лишнего потока писем.
Что такое автоматические подписки на письмах в WordPress
Под автоматическими подписками понимаются оповещения, которые WordPress отправляет по умолчанию или которые подключаются плагинами, без явного запроса пользователя. Это могут быть уведомления о новых комментариях, ответах, обновлениях, регистрации, смене пароля и т.д.
Например, подписка на комментарии — один из самых распространенных случаев: пользователь, оставивший комментарий, автоматически подписывается на уведомления о новых ответах к этому комментарию.
Но иногда эти подписки накапливаются и создают высокую нагрузку на почтовый сервер, а также раздражают получателей.
Почему важно контролировать автоматические подписки и отключать их
Если не управлять подписками, можно столкнуться с такими проблемами:
- Пользователи получают слишком много писем и игнорируют важные уведомления.
- Почтовый сервер сайта может попасть под ограничения из-за массовой рассылки писем.
- Повышается риск попадания писем в спам-фильтры.
- Ресурсы сервера расходуются неэффективно из-за отправки ненужных писем.
Поэтому разработчикам и администраторам сайтов важно знать, как отключать и настраивать эти автоматические письма.
Как отключить автоматические подписки на комментарии в WordPress
По умолчанию WordPress автоматически подписывает авторов комментариев на уведомления о новых ответах.
Чтобы полностью отключить эту функцию, можно использовать фильтр wp_email_subscriptions, но он не стандартный. Более универсальный способ — отключить соответствующий функционал через плагин или написать код, который удалит подписки.
Например, добавьте в файл functions.php вашей темы или в собственный плагин следующий код:
function wppuzzle_disable_comment_subscriptions() {
remove_action('comment_post', 'wp_notify_postauthor');
remove_action('comment_post', 'wp_notify_moderator');
}
add_action('init', 'wppuzzle_disable_comment_subscriptions');
Этот код отключит уведомления автору записи и модератору о новых комментариях, что уменьшит количество писем.
Если нужно отключить именно подписки на ответы (например, через плагин Subscribe To Comments Reloaded), то в настройках плагина снимите галочку «Автоматическая подписка» или используйте следующий код для удаления подписок конкретного пользователя:
function wppuzzle_unsubscribe_all_comments($user_id) {
global $wpdb;
$table = $wpdb->prefix . 'comment_subscriptions';
$wpdb->delete($table, array('user_id' => $user_id));
}
Отключение уведомлений плагинов и системных писем WordPress
Многие плагины по умолчанию отправляют уведомления — обновления, оповещения о новых заказах, регистрации, смене пароля и пр. Чтобы отключить или настроить эти письма, возможны несколько вариантов:
- Использовать настройки самого плагина — часто там есть опция "отключить уведомления".
- Использовать плагин Clearfy Pro, который умеет отключать лишние уведомления одним кликом.
- Добавить фильтры в functions.php, которые будут блокировать отправку писем.
Например, чтобы отключить все системные письма от WordPress, кроме важных, можно использовать фильтр wp_mail:
function wppuzzle_filter_wp_mail( $args ) {
// Пример: отключить письма с темой "Обновление плагина"
if ( strpos( $args['subject'], 'Обновление плагина' ) !== false ) {
return false; // не отправлять письмо
}
return $args;
}
add_filter( 'wp_mail', 'wppuzzle_filter_wp_mail' );
Как отследить, какие письма отправляются и кто их вызывает
Для начала нужно понять, какие плагины или части WordPress вызывают нежелательные подписки и уведомления. Для этого полезно использовать отладочные инструменты и плагины:
- WP Mail Logging — плагин для логирования всех отправляемых писем. Позволяет увидеть тему, содержимое и источник письма.
- Query Monitor — покажет хуки и действия, которые вызываются при отправке почты.
- Добавление собственного логирования в фильтр
wp_mail:
function wppuzzle_log_wp_mail( $args ) {
error_log( 'Отправка письма: ' . print_r( $args, true ) );
return $args;
}
add_filter( 'wp_mail', 'wppuzzle_log_wp_mail' );
Это позволит выявить, откуда идут нежелательные письма, и принять меры.
Пример: создание плагина для отключения подписок на комментарии и уведомлений от плагина
Ниже пример минимального плагина, который отключает авто-подписки на комментарии и блокирует уведомления от плагина Subscribe To Comments Reloaded:
<?php
/*
Plugin Name: WPpuzzle Comment Notifications Control
Description: Отключает автоматические подписки и уведомления на комментарии.
Version: 1.0
Author: WPpuzzle
*/
function wppuzzle_disable_comment_notifications() {
remove_action('comment_post', 'wp_notify_postauthor');
remove_action('comment_post', 'wp_notify_moderator');
}
add_action('init', 'wppuzzle_disable_comment_notifications');
function wppuzzle_disable_stc_notifications( $send, $comment, $user_id ) {
// Возвращаем false, чтобы не отправлять уведомления Subscribe To Comments Reloaded
return false;
}
add_filter( 'stc_send_subscribe_email', 'wppuzzle_disable_stc_notifications', 10, 3 );
?>
Установите и активируйте этот плагин, чтобы быстро решить проблему с подписками и уведомлениями.
Заключение: рекомендации по управлению почтовыми подписками в WordPress
Управление автоматическими подписками на письмах — важная часть поддержки и оптимизации сайта на WordPress. Чтобы не превращать уведомления в спам, выполняйте следующие шаги:
- Регулярно проверяйте, какие письма отправляются, используя логирование.
- Отключайте ненужные подписки через код или настройки плагинов.
- Используйте специализированные плагины, например, Clearfy Pro, для комплексного управления уведомлениями.
- Тестируйте изменения на тестовом сайте, чтобы не потерять важные уведомления.
Так вы сохраните комфорт для пользователей и стабильность работы почтовой системы сайта.