J'ai configuré le formulaire d'inscription à l'aide de ce bloc de code:
wp_create_user($username, $password, $email);
Notez que j'ai fait toutes sortes de validation avant d'utiliser ce code. L'enregistrement fonctionne bien maintenant. Mais il enregistre et active le compte utilisateur immédiatement après que le formulaire soit soumis.
Ce que je veux, c'est confirmer l'email d'un utilisateur avant qu'il puisse utiliser le compte. L'utilisateur doit vérifier son compte de messagerie et cliquer sur le lien de confirmation pour que le compte de l'utilisateur soit enregistré/actif.
J'ai dû implémenter ceci pour un site client et j'ai fini par créer mon propre système.
Je hache le courrier électronique et l'horodatage créé par la date et le stocke comme clé dans usermeta, puis je envoie cette clé à l'adresse électronique de l'utilisateur sous la forme d'un lien. Le lien pointe vers une page où j'ai créé une règle de réécriture et ajouté ma propre requête var afin que je puisse créer des liens Nice site.com/authorize/{key}
.
Quand ils cliquent sur le lien, je cherche l'utilisateur correspondant avec cette clé et la supprime pour qu'ils puissent maintenant se connecter. Je les connecte également ici avec wp_signon et utilise wp_redirect pour les envoyer à un message de bienvenue. page.
Sur mon formulaire de connexion personnalisé, je vérifie si la clé a été supprimée pour un utilisateur avant de lui permettre de se connecter.
Il peut y avoir un plugin pour activer ce même processus, ou peut-être une partie peut être obtenue via des hooks où je viens de le réécrire, je ne suis pas sûr, je n'ai pas exploré le faire de cette façon à cause d'exigences uniques supplémentaires pour ce projet particulier.