在Theme My Login插件中,如果用户忘记了他们的密码,他们会通过电子邮件发送一个重置密码链接,其中包含一个密钥和登录名。URL的形式为:
example.com/resetpass/?关键= u5f9Y4U0FaMrpgy7RU&登录= henrywright
访问链接后,如果URL中的key
或login
无效,则将用户重定向到密码丢失页面。重定向的代码可以在这里找到,包括/class-theme-my-login.php。具体来说,在template_redirect()
函数中(从第247行开始),您应该看到:
if ( is_wp_error( $user ) ) {
$redirect_to = site_url( 'wp-login.php?action=lostpassword&error=invalidkey' );
wp_redirect( $redirect_to );
exit;
}
如果key
或login
变量无效,我希望用户保持在同一页面上,即不采取任何行动。如何禁用重定向?
到目前为止,我已经尝试删除wp_redirect()
的工作,但不是很好的做法,因为我宁愿不修改插件核心。
我发现解决方案是tml_request_{action}
钩子。例子:
function tml_resetpass_action() {
// do something
}
add_action( 'tml_request_resetpass', 'tml_resetpass_action' );
裁判:http://www.jfarthing.com/development/theme-my-login/action-reference/