密码重置后WordPress重定向

时间:2013-01-24 作者:Joshc

我希望能够重定向到get_bloginfo(\'url\'); 重置密码后。

但我一生都找不到任何简单的答案或功能来做到这一点。

有人知道这是否可行吗?

谢谢Josh

5 个回复
最合适的回答,由SO网友:Pontus Abrahamsson 整理而成

这里有一个简单的解决方案。我迷上了login_headerurl. 也许有一个更好的钩子,但它是有效的,把它放在你的函数中。php:

function wpse_lost_password_redirect() {

    // Check if have submitted 
    $confirm = ( isset($_GET[\'checkemail\'] ) ? $_GET[\'checkemail\'] : \'\' );

    if( $confirm ) {
        wp_redirect( home_url() ); 
        exit;
    }
}
add_action(\'login_headerurl\', \'wpse_lost_password_redirect\');
它做什么,它就运行什么login_headerurl 并检查提交有效用户名或电子邮件后获得的GET参数“checkedmail”。然后使用awsome函数重定向wp_redirecthome_url.

UPDATE after comment

如果要在提交新密码后重定向用户,只需使用挂钩password_reset 以下是一个示例:

function wpse_lost_password_redirect() {
    wp_redirect( home_url() ); 
    exit;
}
add_action(\'after_password_reset\', \'wpse_lost_password_redirect\');

SO网友:r00tAcc3ss

“正确”答案在这里不起作用,因为“password\\u reset”操作在重置密码之前触发。

在更新之前,我修改了第一个答案。

function wpse_lost_password_redirect() {

    // Check if have submitted
    $confirm = ( isset($_GET[\'action\'] ) && $_GET[\'action\'] == resetpass );

    if( $confirm ) {
        wp_redirect( home_url() );
        exit;
    }
}
add_action(\'login_headerurl\', \'wpse_lost_password_redirect\');
编辑:没有足够的代表发表评论,所以我将此作为新答案发布。

SO网友:bobbingwide

我看不出“评论后更新”的答案是怎么回事。

“password\\u reset”钩子的文档中说“在重置用户密码之前触发”
如果重定向,则退出密码不会更改。

由于我有类似的需求,我制定了解决问题的方案。我们仍然会响应“password\\u reset”挂钩,但不是立即执行重定向,而是为“login\\u url”过滤器添加挂钩。在这个过滤器中,我们在用户登录后将重定向添加到主页。

 add_action( "password_reset", "rngs_password_reset", 10, 2 );

/**
 * Implement "password_reset" for RNGS
 *
 * After a password reset has been performed we want the Log in link to redirect the user to the home url.
 * When we see this action being run we know that we should be filtering "login_url" to add the redirect the home page.
 * We don\'t filter "login_url" any other time. 
 *
 * @param WP_User $user - the user object
 * @param string $new_pass - the new password
 *  
 */
function rngs_password_reset( $user, $new_pass ) {
  add_filter( "login_url", "rngs_login_url", 10, 2 );
}

/**
 *  Implement "login_url" filter for RNGS
 *
 * Redirect the user to the home page after logging in
 *
 * @TODO - make this an option field that controls where the logged in user goes
 * @TODO - dependent upon role?
 * 
 * @param string $login_url - the original login_url which is not expected to include "redirect_to" or "reauth"
 * @param string $redirect - expected to be null/blank
 */
function rngs_login_url( $login_url, $redirect ) {
  $home_redirect = home_url();
  $login_url = add_query_arg(\'redirect_to\', urlencode( $home_redirect ), $login_url);
  return( $login_url );
} 

SO网友:rsigg

也许我在问题中遗漏了什么,但是使用lostpassword_redirect 滤器

add_filter( \'lostpassword_redirect\', \'my_redirect_home\' );

function my_redirect_home( $lostpassword_redirect ) {
    return home_url();
}
更多信息:https://codex.wordpress.org/Plugin_API/Filter_Reference/lostpassword_redirect

SO网友:Michael Rogers

Rediret to是一种wordpress功能,您无需为其创建插件,只需添加;redirect\\u to=url,它将正常工作。示例:

echo \'<a href="\'home_url().\'/wp-login.php?action=lostpassword&amp;redirect_to=\'.get_bloginfo(\'url\').\'?sli=lost" rel="nofollow" title="Forgot Password">\'Forgot Password\'</a>\';

结束

相关推荐

How to check user's password?

我试图检查我在WP multisite上创建的用户的密码,但我在sw_users / user_pass 对在用户注册过程中收到的密码进行MD5哈希运算时,得到的密码不匹配。下面是表格中的一个示例sw_users:(11,\'user5\',\'P$BiwskWiaqZIQLzDUTAhSyvACr0Jpnl\',\'user5\',\'[email protected]“,”,“2012-03-28 11:44:08”,“”,0,“用户5”,0,0),所以我假设$P$BiwskWiaqZIQLzDUTAh