Автоматические email-подписки — это удобный инструмент для поддержания связи с пользователями сайта. Однако иногда возникает необходимость удалить или отключить автоматические подписки, чтобы избежать спама или нежелательных уведомлений. В этой статье рассмотрим, как в WordPress удалить автоматические подписки email, используя как готовые плагины, так и собственные решения с кодом.
Причины удаления автоматических подписок email в WordPress
Автоматические подписки могут накапливаться в базе данных и приводить к ряду проблем:
- Пользователи получают слишком много писем и начинают игнорировать или отписываться.
- Нагрузка на сервер возрастает из-за массовой рассылки.
- Некорректные или устаревшие подписки приводят к ошибкам и возвратам писем.
Удаление ненужных или автоматических подписок помогает повысить качество рассылок и улучшить репутацию домена.
Как определить автоматические подписки в WordPress
В WordPress автоматические подписки чаще всего реализованы через:
- Плагины для рассылок (например, MailPoet, Newsletter, Mailster).
- Подписки на комментарии (подписка на ответы в комментариях).
- Пользовательские функции, которые добавляют пользователей в рассылку автоматически.
Первый шаг — определить источник автоматических подписок. Для этого:
- Проверьте установленные плагины для рассылок и их настройки.
- Посмотрите в базе данных таблицы, связанные с подписками.
- Проанализируйте код темы и плагинов на наличие функций, добавляющих подписчиков.
Удаление подписок комментариев с помощью кода
WordPress по умолчанию не имеет включённой подписки на комментарии, но многие сайты используют плагины для этой цели, например, Clearfy Pro позволяет управлять подписками и отключать автоматические уведомления.
Если же вы хотите программно отключить автоматическую подписку на комментарии, можно добавить следующий код в файл functions.php вашей темы или в кастомный плагин:
function wpcorp_disable_comment_subscription() {
remove_action('comment_post', 'wp_notify_postauthor');
remove_action('comment_post', 'wp_notify_moderator');
}
add_action('init', 'wpcorp_disable_comment_subscription');Этот код отключит уведомления автору поста и модератору при новом комментарии, что часто используется как автоматическая подписка.
Удаление подписчиков из базы данных плагинов рассылок
Для популярных плагинов рассылок можно удалить подписчиков через их API или базу данных. Рассмотрим пример для MailPoet:
- Подключитесь к базе данных через phpMyAdmin.
- Найдите таблицу
wp_mailpoet_subscribers. - Выполните SQL-запрос для удаления автоматических подписчиков, например, по email или дате добавления.
Пример SQL-запроса для удаления подписчиков с email, заканчивающимся на @example.com:
DELETE FROM wp_mailpoet_subscribers WHERE email LIKE '%@example.com';Для автоматизации процесса можно написать скрипт на PHP с использованием встроенного API MailPoet:
function wpcorp_delete_mailpoet_subscribers_by_domain($domain) {
if (!class_exists('\MailPoet\API\API')) {
return false;
}
$api = \MailPoet\API\API::MP('v1');
$subscribers = $api->getSubscribers(['email' => '%' . $domain], ['limit' => 1000]);
foreach ($subscribers as $subscriber) {
$api->deleteSubscriber($subscriber->id);
}
return true;
}Использование плагинов для удаления и управления подписками
Если вы не хотите погружаться в код, можно использовать специализированные плагины:
- Clearfy Pro — позволяет отключать автоматические подписки, управлять уведомлениями и оптимизировать рассылки.
- Subscribe2 — плагин с расширенными настройками подписок и возможностью массового удаления подписчиков.
- Unsubscribe Manager — удобный инструмент для управления массовым отписыванием.
Интеграция с WPShop
Если вы используете темы Reboot или Root, они хорошо совместимы с плагинами управления подписками, что позволяет легко контролировать рассылки без конфликта и излишних уведомлений.
Как предотвратить автоматическую подписку новых пользователей
Многие сайты автоматически подписывают новых зарегистрированных пользователей на рассылку. Чтобы отключить эту функцию, добавьте следующий код:
function wpcorp_disable_auto_subscribe($user_id) {
if (class_exists('\MailPoet\API\API')) {
$api = \MailPoet\API\API::MP('v1');
$subscriber = $api->getSubscriber(['user_id' => $user_id]);
if ($subscriber) {
$api->deleteSubscriber($subscriber->id);
}
}
}
add_action('user_register', 'wpcorp_disable_auto_subscribe');Этот код удалит подписку, если она была автоматически создана при регистрации пользователя.
Советы по безопасности и оптимизации
Удаление подписок — это важная операция, которая может повлиять на репутацию вашего домена и доставляемость писем. Рекомендуется:
- Всегда делать резервные копии базы данных перед массовым удалением.
- Тестировать изменения на тестовом сайте или локальной копии.
- Использовать SMTP-плагины (например, WP SMTP) для контроля отправки писем.
- Мониторить логи и статистику рассылок после изменений.
Заключение
Удаление автоматических подписок email в WordPress требует понимания источника подписок и правильного подхода к их удалению. Используйте готовые плагины для управления подписками, а при необходимости дополняйте функционал собственным кодом. Комбинация этих методов позволит эффективно контролировать email-рассылки, улучшать взаимодействие с пользователями и снижать нагрузку на сервер.