j'essaie de créer un plugin d'utilisateurs d'approbation simple pour annuler ou approuver un nouvel utilisateur. J'ai donc utilisé user_status par défaut pour le faire. Ce que je demande, comment puis-je arrêter le formulaire de connexion pour enregistrer la session et ajouter un message d'erreur si user_status = 0 , quelque chose comme ca
if($user_status == '0'){
//stop login sessiong
echo $error_msg.'waiting for approval';
}else{
//run session
}
y'a-t'il un quelconque moyen d'y arriver
Le champ user_status
n'est pas utilisé par le noyau, vous pouvez donc l'utiliser à vos propres fins. Bien qu'il puisse y avoir des effets secondaires si WP décide de le réutiliser ultérieurement.
Le filtre authenticate
se déclenche avant l'authentification de l'utilisateur. Vous pouvez vous connecter à ce filtre et renvoyer un objet WP_Error
pour empêcher l'utilisateur de se connecter.
function wpse_293904_authenticate( $user, $username, $password ) {
$user_status = get_custom_user_status_from_username( $username );
if( ! $user_status ) {
$error = new WP_Error();
$error->add( 403, 'Oops. Some error message.' );
return $error;
}
return $user;
}
add_filter( 'authenticate', 'wpse_293904_authenticate', 20, 3 );