Mam tę ręcznie utworzoną stronę:
$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!";
}
... wszystko wydaje się właściwe, ale nie działa, gdy jest wywoływane z aplikacji, ale jeśli odwiedzę domain.com/forgot-password?user_login=username
go ręcznie , wyśle e-mail z resetem hasła.
app
masz na myśliplugin
Odpowiedzi:
Jeśli więc chcesz wysłać link resetowania hasła i masz dostęp do bazy kodu, możesz użyć następującego fragmentu kodu i możesz go dalej modyfikować, w rzeczywistości ten kod jest nieco zmodyfikowaną wersją
wp-login.php
źródło
Poprzednia odpowiedź nie działała dla mnie (mówi, że kod jest nieprawidłowy, na stronie logowania wp), prawdopodobnie dlatego, że odpowiedź ma 1,5 roku i coś zostało zmienione w kodzie WP, więc zaktualizowałem ten kod nieco (również z wp-login.php), oto:
źródło
$key
przetwarzaniu i aktualizacjiuser_activation_key
.Zauważyłem, że po aktualizacji WordPressa do wersji 4.3 powyższe nie działa już w przypadku mojej niestandardowej wtyczki. Zawsze informowałoby, że klucz jest nieprawidłowy.
Zmiana:
do
To rozwiązało problem, mam nadzieję, że pomoże komuś innemu
źródło
Żadna z powyższych odpowiedzi nie działała dla mnie, więc sprawdziłem wp-login.php pod kątem ich domyślnej funkcji resetowania. Użyli funkcji get_password_reset_key ($ userData). Na wypadek, gdyby ktoś utknął na powyższych odpowiedziach, oto moje rozwiązanie: -
źródło
Wordpress 4.3.1
źródło
Spróbuj tego
zamiast
To zadziałało (wordpress 4.3.1)
źródło