Сайты, которые собирают и обрабатывают cookie должны сообщать об этом своим пользователям. Чаще всего такое сообщение делают всплывающим и показывают один раз при первом заходе на сайт. В этой статье разберем варианты создания уведомления на согласие сбора куки на сайте WordPress.
Что такое cookie?
Файлы cookie — это набор данных, которые генерируются при посещении сайта и сохраняются в браузере пользователя. В них хранится информация о посетителе и его действиях на сайте. Например, куки могут содержать данные для авторизации на сайте, личные данные, такие как: номер телефона, адреса, e-mail, платежная информация, данные об устройстве, с которого посещали сайт.
Зачем сообщать пользователям о сборе cookie?
Уведомления о сборе cookie необходимы по нескольким причинам:
- Соответствие законодательству. Так как куки могут сохранять личные данные пользователей, компании обязаны сообщать пользователям о сборе и обработке их персональных данных, включая cookie-файлы. Отсутствие уведомления может привести к штрафу.
- Защита данных. Уведомления разъясняют пользователям, что происходит с их данными и позволяют принимать решения о продолжении использования сайта.
- Согласие на обработку данных. Чтобы использовать персональные данные пользователя, включая cookie, необходимо получить явное согласие. Уведомление cookie позволяет получить согласие.
Пример текста уведомления cookie
Уведомление о сборе cookie должно быть четким, лаконичным, но при этом содержать всю необходимую информацию для пользователя.
Примеры сообщения:
- «Мы используем файлы cookie, чтобы улучшить работу сайта. Подробная информация по ссылке»
- «Мы используем файлы cookie и рекомендательные технологии. Пользуясь сайтом, вы соглашаетесь с Политикой обработки персональных данных.»
- «Продолжая использовать сайт, вы соглашаетесь на обработку файлов cookie и Политикой обработки персональных данных».
Настройка уведомления о сборе куки на WordPress
Мы рассмотрим 2 варианта добавления уведомления: с плагином и вручную.
Уведомление cookie плагином WordPress
По запросу «cookie notice» репозиторий плагинов WordPress содержит более 600 плагинов.

Я протестировал плагины из топа и остановился на плагине LuckyWP Cookie Notice (GDPR). Его главное преимущество – простота.
Другие плагины, такие как Complianz – GDPR/CCPA Cookie Consent, CookieYes – Cookie Banner for Cookie Consent, Cookie Notice & Compliance for GDPR / CCPA очень громоздкие для интеграции с сайтом, заточены исключительно под законодательство ЕС и USA и реализуют сложный функционал анализа сайта на соответствие требованиям. Наша же задача простая – разместить на сайте уведомление о сборе cookie.
Плагин LuckyWP Cookie Notice (GDPR)
Установите плагин и зайдите в настройки.

Плагин имеет 4 раздела настроек:
- Основные. Раздел для изменения текста сообщения, текста кнопок.
- Внешний вид. В нем можно изменять оформление уведомления, позиционирование.
- Скрипты. Дополнительная секция для добавления кастомных скриптов, которые будут выполняться после того, как пользователь дал согласие на обработку cookie.
- Дополнительно. Прочие настройки плагина.
Откройте раздел Основные и в поле Сообщение введите текст, который будет содержать уведомление. Можно взять текст из примера выше.

В поле Надпись на кнопке "Принять" укажите свой текст кнопки или оставьте по-умолчанию.
Так же, вы можете включить кнопку Отказаться. По идее, эта кнопка должна быть всегда добавлена в уведомление, но большинство сайтов ее игнорируют.
Если вы активируете чекбокс Показать кнопку Подробнее откроются дополнительные настройки.

По кнопке Подробнее вы можете выводить ссылку на страницу с текстом политики конфиденциальности. Измените поле Этикетка кнопки, а в выпадающем списке Страница выберите страницу политики конфиденциальности.
В разделе Внешний вид предлагается изменить оформление уведомления. Вы можете выбрать светлую или темную цветовую схему сообщения и настроить кнопку. Настройте оформление под стиль вашего сайта.

