Intereting Posts
Где источник этой формы ввода? Как добавить условия в мой tax_query, основанный на текущем сообщении Почему я не могу использовать константу класса как текстовый домен? Загружать сообщения в боковую панель и paginate через ajax? ASCII-заголовки с плагином Yoast SEO Простая страница сайта с закрытой панелью WordPress Когда я пишу сообщения, мне обычно приходится использовать нераспадающийся элемент пространства, чтобы сохранить поля между предложениями. Зачем? Действие «После загрузки файла» Недопустимый аргумент, предоставленный в register_taxonomy $ args-> таксономии Как создать сообщение на основе данных в таблице? Нужна помощь в разбивке на страницы Отображение изображения на основе значения поля Как отслеживать короткий код для его функциональности Организовать существующие сообщения из области администрирования в новую категорию Показать сообщения в пользовательских типах сообщений

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

Я добавил настраиваемое поле ввода с помощью 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 и сообщение соответствующим образом.