如何通过代码启动密码重置流程

时间:2017-04-18 作者:Hardik Trivedi

我有一个系统,当用户进行购买时,我会通过电子邮件ID创建用户。

我想在他们单击链接时向他们发送发送密码的链接,因此选项是我在代码中启动密码重置过程,并且我可以创建一个URL来启动该过程,因此用户将通过

http://myurl.com/my-account/lost-password/?key=U7EJyOI2o84ylp99DuoU&[email protected]
我试图通过以下方式生成密码重置密钥:

get_password_reset_key(\'[email protected]\');
但当我在URL中添加该键时,wordpress说Invalid key

我想我的代码流中缺少了一些可能将该键与用户关联的东西,因此当用户单击该键时,该键在wordpress看来必须是有效的。

简而言之,我想清除wordpress为用户生成重置密钥的阶段,当我通过URL检查该密钥时,该密钥必须有效,以便可以进行密码重置。

请帮帮我。

1 个回复
SO网友:ahendwh2

根据WordPress Code Reference 必须将用户对象传递给get_password_reset_key() 而不是邮件地址。也许您的问题的解决方案是:

$user = get_user_by( \'email\', \'[email protected]\' );
$reset_key = get_password_reset_key( $user );

相关推荐

管理页面帖子ID wp_Reset_postdata不起作用

有2个插件,为WP中的一些额外woocommerce自定义选项提供电源。两个钩子都连接到加载的plugins\\u。从外观上看,第一个插件并没有重置为原始的post数据。一个插件是带有post metaboxes的下拉列表示例。该插件使用WP\\u Query查询数据库,以输出一个选择选项框。我在之后运行wp\\u reset\\u postdata()。第二个插件是一个不同的选择框,它没有使用正确的post id进行拉取,因此元数据永远不会正确保存,因为id不正确,也永远不会在加载时选择正确的选项。禁用