Скачать
- Таблица баннеров — произвольное число строк, при показе выбирается одна активная случайным образом.
- Чек-бокс «Активно» — временно выключает строку без удаления.
- Дата размещения — фиксируется при создании каждой строки.
- Реферальная ссылка и ERID — индивидуальные для каждой строки; при заполненном
ERIDпод кнопками выводится пометка «Реклама · ERID: …». - Кнопка перехода — задаваемый текст, цвет фона, превью.
- Произвольный HTML и CSS — задаются на каждый баннер; CSS строки имеет приоритет над runtime-стилями плагина.
- Override глобальных параметров — фон окна, цвет основного текста, цвет эффекта, список исключённых ID; пустое поле строки = использовать глобальное.
- Скрытие ссылки — кнопка перехода рендерится как
<button>сdata-pb-go="BASE64URL", переход выполняется черезwindow.openсnoopener,noreferrer. - Шаблоны баннеров — 24 готовых пресета на разные темы и палитры в файле
templates/banner-templates.php; кнопка-выпадающий список «Добавить строку из шаблона». - Модальное окно редактирования — пять вкладок: Основное, Оформление, Показ, Содержимое, Экспорт / Импорт.
- Предпросмотр баннера — sandbox-iframe с переключателем Desktop (480 px) / Mobile (380 px), live-обновление при правке HTML/CSS.
- Экспорт / Импорт настроек строки — упаковка полей в JSON и кодирование в Base64; копирование в буфер; восстановление обратно с валидацией.
- Помесячная история статистики — при смене календарного месяца счётчики автоматически переносятся в архив
popup_banner_history, текущие обнуляются. - Раздельные страницы админки — «Статистика» (открывается по умолчанию) и «Настройки», с группировкой настроек на пять секций со своими кнопками сохранения.
- Эффекты появления — 8 вариантов: без эффекта, волна света, вспышка, пульсация, дрожание, свечение, полоса сканирования, рябь.
- Два режима показа — модальное окно по центру или панель снизу.
- Контекст показа — главная, записи, страницы; список ID для исключения.
- Лёгкая проверка обновлений — JSON-эндпойнт, бейдж «Доступно обновление» в строке плагина, ссылка «Проверить обновления».
| Параметр | Значение |
|---|---|
| Шорткод | Не используется. Баннер выводится автоматически в wp_footer на разрешённых страницах |
| Текстовый домен | popup-banner-smirnovcode |
| Меню админки | Всплывающий баннер (верхний уровень) → Статистика (по умолчанию) и Настройки |
| Slug страницы статистики | popup-banner-stats |
| Slug страницы настроек | popup-banner |
| Опция таблицы баннеров | popup_banner_banners (массив строк) |
| Опция архива по месяцам | popup_banner_history (массив записей) |
| Опция текущего месяца | popup_banner_current_month (формат YYYY-MM) |
| Глобальные опции | popup_banner_enabled, popup_banner_show_on_home, popup_banner_show_on_posts, popup_banner_show_on_pages, popup_banner_exclude_ids, popup_banner_btn_close_text, popup_banner_display_mode, popup_banner_box_effect, popup_banner_effect_speed, popup_banner_effect_color, popup_banner_bg_color, popup_banner_text_color, popup_banner_repeat_interval |
| Поля строки баннера | id, active, created_at, ref_link, erid, btn_text, btn_color, hide_link, bg_color, text_color, effect_color, exclude_ids, banner_html, banner_css, stat_shown, stat_install, stat_close |
| Режимы показа | modal (модальное окно), slidein (панель снизу) |
| Эффекты появления | none, glare, flash, pulse, shake, glow, scanline, ripple |
| AJAX-экшены | popup_banner_stat (инкремент счётчиков shown / install / close), popup_banner_reset_stats (сброс счётчиков текущего месяца) |
| Файл шаблонов | templates/banner-templates.php (PHP-массив) |
| Санитизация | sanitize_text_field, sanitize_hex_color, esc_url_raw, sanitize_key, wp_unslash для HTML/CSS строк, esc_html / esc_attr / esc_url / esc_textarea на выводе |
| Скрытие ссылки | URL в data-pb-go кодируется через base64_encode, открывается JS через window.open(url, '_blank', 'noopener,noreferrer') |
| Экспорт-импорт строки | JSON → btoa(unescape(encodeURIComponent(...))); импорт обратным преобразованием с поддержкой URL-safe Base64 |
| Проверка обновлений | https://smirnovcode.ru/updates/popup-banner-smirnovcode.json, кеш 12 часов в transient, при ошибке — кеш 5 минут |
| Активы фронтенда | assets/popup-banner.css, assets/popup-banner.js (подключаются только на разрешённых страницах) |
1. Установка и активация
- Загрузите папку
popup-banner-smirnovcodeв/wp-content/plugins/. - В админке перейдите в раздел «Плагины», найдите «Всплывающий баннер» и нажмите «Активировать».
- При активации создаются дефолтные опции и текущий месяц (
popup_banner_current_month).
2. Настройка плагина
После активации в левом меню админки появится пункт «Всплывающий баннер». По клику открывается страница «Статистика». Перейдите в подпункт «Настройки» для конфигурации.
Настройки разбиты на 5 секций, каждая со своей кнопкой сохранения:
- Баннеры — таблица строк. Иконка карандаша в строке открывает модальное окно редактирования. Кнопка «Добавить строку из шаблона» — выпадающий список из
templates/banner-templates.php(если файл пуст — кнопка неактивна). При сабмите формы строки таблицы записываются в опциюpopup_banner_banners. - Показ — включение попапа, режим (
modalилиslidein), контекст (главная / записи / страницы), глобальный список исключённых ID, надпись кнопки «Закрыть». - Оформление — глобальные «Фон окна» и «Цвет основного текста». Применяются ко всем баннерам, в каждой строке могут быть переопределены.
- Эффекты появления — выбор эффекта, скорость (range 0.3–3.0), цвет эффекта по умолчанию, повтор эффекта (в секундах).
Каждая секция при сабмите отправляет скрытое поле pb_section (banners, display, style, effects); серверный обработчик обновляет только опции своей секции, остальные не трогает.
3. Вывод на странице
Шорткод не используется — это плагин с автоматическим выводом. На разрешённых страницах баннер встраивается в wp_footer:
- проверяется опция
popup_banner_enabled; - проверяется контекст (
is_front_page/is_home,is_single,is_page) против соответствующих опцийshow_on_*; - из активных баннеров отфильтровываются те, чей эффективный список
exclude_idsсодержит текущий ID; - из оставшихся
array_randвыбирает одну строку для показа.
Когда баннер найден, плагин подключает assets/popup-banner.css и assets/popup-banner.js, выводит inline-стили runtime (фон + цвет текста), пользовательский CSS строки и саму разметку. Чтобы временно выключить попап, снимите галочку «Включить попап» в секции «Показ».
4. Параметры строки баннера
Шорткод не используется; интерфейс настройки баннера — модальное окно. Параметры одной строки таблицы:
| Параметр | Где задаётся | Назначение |
|---|---|---|
active | вкладка «Основное», переключатель в строке | Участвует ли баннер в случайном выборе. |
ref_link | «Основное», поле URL | Реферальная ссылка перехода. |
hide_link | «Основное», чек-бокс | Скрытие URL в исходном HTML; кнопка становится <button data-pb-go> с Base64-адресом, переход через JS без передачи Referer. |
erid | «Основное» | Токен маркировки рекламы. Если заполнен — выводится «Реклама · ERID: …». |
btn_text | «Основное» | Надпись на кнопке перехода (по умолчанию «Перейти по ссылке»). |
btn_color | «Основное» | Цвет фона кнопки перехода (HEX). |
bg_color | «Оформление», override | Цвет фона .pb-box. Пусто = глобальный popup_banner_bg_color. |
text_color | «Оформление», override | Цвет основного текста .pb-banner-content. Пусто = глобальный. |
effect_color | «Оформление», override | Цвет эффекта появления. Пусто = глобальный. |
exclude_ids | «Показ», override | Список ID для исключения через запятую. Пусто = глобальный список. |
banner_html | «Содержимое» | Произвольный HTML тела баннера (без кнопок, они добавляются автоматически). |
banner_css | «Содержимое» | Произвольный CSS строки. Применяется после runtime-стилей плагина — может их переопределить. |
Дополнительно во вкладке «Содержимое» доступна кнопка «Заполнить из шаблона» — заменяет только banner_html и banner_css значениями выбранного шаблона. Под полями редактирования — предпросмотр в sandbox-iframe с переключателем Desktop / Mobile, обновляющийся живым на каждый ввод.
Во вкладке «Экспорт / Импорт» настройки строки (все перечисленные поля, кроме active, created_at, id и счётчиков статистики) сериализуются в JSON с маркером версии v: 1 и кодируются в Base64. Кнопки:
- Экспортировать — собирает текущие значения формы, выводит код в textarea.
- Скопировать — копирует код в буфер обмена.
- Восстановить — декодирует Base64, парсит JSON, валидирует поля и применяет к форме модалки. Изменения нужно подтвердить кнопкой «Применить» в модалке, а затем «Сохранить баннеры».
После любых изменений в модалке нажмите «Применить» (значения попадут в скрытые поля строки таблицы), затем «Сохранить баннеры» под таблицей — данные запишутся в опцию popup_banner_banners.
5. Проверка обновлений
Плагин не встраивается в систему автообновлений WordPress. Проверка работает статически:
- источник —
https://smirnovcode.ru/updates/popup-banner-smirnovcode.json; - кеш — 12 часов в
transientpopup_banner_smirnovcode_remote_version; - при ошибке сети кеш
5 минут(чтобы не долбить сервер); - runtime-кеш предотвращает повторный HTTP-запрос за один цикл WordPress.
Если на сервере опубликована более свежая версия, в строке плагина (раздел «Плагины» админки) появляется бейдж «Доступно обновление 1.4.0 → X.Y.Z» со ссылкой на страницу плагина. Рядом с ссылкой «Настройки» — пункт «Проверить обновления», который сбрасывает кеш и заставляет немедленно сходить за актуальной версией.
Стандартная ссылка «Детали» / «Details» удалена из строки плагина — вместо неё ведёт прямая ссылка «Перейти на страницу плагина».
Ожидаемый формат ответа сервера обновлений (поддерживаются три варианта):
{ "version": "1.5.0" }{ "popup-banner-smirnovcode": { "version": "1.5.0" } }[ { "version": "1.5.0" } ] Версия 1.4.0
- Меню верхнего уровня «Всплывающий баннер» с подпунктами «Статистика» (по умолчанию) и «Настройки».
- Раздельные страницы: статистика на собственной странице, настройки сгруппированы в карточки по 4 секциям, у каждой своя кнопка «Сохранить».
- Помесячный архив счётчиков: автоматическая ротация при смене календарного месяца, текущие счётчики обнуляются и переносятся в
popup_banner_history. - Помесячная история отображается в виде таблицы (новый месяц сверху) с раскрытием детализации по баннерам через
<details>. - Модальное окно редактирования строки с пятью вкладками: Основное, Оформление, Показ, Содержимое, Экспорт / Импорт.
- Предпросмотр баннера в sandbox-iframe с переключателем Desktop / Mobile и live-обновлением при правке HTML/CSS.
- Экспорт и импорт настроек строки в JSON+Base64 с поддержкой URL-safe Base64 и валидацией полей.
- Скрытие ссылки: рендеринг кнопки перехода как
<button data-pb-go="BASE64URL">вместо<a href>, переход черезwindow.openбез Referer. - Override-поля строки (фон, текст, цвет эффекта, список исключённых ID) — пустое значение означает «использовать глобальное».
- 24 шаблона баннеров на разные темы в файле
templates/banner-templates.php, включая три шаблона с картинкой (подложка 600×400, картинка слева 120×120, картинка справа 120×120). - Лёгкая проверка обновлений: бейдж в строке плагина, кнопка «Проверить обновления», трёхуровневый кеш версии.
- Автоматическая миграция со старой одиночной схемы 1.3.0 на таблицу баннеров.








