私は同様の問題を抱えていましたが、私はそれを解決しました。ここでは解決できることはありますが、それはうまく動作し、自分のプロジェクトにすでに使用しています。もしあなたがそれについていれば教えてください。
if($_POST['submitpassword'])
{
$passdata = $_POST;
unset($_POST,$passdata['submitpassword']);
$user = wp_get_current_user(); //trace($user);
$x = wp_check_password($passdata['old_password'], $user->user_pass, $user->data->ID);
if($x)
{
if(!empty($passdata['new_password']) && !empty($passdata['confirm_password']))
{
if($passdata['new_password'] == $passdata['confirm_password'])
{
$udata['ID'] = $user->data->ID;
$udata['user_pass'] = $passdata['new_password'];
$uid = wp_update_user($udata);
if($uid)
{
$passupdatemsg = "The password has been updated successfully";
$passupdatetype = 'successed';
unset($passdata);
} else {
$passupdatemsg = "Sorry! Failed to update your account details.";
$passupdatetype = 'errored';
}
}
else
{
$passupdatemsg = "Confirm password doesn't match with new password";
$passupdatetype = 'errored';
}
}
else
{
$passupdatemsg = "Please enter new password and confirm password";
$passupdatetype = 'errored';
}
}
else
{
$passupdatemsg = "Old Password doesn't match the existing password";
$passupdatetype = 'errored';
}
}
ポイント答え –
こんにちは、[ 'new_passwordを']より良いが$ passdataように二つのパスワードを比較するということではありません=== $ passdataに素早くてくれてありがとう['パスワードを認証する'] ? – stviper