2016-11-22 69 views
1

通过您的论坛,我发现这个代码,以及它肯定重定向,但它重定向之前,人有机会提交密码重置。重设密码后重定向到一个独特的页面

基本上,我希望用户能够去

网址:网站/ WP-login.php中行动= lostpassword

提交了密码重置,然后重定向到

网址:网站/ Unique_Page

任何智慧将不胜感激。谢谢!

function possibly_redirect(){ 
    global $pagenow; 
    if('wp-login.php' == $pagenow) { 
    if (isset($_POST['wp-submit']) || // in case of LOGIN 
     (isset($_GET['action']) && $_GET['action']=='logout') || // in case of LOGOUT 
     (isset($_GET['checkemail']) && $_GET['checkemail']=='confirm') || // in case of LOST PASSWORD 
     (isset($_GET['checkemail']) && $_GET['checkemail']=='registered')) return; // in case of REGISTER 
    else wp_redirect(home_url()); // or wp_redirect(home_url('/login')); 
    exit(); 
    } 
} 
add_action('init','possibly_redirect'); 
+0

使用'&&'(AND)而不是'||'(OR)。 –

+0

你好,弗雷德,谢谢。我改变了“||”到“&&”,但“忘记的密码链接仍然重定向到主页面。 – user3299173

+0

了解它在function.php文件中使用不同的代码:-)谢谢你的时间https://codex.wordpress .org/Plugin_API/Filter_Reference/lostpassword_redirect – user3299173

回答

1

你的函数重定向除非这些行动(在登录的情况下或后)通过URL参数直接传递。你想要的是检查checkemail然后重定向。我用这里的login_head动作,不知道是否有一个更好的,但它的工作原理:

function redirect_after_lost_password() { 
    if(isset($_GET['checkemail']) && $_GET['checkemail'] === 'confirm') { 
     wp_redirect(home_url('/yourpage')); 
     exit; 
    } 
} 
add_action('login_head', 'redirect_after_lost_password'); 

如果你想将用户重定向后的密码重置时,lostpassword_redirect filter是你的朋友:

function redirect_after_password_reset($lostpassword_redirect) { 
    return home_url('/yourpage'); 
} 
add_filter('lostpassword_redirect', 'redirect_after_password_reset');