Como alterar a senha de um usuário programaticamente


16

Estou tentando criar uma página de perfil totalmente diferente (não a fornecida pelo Wordpress), pois o layout e a aparência da página de perfil padrão são "Wordpress" demais para os usuários. Agora, consigo apresentar uma página que pode modificar os metadados do usuário, como nome, sobrenome, cidade, CEP etc.

Agora, o que me surpreendeu foi mudar a senha do usuário. Existe alguma função interna do wordpress, digamos change_user_password ($ user_id, $ new_password)? Estou surpreso por não conseguir procurar nada que faça isso.

O pior é que estou fazendo um UPDATE wp_users SET user_pass = md5($new_password) WHERE ID = $user_id, mas ficaria realmente surpreso se não houvesse função para este.


11
md5para senhas no WordPress foi preterido (mas ainda é compatível com versões anteriores - na próxima vez que a senha de login do usuário for redistribuída e salva novamente). É melhor passar pela API para que o esquema de hash atual e mais complexo seja usado.
Rarst

Sim, eu também acho isso. As senhas armazenadas no banco de dados não correspondem a um MD5 com a senha recebida. Então, sim, é realmente reformulado.
Ardee Aram 28/02

Respostas:


22
wp_set_password( $password, $user_id );

Veja a referência para detalhes.


11
Eu votei isso essencialmente porque isso resulta em uma única consulta sql. Excelente, se a senha for, tudo o que você deseja atualizar. wp_update_userresulta em cerca de 14 consultas em execução.
John John

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.