web-dev-qa-db-fra.com

Quel crochet faut-il utiliser pour valider les champs de formulaire personnalisé du formulaire de connexion?

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?

3
greenbandit

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.
1
fuxia

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.

0
Giraldi