Чекбокс при регистрации
Добавим чекбокс в форму регистрации Woocommerce, как требует РКН РФ

// Добавить чекбокс согласия на обработку персональных данных
add_action('woocommerce_register_form', 'avs_add_privacy_policy_checkbox');
function avs_add_privacy_policy_checkbox() {
?>
<p class="form-row privacy">
<label class="woocommerce-form__label woocommerce-form__label-for-checkbox">
<input class="woocommerce-form__input-checkbox" type="checkbox" name="privacy_policy" id="privacy_policy" value="1" required />
<span>Я даю согласие на обработку моих персональных данных в соответствии с <a href="/privacy-policy/" target="_blank">Политикой конфиденциальности</a></span>
<span class="required">*</span>
</label>
</p>
<?php
}
// Проверить чекбокс при регистрации
add_action('woocommerce_register_post', 'avs_check_privacy_policy_checkbox', 10, 3);
function avs_check_privacy_policy_checkbox($username, $email, $validation_errors) {
if ( ! isset($_POST['privacy_policy']) ) {
$validation_errors->add('privacy_policy_error', 'Вы должны дать согласие на обработку персональных данных.');
}
}Чекбокс для оформления заказа
Теперь добавим чекбокс в оформление заказа как требует РКН РФ совсем без кода.
Введите текст в настройках Woocommerce и в виджете Elementor Оплата.
«Я ознакомлен и соглашаюсь с условиями публичной <a href=»/offer/» target=»_blank» rel=»noopener» class=»terms-link»>Оферты</a> и <a href=»/privacy/» target=»_blank» rel=»noopener» class=»terms-link»>Политикой обработки персональных данных</a>»


В настройках Woocommerce — Дополнительно — Правила и условия — Добавьте любую страницу, в дальнейшем это не влияет, главное чтобы была выбрана страница.

Стилизуем немного чекбокс
/*чекбокс политика конф*/
.woocommerce-form__label-for-checkbox{position:relative;padding-left:32px;}
.woocommerce-form__label-for-checkbox.checkbox::before{content: '';position: absolute;left: 0; top: 2px;width: 19px; height:19px;border:2px solid #FFB829;border-radius: 6px;
transition: border-color 0.2s;box-sizing: border-box;background-color:#fff;}
.woocommerce-form__input-checkbox:checked + .woocommerce-terms-and-conditions-checkbox-text::before {content: '';position:absolute;
left: -25px;top: 3px;width: 6px;height: 12px;border: solid #8A8A8A;border-width: 0 3px 3px 0;transform: rotate(45deg);}
.woocommerce-page form .form-row label.checkbox{display:flex;}
.woocommerce-terms-and-conditions-checkbox-text .terms-link {text-decoration: underline;font-weight:bold}
В целом всё. Не забудьте подать данные в Роскомнадзор, когда ваш сайт будет готов. Вот тут подробнее как и вот тут Пошаговая инструкция как заполнять уведомление в Роскомнадзор для оператора по обработке персональных данных (ПДн)
Главное не поленитесь добавить в каждую форму чекбокс и кликабельную ссылку на Политику конфиденциальности. Так как штрафы очень большие за отсутствие согласия и за то, что не уведомили РКН (задним числом подать будет нельзя).
Если у вас в форме, например, анкета для собачки (опрос о породе и любимой амуниции), то в данном случае чекбокс не нужен, так как не собираются никакие данные о человеке, то есть его персональные данные (уточню, вы не собираете ip или какие-либо данные о владельце). Но это редкое исключение, как правило согласие нужно.