2016-11-22 73 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');