Eu tenho esta página criada manualmente:
$user_login = sanitize_text_field( $_GET['user_login'] );
if ( username_exists( $user_login ) || email_exists($user_login) ) { ?>
<!--Everything has been validated, proceed ....-->
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
function submit()
{
var f = document.getElementById('lostpasswordform');
f.onclick = function () { };
document.lostpasswordform.submit();
}
</script>
</head>
<body onload="submit()">
<form name="lostpasswordform" id="lostpasswordform" action="<?php echo esc_url( site_url( 'wp-login.php?action=lostpassword', 'login_post' ) ); ?>" method="post">
<input type="hidden" name="user_login" id="user_login" class="input" value="<?php echo ($user_login); ?>" />
<?php do_action('lost_password'); ?>
</form>
</body>
</html>
<?php
echo "SUCCESS";
exit();
} else {
echo "Entered Username or Email was incorrect, please try again!";
}
... tudo parece certo, mas não funciona quando chamado de um aplicativo, mas se eu o visitar manualmente domain.com/forgot-password?user_login=username
, enviará o e-mail de passe de redefinição corretamente .
app
que você quer dizerplugin
Respostas:
Portanto, se você quiser enviar o link de redefinição de senha e tiver acesso à base de código, poderá usar o seguinte snippet e modificá-lo ainda mais, na verdade esse código é uma versão ligeiramente modificada do
wp-login.php
fonte
A resposta anterior não funcionou para mim (diz que o código é inválido, na página de login do wp), provavelmente porque a resposta tem 1,5 anos e algo mudou no código WP, por isso atualizei esse código um pouco (também em wp-login.php), aqui está:
fonte
$key
processamento e atualizaçãouser_activation_key
.Percebi que, depois de atualizar o WordPress para a versão 4.3, os itens acima não funcionavam mais no meu plug-in personalizado. Sempre informaria que a chave era inválida.
Mudança:
para
Isso corrigiu o problema para mim, espero que ajude outra pessoa
fonte
Nenhuma das respostas acima funcionou para mim, então procurei no wp-login.php a funcionalidade de redefinição padrão. Eles usaram a função get_password_reset_key ($ userData). No caso de alguém ficar preso nas respostas acima, aqui está a minha solução: -
fonte
Wordpress 4.3.1
fonte
Tente isto
ao invés de
Funcionou comigo (wordpress 4.3.1)
fonte