В дополнительных настройках на интересует опция Время жизни кук – через столько дней окно появится снова. Опция Интеграция с плагинами кеширования нужна в случае, если у вас настроено кеширование страниц сайта. Установите в значение Автоматически или Включить.
Когда настройка плагина завершена, можно проверять результат. У меня получилось такое окно с уведомлением.

Уведомления cookie WordPress вручную
Для реализации уведомления с помощью кода необходимы навыки редактирования файлов шаблона WordPress.
Ручное создание уведомления имеет преимущества над плагинами. У вас есть возможность полной кастомизации «окошка» cookie. В рассмотренном плагине достаточно скудные настройки внешнего вида. Мы могли поменять только цветовую схему, выбор конкретных цветов для фона или кнопки недоступен.
#1
Добавляем уведомление на страницу
Если вы используете тему, которая регулярно получает обновления, то все изменения файлов делайте в дочерней теме.
Чтобы добавить HTML-код на страницу, мы будем использовать хук wp_footer. Он добавляет разметку в конце страницы, прямо перед выводом подвала.
<?php
add_action('wp_footer', 'output_cookie_notice');
function output_cookie_notice() {
if( isset( $_COOKIE['cookieNotice'] ) ) {
return;
} ?>
<div class="cookie-notice">
<div class="cookie-notice__text">Продолжая использовать сайт, вы соглашаетесь на обработку файлов cookie и c <a href="<?php echo get_privacy_policy_url() ?>">Политикой обработки персональных данных</a></div>
<div class="cookie-notice__buttons">
<a href="#" class="cookie-notice__confirm">Принимаю</a>
</div>
</div>
<?php }Этот код нужно добавить в файл functions.php вашей активной темы.
#2
Оформление уведомления
Когда сообщение добавлено в код сайта, его можно стилизовать. Разместим уведомление с левой стороны экрана и прикрепим его при промотке.
Пишем css-стили.
.cookie-notice {
position: fixed;
bottom: 20px;
left: 30px;
max-width: 420px;
border-radius: 12px;
padding: 32px;
box-sizing: border-box;
box-shadow: 0 0 24px rgba(25, 25, 25, 0.15);
background-color: #fff;
z-index: 2;
}
@media (max-width: 576px) {
.cookie-notice {
font-size: 15px;
max-width: calc(100% - 20px);
left: 10px;
bottom: 10px;
padding: 24px;
}
}
.cookie-notice__buttons {
margin-top: 16px;
}
.cookie-notice__confirm {
background-color: #d73301;
height: 48px;
width: 100%;
border-radius: 8px;
color: #fff;
display: inline-flex;
align-items: center;
justify-content: center;
text-decoration: none;
font-size: 15px;
}
@media (max-width: 576px) {
.cookie-notice__confirm{
font-size: 14px;
height: 42px;
}
}
.cookie-notice__confirm:hover {
background-color: #000;
}
Мы сделали адаптивное уведомление, которое хорошо выглядит на всех устройствах. Цвет кнопки в примере – оранжевый (строка 29), так как он подходит под общую стилистику сайта-примера.
Стили нужно разместить в файле style.css в корневой папке вашего шаблона.
Если вы правильно добавили весь код, то у вас на сайте появится уведомление. На моем сайте-примере оно выглядит так:

Остался последний шаг – реализовать закрытие окна по кнопке Принимаю и запомнить действие пользователя, чтобы не показывать уведомление при каждом заходе.
#3
Добавляем JavaScript
JavaScript записывает информацию о нажатии на кнопку Принимаю. После нажатия уведомление больше не будет показываться пользователю.
// Получает значение куки
function getCookie(name) {
let matches = document.cookie.match(new RegExp(
"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
));
return matches ? decodeURIComponent(matches[ 1 ]) : undefined;
}
var cookieName = 'cookieNotice';
var cookieNotice = document.querySelector('.cookie-notice');
if (typeof getCookie(cookieName) == 'undefined') {
document.querySelector('.cookie-notice__confirm').addEventListener('click', function (e) {
e.preventDefault();
document.cookie = cookieName + '=true; max-age=15552000; path=/'; // установка куки на 6 месяцев
cookieNotice.style.display = 'none';
});
}Мы сохраняем информацию о закрытии уведомления куки на 6 месяцев (параметр max-age в строке 15). Это значит, что в течение полугода пользователь больше не увидит сообщение (если не почистит куки в браузере).
Разместите этот код в файле scripts.js вашей темы. Чаще всего он находится в папке js.
итог
Когда весь код добавлен в файлы шаблона, можно проверять работоспособность уведомления. Но прежде, очистите кеш браузера, и, если используете плагины кеширования, еще и кеш файлов сайта.

