В продолжении темы о требованиях ФЗ 152 «О защите персональных данных» сегодня мы рассмотрим как добавить в форму регистрации флажок о согласии с правилами сайта.
Материалы на эту же тему:
- Добавим галочку на согласие по обработке персональных данных в формах Contact Form 7
- Добавим галочку на согласие по обработке персональных данных в форму комментариев
Нам потребуется добавить два обработчика в тему оформления сайта (файл functions.php). Первый из них добавляет HTML код поля с галочкой и ссылками на соглашения, которые нужно предварительно создать и разместить на сайте. Второй обработчик будет выполнять проверку установлен ли флажок при отправке данных пользователем.
Объявляем зацепки:
1 2 |
add_action( 'register_form', 'regform_useragreeemnet_flag' ); add_filter( 'registration_errors', 'regform_useragreeemnet_check', 10, 3 ); |
Формируем HTML код флажка. В описании содержится также ссылка на пользовательское соглашение.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function regform_useragreeemnet_flag() { $ch = empty($_POST['user_agree']) ? '' : 'checked'; ?> <p> <label for="user_agreement"> <input type="checkbox" name="user_agree" id="user_agreement" class="input" value="1" <?=$ch?> /> Нажимая кнопку «Регистрация», я принимаю условия <a href="/polzovatelskoe-soglashenie" target="_blank"> Пользовательского соглашения</a>. </label> </p> <?php } |
Проверяем, поставил ли пользователь галочку.
1 2 3 4 5 6 |
function regform_useragreeemnet_check( $errors, $sanitized_user_login, $user_email ) { if (empty($_POST['user_agree'])) $errors->add( 'agreement_error', '<strong>Ошибка</strong>: Для регистрации необходимо ознакомиться и принять условия соглашения.'); return $errors; } |
В общем, это стандартный способ добавления каких-либо полей в форму регистрации в WP.
Подскажите пожалуйста, а как сделать так что бы строка не выводилась когда пользователь авторизован?
Вы можете использовать функцию is_user_logged_in() для проверки авторизован пользователь или находится на сайте анонимно.