web-dev-qa-db-fra.com

WordPress: obliger les utilisateurs à changer de mot de passe lors de leur première connexion

Les utilisateurs de mon site Web s'inscrivent via un formulaire (Formulaire Gravity). Après avoir été manuellement approuvés, ils reçoivent un nom d'utilisateur (leur adresse électronique) et un mot de passe généré de manière aléatoire.

J'aimerais que ces utilisateurs soient obligés de changer leur mot de passe lors de leur première connexion, est-ce réalisable?

J'ai jeté un coup d'oeil au fil Puis-je forcer un changement de mot de passe? mais cela ne résout pas mon problème.

2
rlsaj

J'ai mis en place un plug-in rapide à l'adresse suivante: https://github.com/lumpysimon/wp-force-password-change en réponse à votre question et à une demande récente du client pour exactement la même chose.

Il ajoute un champ de méta utilisateur lors de l'inscription, puis vérifie la présence de cet utilisateur lorsqu'un utilisateur est connecté. S'il n'est pas présent, il est redirigé vers la page de modification du profil et un avis de l'administrateur est affiché. Une fois qu'ils ont changé leur mot de passe, le champ méta de l'utilisateur est supprimé.

2
Simon Blackbourn

WordPress a ce déjà intégré pour l'essentiel . La façon dont vous traitez le formulaire n'est pas claire, mais lorsque vous enregistrez l'utilisateur, appelez simplement:

update_user_option( $user_id, 'default_password_nag', true, true );

Alternativement (si ce n'est pas possible?) Vous pouvez utiliser un crochet:

add_action('user_register', 'wpse72788_password_nag');
function wpse72788_password_nag( $user_id ){
     update_user_option( $user_id, 'default_password_nag', true, true );
}
8
Stephen Harris