Comment changer le mot de passe d'un utilisateur par programme

17

J'essaie de créer une page de profil totalement différente (pas celle fournie par Wordpress), car la présentation et la convivialité de la page de profil par défaut sont trop "Wordpress" pour les utilisateurs. Maintenant, je réussis à présenter une page qui peut modifier les métadonnées de l'utilisateur comme le prénom, le nom, la ville, le code postal, etc.

Maintenant, ce qui m'a dérouté, c'est de changer le mot de passe de l'utilisateur. Existe-t-il une fonction wordpress intégrée, par exemple change_user_password ($ user_id, $ new_password)? Je suis surpris de ne pouvoir rien chercher qui puisse faire ça.

Le pire vient au pire que je fais UPDATE wp_users SET user_pass = md5($new_password) WHERE ID = $user_id, mais je serais vraiment étonné s'il n'y a pas de fonction pour celui-ci.

Ardee Aram
la source
1
md5pour les mots de passe dans WordPress est obsolète (mais toujours rétrocompatible - la prochaine fois que le mot de passe de connexion des utilisateurs sera ré-haché et ré-enregistré). Il est préférable de passer par l'API pour utiliser le schéma de hachage actuel et plus complexe.
Rarst
Ouais, je pense aussi. Les mots de passe stockés dans la base de données ne correspondent pas à un MD5 avec le mot de passe entrant. Alors oui, c'est en effet remanié.
Ardee Aram

Réponses:

23
wp_set_password( $password, $user_id );

Voir la référence pour plus de détails.

Rarst
la source
1
J'ai voté cela essentiellement parce que cela entraîne une seule requête SQL. Excellent, si le mot de passe est, tout ce que vous voulez mettre à jour. wp_update_userentraîne l'exécution d'environ 14 requêtes.
John