Если у вас на сайте WordPress реализована подписка на рассылки или уведомления, рано или поздно возникает необходимость автоматически отключать подписки для определённых пользователей или по конкретным условиям. В этой статье мы рассмотрим, как реализовать такую функциональность с помощью кода и популярных плагинов, а также дадим примеры для интеграции в ваш проект.
Почему важно автоматическое отключение подписок
Автоматизация отключения подписок помогает снизить нагрузку на почтовые сервисы, улучшить репутацию отправителя и повысить удобство для пользователей. Например, вы можете отключать рассылку тем, кто давно не открывал письма, или тем, кто отписался через форму, но остался в базе данных.
Другие примеры условий для отключения:
- Пользователь неактивен более 6 месяцев.
- Пользователь достиг определённого статуса (например, заблокирован).
- Подписка закончилась согласно дате истечения.
Для реализации таких сценариев требуется либо использовать готовые плагины с поддержкой автоматизации, либо написать собственный код, который будет проверять условия и отключать подписки.
Использование плагинов для автоматического отключения подписок
Самыми популярными решениями для подписок в WordPress являются плагин MailPoet, Newsletter и Expert Review от WPSHOP.
Например, в MailPoet есть встроенные возможности сегментации аудитории и автоматического удаления неактивных подписчиков. Newsletter позволяет включать условия для отписок через автоматические кампании. Expert Review предлагает расширенные функции для анализа активности и управления подписками с помощью автоматических правил.
Преимущество использования этих плагинов в том, что они уже учитывают особенности WordPress и SMTP-серверов, а также предоставляют удобный интерфейс для настройки.
Пример настройки автоматического отключения в Expert Review
В Expert Review можно создать правило, которое отключит подписку, если пользователь не открывал письма в течение 3 месяцев. Для этого:
- В админке перейдите в раздел «Автоматизация».
- Создайте новое правило с условием «Неактивный пользователь» по времени.
- Выберите действие «Отключить подписку».
- Сохраните и активируйте правило.
Это позволяет автоматически управлять базой подписчиков без дополнительного вмешательства.
Пример кода для автоматического отключения подписок по времени в WordPress
Если вы хотите реализовать автоматическое отключение самостоятельно, можно использовать следующий пример. Предположим, у вас есть кастомное поле user_meta с датой последней активности пользователя. По условию отключаем подписку, если прошло более 90 дней.
function wpzoom_disable_subscriptions_automatically() {
$args = array(
'meta_key' => 'wpzoom_last_activity',
'meta_value' => date('Y-m-d', strtotime('-90 days')),
'meta_compare' => '<=',
'fields' => 'ID',
'number' => -1
);
$users = get_users($args);
foreach ($users as $user_id) {
// Ваш код отключения подписки, например, обновление user_meta
update_user_meta($user_id, 'wpzoom_subscription_status', 'disabled');
}
}
// Запускаем функцию раз в сутки через Cron
if (!wp_next_scheduled('wpzoom_daily_disable_subscriptions')) {
wp_schedule_event(time(), 'daily', 'wpzoom_daily_disable_subscriptions');
}
add_action('wpzoom_daily_disable_subscriptions', 'wpzoom_disable_subscriptions_automatically');
В этом примере мы находим всех пользователей, у которых дата последней активности более 90 дней назад, и меняем их статус подписки. Далее вы можете адаптировать логику отправки писем, исключая таких пользователей.
Как проверять статус подписки при отправке письма
Если вы используете собственный механизм рассылки через wp_mail(), добавьте проверку перед отправкой:
function wpzoom_send_newsletter_to_user($user_id, $message) {
$status = get_user_meta($user_id, 'wpzoom_subscription_status', true);
if ($status === 'disabled') {
return false; // Пропускаем отправку
}
$user = get_userdata($user_id);
if (!$user) {
return false;
}
return wp_mail($user->user_email, 'Рассылка', $message);
}
Другие полезные советы и плагины для управления подписками
Для комплексного управления подписками рекомендуем обратить внимание на следующие решения:
- Clearfy Pro — помогает оптимизировать работу сайта и убирать лишние запросы, что косвенно улучшает работу рассылок.
- My Popup — плагин для создания всплывающих окон с подписками, где можно настроить логику показа, например, не показывать попап тем, кто уже отключил подписку.
- ABC Pagination — если у вас много записей с подписками или уведомлениями, удобная пагинация помогает управлять ими без нагрузки на админку.
Внедрение автоматического отключения подписок — это не только улучшение пользовательского опыта, но и эффективный способ поддерживать качество базы и снижать расходы на рассылки.
Итог
Мы рассмотрели, как с помощью готовых плагинов и собственного кода организовать автоматическое отключение подписок в WordPress. Используйте возможности плагинов Expert Review и MailPoet для быстрой настройки, а для уникальных условий пишите собственные скрипты на основе cron и user_meta. Такой подход поможет вам грамотно управлять подписчиками и улучшить показатели рассылок.