【问题标题】:Wordpress Update User's Password with PHPWordpress 使用 PHP 更新用户密码
【发布时间】:2011-05-21 18:26:50
【问题描述】:

我有一个使用 Wordpress 进行身份验证的网络应用程序。我在那里有一个帐户选项页面。打开时,它包含一个密码更新部分。我将此发布到我的 PHP 脚本并运行此代码:

wp_update_user(array('ID' => getUserIDWP(), 'user_pass' => $_POST['newpass']))

它使我退出当前的 Wordpress 会话,但是当我尝试使用在此处指定的密码重新登录时,它说我输入了错误的密码。如果有人能对这个主题有所了解,我将不胜感激。

注意:getUserIDWP() 函数是 $current_user->ID; 和其他相关内容的别名。

【问题讨论】:

  • 你有 wp 的哪个版本?我在 usermeta 表中没有看到“user_pass”条目。
  • 我实际上不记得我使用的是哪个版本 - 但当我问这个问题时它是最新版本。可能是早期的 3.0 或 3.1。

标签: php wordpress passwords


【解决方案1】:

试试下面的代码,它不会在密码更改后让你退出,它也适用于 Ajax。此外,之后无需重置 cookie/会话。

$userdata['ID'] = 1; //user ID
$userdata['user_pass'] = 'new_password';
wp_update_user( $userdata ); // this will handle encryption and everything

干杯

【讨论】:

  • wp_set_password 清除用户缓存,因此您将被注销。如果你想重新登录,你可以这样做:wp_set_current_user ( wp_get_current_user()->ID ); wp_set_auth_cookie ( wp_get_current_user()->ID );
  • @geraldo 请参考更新后的答案,如果您不希望用户退出,这将是一个更好的解决方案。
【解决方案2】:

使用update_user_metawp_update_user 更新'user_pass' 对我有用:

update_user_meta($user_id, 'user_pass', $newpassword);
wp_update_user( array ('ID' => $user_id, 'user_pass' => $newpassword) ) ;

【讨论】:

  • wp_set_password 有效吗?你需要先对新密码进行哈希处理吗?
【解决方案3】:

我知道已经晚了,但是……

我遇到了类似的问题,结果发现在 usermeta 表中有一个名为 user_pass 的条目。我删除了那个条目,我可以再次登录。

也许这会对某人有所帮助 - 我花了最后一个小时试图找出我做错了什么。

【讨论】:

    猜你喜欢
    • 2021-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    相关资源
    最近更新 更多