Пользовалась плагином LuckyWP Cookie Notice, но много лишних функций там, не хотелось бы так нагружать сайт. Нашла более подходящий плагин Clearfy Pro, он даже ускорил загрузку сайта. Александр, вы интересно рассказываете, поделитесь своим мнением о нем. Было бы интересно послушать вас
Этот плагин платный, так и пишите. Про него все ресурсы заспамили но отдавать за плашку с уведомлением 4000р. — за гранью добра и зла. Разработчики этого плагина и другие свои плагины продают «за недороже денег» суммы.
Если конкретно из-за одной функции брать плагин, как по мне, это глупо. Надо смотреть под нужды и находить инструмент с максимальной пользой, для меня это как раз клирфи. И что поделать, сколько людей, столько и мнений, и опыта)
Здравствуйте.
Пытаюсь сделать легкий плагин, который бы юзал уже имеющиеся у меня стили. Пробую объединить код следующим образом:
add_action(‘wp_footer’, ‘output_cookie_notice’);
function output_cookie_notice() {
if( isset( $_COOKIE[‘cookieNotice’] ) ) {
return;
}
?>
Продолжая использовать сайт, вы соглашаетесь на обработку файлов cookie и c <a rel="nofollow" href="»>Политикой обработки персональных данных
Принимаю
function getCookie(name) {
let matches = document.cookie.match(new RegExp(
«(?:^|; )» + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, ‘\\$1’) + «=([^;]*)»
));
return matches ? decodeURIComponent(matches[ 1 ]) : undefined;
}
var cookieName = ‘cookieNotice’;
var cookieNotice = document.querySelector(‘.cookie-notice’);
if (typeof getCookie(cookieName) == ‘undefined’) {
document.querySelector(‘.cookie-notice__confirm’).addEventListener(‘click’, function (e) {
e.preventDefault();
document.cookie = cookieName + ‘=true; max-age=15552000; path=/’; // установка куки на 2 года
cookieNotice.style.display = ‘none’;
});
}
<?php
}
Как итог: в код страницы почему-то не выдается все, что написано в .
Также окно вылезает всегда при обновлении страницы. Не пойму, толи это потому, что не сработал скрипт (в силу его отсутствия). то ли еще кэш срабатывает. На сайте есть плагин кэширования. Есть сомнение, что мы выходим из output_cookie_notice при наличии кэширования.
Поможете разобраться?
Так, куда скрипт исчез стало понятно — его плагин кэширования затолкал во внешний файл вместе с остальными скриптами. Осталось понять, почему окно не пропадает при выводе куки. Полагаю, что из за кэширования не происходит выхода из функции php. Сможете подсказать, как дружить с кэшированием без сторонних плагинов?
Доброго дня! Прошу прощения за долгую обратную связь.
С плагинами кэширования необходимо ставить исключения для определенного ключа cookie.
Например, если используется плагин WP Rocket, то в разделе Расширенные, нужно указать ключ cookie. Для нашего примера – cookieNotice.
Похожие материалы
Как добавить шрифт на сайт WordPress
Оптимизация изображений в WordPress
Как сделать портфолио на WordPress. Полное руководство
AJAX загрузка постов в WordPress: кнопка и бесконечный скролл
Как добавить страницу на сайте WordPress: пошаговая инструкция
Шорткоды в WordPress: подробное руководство