В последние годы требования к обработке персональных данных ужесточились, и многие сайты на WordPress сталкиваются с необходимостью добавить на форму регистрации дополнительное поле для согласия пользователя с политикой конфиденциальности. В этой статье разберём, как технически реализовать вывод такого поля и сделать его обязательным для заполнения без использования громоздких плагинов, а также рассмотрим варианты с готовыми решениями.
Почему нужно добавить поле согласия с политикой конфиденциальности в форму регистрации WordPress
Согласно законам GDPR и многим другим нормативным актам, пользователь должен явно выразить согласие на обработку своих персональных данных. Если вы принимаете регистрацию на сайте, важно не только информировать пользователя о политике конфиденциальности, но и получить подтверждение, что он с ней ознакомлен и согласен. Без этого вы рискуете получить штрафы и потерять доверие аудитории.
В стандартной форме регистрации WordPress нет такого поля, поэтому его нужно добавить вручную или с помощью плагина.
Добавление поля согласия вручную через хук регистрации
Самый гибкий способ — добавить поле и проверку через хуки WordPress. Рассмотрим по шагам, как это сделать, используя код в файле functions.php вашей темы или в собственном плагине.
Шаг 1. Добавление поля на форму регистрации
Для вывода дополнительного поля используем хук register_form. В функцию добавим чекбокс с текстом и ссылкой на страницу политики конфиденциальности.
function wpweb_add_privacy_policy_checkbox() {
$policy_page_url = esc_url( get_privacy_policy_url() );
$checked = isset( $_POST['wpweb_privacy_policy'] ) ? 'checked' : '';
echo '<p><label><input type="checkbox" name="wpweb_privacy_policy" value="1" ' . $checked . ' /> Я согласен с <a href="' . $policy_page_url . '" target="_blank" rel="noopener noreferrer">политикой конфиденциальности</a></label></p>';
}
add_action( 'register_form', 'wpweb_add_privacy_policy_checkbox' );
Этот код добавит чекбокс в форму регистрации. Мы берём ссылку на страницу политики конфиденциальности из настроек WordPress, чтобы не захардкоживать URL.
Шаг 2. Проверка наличия согласия до регистрации
Чтобы сделать поле обязательным, нужно проверить, установлен ли чекбокс, и вернуть ошибку, если нет. Для этого используем фильтр registration_errors.
function wpweb_validate_privacy_policy_checkbox( $errors, $sanitized_user_login, $user_email ) {
if ( empty( $_POST['wpweb_privacy_policy'] ) ) {
$errors->add( 'privacy_policy_error', '<strong>ОШИБКА:</strong> Вы должны согласиться с политикой конфиденциальности.' );
}
return $errors;
}
add_filter( 'registration_errors', 'wpweb_validate_privacy_policy_checkbox', 10, 3 );
Теперь пользователь не сможет зарегистрироваться, пока не отметит чекбокс.
Шаг 3. Сохранение данных согласия (опционально)
Если хотите хранить факт согласия в мета данных пользователя, добавьте запись при успешной регистрации через хук user_register.
function wpweb_save_privacy_policy_consent( $user_id ) {
if ( ! empty( $_POST['wpweb_privacy_policy'] ) ) {
update_user_meta( $user_id, 'wpweb_privacy_policy_consent', current_time('mysql') );
}
}
add_action( 'user_register', 'wpweb_save_privacy_policy_consent' );
Это позволит в будущем отследить дату согласия пользователя.
Использование плагинов для добавления поля согласия
Если вы не хотите вникать в код, есть готовые плагины, которые помогут добавить поле согласия в форму регистрации:
- WP User Manager — бесплатный плагин с гибкой настройкой формы регистрации, включая поля согласия.
- Profile Builder — имеет встроенную опцию добавления чекбоксов согласия и интеграцию с политикой конфиденциальности WordPress.
- Clearfy Pro — в числе функций есть расширение форм регистрации, возможно, пригодится для комплексной оптимизации сайта. Подробнее: Clearfy Pro на WPSHOP.
Все эти плагины позволяют добавить поле согласия без программирования и подходят для непрофессионалов.
Как оформить ссылку и текст соглашения для лучшей конверсии
Текст возле чекбокса должен быть понятным и лаконичным. Рекомендуется:
- Использовать понятные слова, например: «Я прочитал(а) и согласен(на) с политикой конфиденциальности».
- Сделать ссылку кликабельной и открывать в новой вкладке с атрибутами
rel="noopener noreferrer"для безопасности. - Рассмотреть возможность добавления всплывающей подсказки с кратким описанием политики.
Это повысит доверие пользователей и снизит отказы при регистрации.
Заключение и советы по безопасности
Добавление обязательного поля для согласия с политикой конфиденциальности — важный шаг для соответствия законодательству и повышения безопасности сайта. Реализация через хуки WordPress даёт полный контроль и не перегружает сайт лишними плагинами. Если решите использовать плагины, выбирайте проверенные решения с хорошими отзывами.
Не забудьте регулярно обновлять саму политику конфиденциальности и следить за актуальностью ссылок.