=== Cookie Consent Mascot ===
Contributors: cmediatech
Tags: cookie, consent, gdpr, 152-fz, analytics
Plugin URI: https://cmediatech.ru/cookie-consent-mascot/
Author: Александр Холодов
Requires at least: 5.5
Tested up to: 6.6
Requires PHP: 7.4
Stable tag: 1.3.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Баннер согласия на обработку данных (152-ФЗ) с переключаемым видом: официальная табличка или анимированный маскот. Гейтинг аналитики до согласия.

== Description ==

Плагин показывает баннер согласия и не запускает Яндекс.Метрику/Google Analytics до явного клика «Разрешаю». Вид уведомления переключается (официальная табличка или персонаж-маскот). Генерирует юридические страницы-заготовки и выводит ссылки в подвал.

**Юридическая оговорка:** плагин предоставляет технический механизм и шаблоны. Полноту и корректность юридических формулировок под конкретный бизнес обеспечивает оператор, при необходимости — с юристом.

== Installation ==

1. Загрузите ZIP через «Плагины → Добавить новый → Загрузить плагин», либо распакуйте папку в wp-content/plugins/.
2. Активируйте плагин.
3. Откройте «Cookie Consent» в меню админки, задайте оператора, ссылку на политику, ID аналитики.
4. Нажмите «Создать юридические страницы».

== Frequently Asked Questions ==

= Запускается ли Метрика до согласия? =
Нет. Скрипты выводятся как type="text/plain" и активируются только после клика «Разрешаю». Проверяется во вкладке Network devtools.

== Changelog ==

= 1.3.0 =
* Положение значка отзыва согласия настраивается: любой из четырёх углов экрана («Общие» → «Положение значка»).
* Пункт «Настройки cookie» в блоке юридических ссылок (подвал, виджет, шорткод) — посетитель всегда может изменить решение; плавающий значок теперь можно выключить совсем.

= 1.2.3 =
* Исправлено: на сайтах со старой кодировкой базы (wp_options в utf8mb3) настройки «не сохранялись», если в репликах были эмодзи — база молча отклоняла запись. Теперь плагин повторяет сохранение без эмодзи, а при реальной ошибке честно показывает уведомление вместо «Настройки сохранены».

= 1.2.2 =
* Если текст не помещается на табличке, шрифт плавно уменьшается (до предела читаемости) — полосы прокрутки больше не появляются.
* Размер пересчитывается при загрузке картинки, изменении окна и смене реплик.

= 1.2.1 =
* Новые встроенные персонажи: «Робот» и «Щит».
* Исправлено: на невысоких табличках заголовок мог налезать на текст согласия (флексбокс сжимал блоки).
* Баннер «Котика» стал шире — тексту просторнее.

= 1.2.0 =
* Согласие в формах: обязательный чекбокс «согласен на обработку ПДн» со ссылкой на политику добавляется автоматически в Contact Form 7, комментарии и WooCommerce (классический чекаут и регистрация). Проверка на сервере.
* Универсальный JS-режим для прочих форм с полями персональных данных (выключен по умолчанию; исключение формы — класс ccm-no-consent).
* Галочки из форм записываются в журнал согласий с указанием источника; на «Статистике» — отдельный счётчик и колонка «Источник».
* Новая вкладка «Формы» с настройками и шаг в чек-листе.
* Новый встроенный персонаж «Котик».

= 1.1.0 =
* Категории согласия: раздельные галочки «Аналитика» и «Маркетинг» на баннере (включаются на вкладке «Общие»).
* Журнал согласий: доказательная фиксация решений (дата, решение, версия, обезличенный хэш) с автоочисткой по сроку хранения.
* Вкладка «Статистика»: согласия/отказы за 7 и 30 дней, доля согласий, график по дням, последние записи журнала.
* Кнопка «Проверить сайт»: плагин сам проверяет, что баннер выводится и счётчики не исполняются до согласия.
* Вкладка «Сервис»: экспорт/импорт настроек (JSON) и пресеты «Лендинг», «Интернет-магазин», «СМИ/блог».
* Поле «Маркетинговые скрипты» — отдельная категория гейтинга для рекламных пикселей.
* Автосброс кэша страниц (WP Rocket, W3TC, LiteSpeed, WP Super Cache, Nginx Helper и др.) при изменении настроек.

= 1.0.2 =
* Исправлено: кнопка отзыва согласия не работала у вернувшихся посетителей.
* Исправлено: повышение «версии согласия» через границу разряда (9→10) не переспрашивало согласие.
* Исправлено: готовый HTML-код счётчика в «Доп. скриптах» мог исполняться до согласия — теперь каждый script корректно переносится в гейт.
* Исправлено: смена персонажа затирала его реплики предзаполненным текстом.
* Исправлено: страницы больше не создаются с незаполненными [плейсхолдерами]; ссылка на политику автоподставляется.
* Ссылки в подвале стилизуются и при выключенном баннере; берут заголовок реальной страницы.
* Числа в inline-CSS не зависят от локали PHP; nonce на перескан счётчиков; меньше лишней работы на каждом запросе.

= 1.0.1 =
* Автообновления с собственного сервера (info.json).
* Реплики персонажа чередуются по очереди.
* Точная инициализация Яндекс.Метрики (referrer/url) при отложенном запуске.

= 1.0.0 =
* Первый релиз.
