Чтобы добавить дополнительные поля в форму регистрации пользователей в WordPress, можно использовать хуки и фильтры.
- Добавление поля в форму регистрации:
Копировать
function my_register_extra_field() {
$html = '<p><label>Мой дополнительный вопрос<br />
<input type="text" name="my_extra_field" id="my_extra_field" class="input" value="" size="25"></label></p>';
echo $html;
}
add_action( 'register_form', 'my_register_extra_field' );
В этом примере мы создаем функцию my_register_extra_field()
, которая добавляет дополнительное текстовое поле в форму регистрации. Хук register_form
используется для подключения функции к форме регистрации.
- Валидация поля при регистрации:
Копировать
function my_register_extra_field_validation( $errors, $sanitized_user_login, $user_email ) {
if ( empty( $_POST['my_extra_field'] ) ) {
$errors->add( 'my_extra_field_error', __( '<strong>Ошибка</strong>: Поле Мой дополнительный вопрос обязательно для заполнения.' ) );
}
return $errors;
}
add_filter( 'registration_errors', 'my_register_extra_field_validation', 10, 3 );
В этом примере мы используем фильтр registration_errors
, чтобы отслеживать ошибки при регистрации. Функция my_register_extra_field_validation()
проверяет, что поле my_extra_field
не было оставлено пустым. Если поле пустое, возвращаем объект ошибки.
- Сохранение дополнительного поля в базу данных:
Копировать
function my_save_extra_field( $user_id ) {
if ( !empty( $_POST['my_extra_field'] ) ) {
update_user_meta( $user_id, 'my_extra_field', sanitize_text_field( $_POST['my_extra_field'] ) );
}
}
add_action( 'user_register', 'my_save_extra_field' );
В этом примере мы создаем функцию my_save_extra_field()
, которая сохраняет значение дополнительного поля my_extra_field
в базу данных. Хук user_register
используется для связи функции с событием сохранения формы регистрации.
Обратите внимание, что во всех трех примерах мы используем поле my_extra_field
. Это название может быть изменено на любое другое, которое вы выбрали для дополнительного поля.