У меня есть эта страница, созданная вручную:
$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!";
}
... все кажется правильным, но оно не работает при вызове из приложения, но если я захожу вручную, domain.com/forgot-password?user_login=username
оно отправляет сообщение о сбросе пароля нормально.
app
вы имеете в видуplugin
Ответы:
Так что, если вы хотите отправить эту ссылку для сброса пароля и у вас есть доступ к базе кода, вы можете использовать следующий фрагмент, и вы можете изменить его дальше, на самом деле этот код является слегка измененной версией
wp-login.php
источник
Предыдущий ответ не работал для меня (говорит, что код неверен, на странице входа в wp), вероятно, потому что ответу 1,5 года, и что-то изменилось в коде WP, поэтому я немного обновил этот код (также из wp-login.php), вот оно:
источник
$key
обработке и обновленииuser_activation_key
.Я заметил, что после обновления WordPress до версии 4.3 вышеупомянутое больше не работает для моего пользовательского плагина. Это всегда сообщало бы, что ключ был недействителен.
Изменить:
в
Это исправило проблему для меня, надеюсь, это поможет кому-то еще
источник
Ни один из приведенных выше ответов не сработал для меня, поэтому я заглянул в wp-login.php для их функции сброса по умолчанию. Они использовали функцию get_password_reset_key ($ userData). В случае, если кто-то застрял в ответах выше, вот мое решение:
источник
Wordpress 4.3.1
источник
Попробуй это
вместо того
Это сработало у меня (WordPress 4.3.1)
источник