Как создать popup с отключением по ролям пользователей в WordPress

В этой статье подробно разберём, как реализовать в WordPress popup, который не будет показываться определённым ролям пользователей. Это полезно, если, например, вы хотите показывать акционные предложения только гостям или подписчикам, но не администраторам или редакторам.

Почему важно контролировать показ popup по ролям пользователей

В реальных проектах часто возникает задача показывать всплывающие окна выборочно. Например, администраторы и редакторы видят внутренние панели и технические уведомления, и для них показ маркетинговых popup бессмысленен. А для гостей и подписчиков — наоборот, можно показывать специальные предложения и формы подписки.

Без фильтрации по ролям popup может раздражать персонал сайта или мешать работе. Поэтому грамотное управление показом по ролям — это важный аспект UX и маркетинга.

Использование плагинов с поддержкой условий для ролей

Некоторые популярные плагины для создания popup позволяют настроить условия показа по ролям пользователей прямо из админки. Вот несколько из них:

  • My Popup — удобный плагин с возможностью создания правил показа, в том числе по ролям;
  • Popup Maker — мощный и гибкий, позволяет задавать условия показа через фильтры;
  • OptinMonster — коммерческий инструмент с продвинутой сегментацией аудитории.

Чтобы настроить показ по ролям в этих плагинах, нужно в настройках показа выбрать соответствующую опцию или добавить PHP-фильтр.

Пример настройки в My Popup

В My Popup в разделе «Условия показа» можно выбрать «Показать только для выбранных ролей» и отметить нужные роли. Это самый простой способ без кода.

Реализация отключения popup по ролям с помощью кода

Если вы хотите создать своё popup или добавить условие показа в существующий плагин, можно использовать PHP и JavaScript. Ниже пример, как через фильтр WordPress условно отключать popup для определённых ролей.

Предположим, что у вас есть функция wppopup_show_popup(), которая отвечает за вывод popup. Добавим проверку роли пользователя:

function wppopup_should_show_popup() {
    if ( is_user_logged_in() ) {
        $user = wp_get_current_user();
        $allowed_roles = array('subscriber', 'customer'); // роли, для которых показываем popup
        if ( array_intersect($allowed_roles, $user->roles ) ) {
            return true; // показываем
        } else {
            return false; // прячем
        }
    } else {
        return true; // показываем гостям
    }
}

function wppopup_show_popup() {
    if ( !wppopup_should_show_popup() ) {
        return; // не выводим popup
    }
    ?><!-- HTML код popup -->
    <div id="wppopup" class="wppopup-active">
        <div class="wppopup-content">Ваше всплывающее окно</div>
        <button id="wppopup-close">Закрыть</button>
    </div>
    <script>
    document.getElementById('wppopup-close').addEventListener('click', function() {
        document.getElementById('wppopup').style.display = 'none';
    });
    </script>
    <?php
}
add_action('wp_footer', 'wppopup_show_popup');

В этом примере popup показывается только гостям и пользователям с ролями subscriber и customer. Админы и редакторы popup не увидят.

Как расширить логику управления показом popup по ролям

Можно сделать более гибкие условия, например:

  • Показывать разные popup для разных ролей;
  • Отключать popup для администраторов и редакторов только на определённых страницах;
  • Использовать cookie или localStorage для запоминания закрытия popup для конкретной роли.

Пример расширения с учётом страницы и роли:

function wppopup_should_show_popup() {
    if ( is_user_logged_in() ) {
        $user = wp_get_current_user();
        $blocked_roles = array('administrator', 'editor');
        if ( array_intersect($blocked_roles, $user->roles ) ) {
            // Не показывать на страницах /profile и /dashboard
            if ( is_page(array('profile', 'dashboard')) ) {
                return false;
            }
        }
    }
    return true;
}

Использование плагина Clearfy Pro для управления popup и ролями

Плагин Clearfy Pro предлагает удобные инструменты для оптимизации и управления функционалом WordPress, включая настройку показа элементов по ролям и условиям. С ним можно быстро отключать лишние элементы для определённых ролей без сложного кода.

Это отличный вариант, если вы хотите централизованно управлять показом popup и других блоков на сайте.

Советы по тестированию popup с условием по ролям

После реализации обязательно проверьте:

  • Показывается ли popup гостям;
  • Показывается ли popup для нужных ролей (через вход с тестовыми аккаунтами);
  • Не показывается ли для заблокированных ролей;
  • Правильно ли работает закрытие popup и запоминание состояния (если реализовано).

Для тестирования удобно использовать плагины User Switching, которые позволяют быстро переключаться между ролями.

Итог

Управление показом popup по ролям пользователей — важный приём для повышения релевантности и удобства сайта. Используя либо готовые плагины с условиями, либо собственные функции PHP, вы сможете легко реализовать эту логику. В статье приведены примеры кода и советы по настройке.

Как создать popup в WordPress на основе отправки формы без перезагрузки
19.02.2026
Как создать popup с поддержкой мультимедиа в WordPress
01.02.2026
Как создать персонализированные popup в WordPress для повышения конверсии
16.11.2025
Как использовать popup для подтверждения действий в WooCommerce
21.06.2026
Как сделать popup на основе cookie в WordPress
27.12.2025