Флажок PHP WordPress для регистрации требуется - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь сделать мою регистрационную форму WordPress совместимой с GDPR, где пользователю необходимо установить флажок, чтобы он принимал нашу политику конфиденциальности.

Я успешно установил флажок, используя хук register_form.

Однако у меня возникли проблемы с заполнением поля флажка. Я попытался с обязательным true в моем массиве, но это не похоже на работу. Я могу кому-нибудь объяснить, что я могу сделать, чтобы сделать флажок обязательным?

add_action( 'register_form', 'login_extra_note' );

function login_extra_note() {

    woocommerce_form_field( 'privacy_policy_reg', array(
        'type'          => 'checkbox',
        'class'         => array('form-row privacy'),
        'label_class'   => array('label-for-checkbox checkbox'),
        'input_class'   => array('form__input-checkbox input-checkbox'),
        'required'      => true,
        'label'         => 'Jeg har læst og acceptere <a href="https://example.dk/privatliv/" target="blank">Betingelser & Privatlivspolitik</a>',
    ) );

}

1 Ответ

0 голосов
/ 17 октября 2019

Проблема была связана с отсутствием сообщения об ошибке, связанного с полем chekbox. Мне удалось решить эту проблему, добавив ошибку в поле флажка:

// add registration chekbox field
add_action( 'register_form', 'login_extra_note' );

function login_extra_note() {

woocommerce_form_field( 'privacy_policy_reg', array(
   'type'          => 'checkbox',
   'class'         => array('form-row privacy'),
   'label_class'   => array('label-for-checkbox checkbox'),
   'input_class'   => array('form__input-checkbox input-checkbox'),
   'required'      => true,
   'label'         => 'Jeg har læst og acceptere <a href="https://example.dk/privatliv/" target="blank">Betingelser & Privatlivspolitik</a>',
));

}

// Error registration form
function my_registrationform_error( $errors, $sanitized_user_login, $user_email ) {

    if ( ! (int) isset( $_POST['privacy_policy_reg'] ) ) {
    $errors->add( 'demo_error', __( '<strong>FEJL</strong>: Du skal accepter VIFT Betingelser & Privatlivspolitik!', 'my_textdomain' ) );
        }
    return $errors;
}

add_filter( 'registration_errors', 'my_registrationform_error', 10, 3 );
...