Intereting Posts
Загружайте только определенных художников на этой странице. Добавить виджеты нижнего колонтитула Какой SQL-запрос выполняет простой поиск и замена Сохранить значение в файле cookie Обновить значение настраиваемого поля Загрузка подстраниц в меню вызывает загрузку на сервер? Добавить размер изображения в вкладку «Библиотека мультимедиа» на носителе загрузки Настройка URL-адреса WordPress WordPress как веб-приложение с интенсивным использованием данных Невозможно отобразить индивидуальные размеры эскизов сообщений в качестве фоновых изображений «Дублирующие» сообщения появляются с 3.1.2 Обновление Добавить уникальный URL-адрес для предварительного просмотра Создать страницу с помощью специального скрипта php и извлеченных данных Odd map_meta_cap $ args on post edit – иногда целое число, иногда строка Получить URL-адреса изображений в галерее?

Какой крючок следует использовать для проверки пользовательских полей формы в форме входа?

Я добавил настраиваемое поле ввода с помощью login_form hook.

Итак, мне нужно обработать данные для проверки. Я использовал lostpassword_post для lostpassword_form и отлично работает, но я не могу найти крючок для проверки моих данных в форме входа в систему.

Есть идеи?

Solutions Collecting From Web of "Какой крючок следует использовать для проверки пользовательских полей формы в форме входа?"

Используйте действие 'login_init' чтобы поймать все вызовы wp-login.php .

Образец кода:

 add_action( 'login_init', 'wpse_51227_validate_custom_field' ); function wpse_51227_validate_custom_field() { if ( ! isset ( $_POST['special_custom'] ) return; if ( ! is_numeric( $_POST['special_custom'] ) // handle the error } 

Доступны две важные глобальные переменные:

  • $errors – это экземпляр WP_Error . Возможно, вы хотите использовать его для хранения данных об ошибках.
  • $action – текущее действие. Возможно, вы хотите оставить его для login в login чтобы предотвратить перенаправление, если вход пользователя недействителен.

На самом деле это не проверено, но я просто догадываюсь, как я это делаю с помощью страниц регистрации и профиля .

Попробуйте что-то вроде этого:

 function my_login_errors( $errors ) { if ( empty( $_POST['custom_field'] ) ) $errors->add( 'empty_custom_field', '<strong>ERROR</strong>: Please enter some info.' ); return $errors; } add_filter( 'login_errors', 'my_login_errors' ); 

Примечание. Измените часть custom_field и сообщение соответствующим образом.