2016-11-22 9 views
1

あなたのフォーラムを見て、私はこのコードを見つけましたが、間違いなくリダイレ​​クトされますが、パスワードリセットのために送信する前にリダイレクトしています。パスワードリセット後にユニークなページにリダイレクト

は基本的に、私は、ユーザーが

URLに行くことができるようにしたい:?Webサイト/ WP-login.phpアクションは= lostpassword

パスワードの送信は、その後にリダイレクトリセット

URL:ウェブサイト/ 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

'||'(OR)ではなく、 '&&'(AND)を使用します。 –

+0

こんにちはフレッド、ありがとう。私は "||" "&&"に3つのすべてのスポットで、しかし、 "パスワードを忘れたリンクはまだメインページにリダイレクトされます。 – user3299173

+0

function.phpファイル内の別のコードで動作するようになっています:-)あなたの時間のおかげでhttps://codex.wordpress .org/Plugin_API/Filter_Reference/lostpassword_redirect – user3299173

答えて

1

あなたの機能はない限り、それらのアクションは、URLパラメータ(またはログインの場合は郵便)を介して直接渡されリダイレクトします。あなたが望むのは、checkemailを確認してからリダイレクトすることです。私は1つ、より良いがあるかどうかわからない、ここ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'); 
関連する問題