J'ai ajouté un champ de saisie personnalisé avec login_form
hook.
Donc, je dois traiter les données de publication pour valider. J'ai utilisé le lostpassword_post
pour lostpassword_form
et fonctionne très bien, mais je n'arrive pas à trouver un crochet pour valider mes données au formulaire de connexion.
Des idées?
Utilisez l'action 'login_init'
pour intercepter tous les appels à wp-login.php
.
Exemple de code:
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
}
Deux variables globales importantes sont disponibles:
$errors
est une instance de WP_Error
. Peut-être que vous voulez l'utiliser pour stocker des données d'erreur.$action
est l'action en cours. Peut-être voudrez-vous laisser login
pour empêcher une redirection si la saisie de l'utilisateur n'est pas valide.Je n'ai pas vraiment testé cela, mais je devine juste comment je le fais avec les pages d'enregistrement et de profil .
Essayez quelque chose comme ça:
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' );
Remarque: Modifiez la partie custom_field
et le message en conséquence.