Каждая форма на сайте, которая принимает имя, телефон или почту, собирает персональные данные. По закону о персональных данных на это нужно согласие человека, и в случае вопросов вы должны показать, что оно было. Галочка «согласен», которую проверяет только браузер, этого не доказывает.

Это 13-я часть цикла «WordPress на кэшируемом сайте». Юридическую сторону оставим юристам — здесь о том, как сделать это технически честно на кэшируемом сайте.

Отдельная галочка, а не мелкий текст

Фраза «нажимая кнопку, вы соглашаетесь…» под формой — не отдельное согласие. У нас в каждой форме, где есть данные человека, своя галочка со ссылкой на текст согласия:

  • форма заявки — согласие на обработку контакта;
  • комментарий — согласие и предупреждение, что имя будет опубликовано рядом с комментарием;
  • подписка по почте — согласие на обработку адреса.

Проверка на сервере, а не только в браузере

Браузерная проверка — для удобства: подсветить галочку до отправки. Обойти её можно одним запросом без браузера. Поэтому сервер проверяет то же самое и без согласия заявку не принимает:

if (empty($_POST['consent'])) {
    wp_send_json([
        'ok'      => false,
        'fields'  => ['consent'],
        'message' => 'нужно согласие на обработку персональных данных',
    ]);
}

В заявке — когда и с каким текстом

Тексты согласия меняются. Чтобы через год можно было сказать, на что именно согласился человек, вместе с заявкой хранится время и редакция текста:

const CONTACT_FORM_CONSENT_VERSION = '2026-10-12'; // редакция текста /soglasie/

update_post_meta($leadId, 'lead_consent', [
    'at'      => current_time('mysql'),
    'text'    => home_url('/soglasie/'),
    'version' => CONTACT_FORM_CONSENT_VERSION,
]);

Изменили текст согласия — поменяли константу. Старые заявки остаются со старой редакцией. У комментариев то же самое хранится в мете комментария, у подписчиков — в поле таблицы подписок.

Почему это не мешает кэшу

Галочка — часть пустой формы, одинаковой для всех. Отметка о согласии рождается только в момент отправки, в запросе мимо кэша. В кэшированной разметке нет ничего, что зависело бы от конкретного человека.

Плашка «сайт использует cookie» — тот же случай, что любая разметка, зависящая от куки: в кэше она будет либо у всех, либо ни у кого. Поэтому плашка есть в HTML у всех, а показывать её или нет, решает скрипт по отметке в браузере посетителя. Подробно — в девятой части цикла про кэш страниц.

Куда уходят данные после формы — тоже часть согласия. Если заявки пересылаются в мессенджер, сервера которого за рубежом, это трансграничная передача, и у неё свои требования. Проверьте свои каналы доставки до того, как об этом спросят.

Нужно привести формы сайта в порядок по персональным данным?

Пришлите адрес — сделаю отдельные согласия с проверкой на сервере и хранением редакции текста.

· полезно?
АЧ
Алексей Чикун веб-разработчик, команда TRIOHEAD

Делаю сайты и сервисы целиком: от вёрстки до сервера. Пишу о том, что проверил на своих проектах.

Комментарии

// загружаю комментарии…

Комментарии публикуются после проверки. Ссылки и HTML не принимаются.