当key或Login URL变量无效时,如何在Theme My Login WordPress插件中停止重定向


How to stop redirection in the Theme My Login WordPress plugin when the key or login URL variables are invalid?

在Theme My Login插件中,如果用户忘记了他们的密码,他们会通过电子邮件发送一个重置密码链接,其中包含一个密钥和登录名。URL的形式为:

example.com/resetpass/?关键= u5f9Y4U0FaMrpgy7RU&登录= henrywright

访问链接后,如果URL中的keylogin无效,则将用户重定向到密码丢失页面。重定向的代码可以在这里找到,包括/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;
}

如果keylogin变量无效,我希望用户保持在同一页面上,即不采取任何行动。如何禁用重定向?

到目前为止,我已经尝试删除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/