👈

【WP-Members】ログイン後に遷移元ページにリダイレクト

2022/05/25に公開1

実現したいこと

WordPressで会員制サイトを実現するプラグイン「WP-Members」で、ユーザーがログインした場合にログインページの前のページにリダイレクトさせたい。

①セッションを使って遷移元ページを保存

リダイレクト先として指定するページをセッションで取得しておきます。
headerにその設定を追加します。

header.php
<?php  
if(is_page(ログインページのID)){
} else {
session_start();
unset($_SESSION['expage']);
$_SESSION['expage'] = $_SERVER["REQUEST_URI"];
}
?>

②ログイン後に遷移元ページにリダイレクトさせる

①で取得していたスラッグをもとにリダイレクトさせます。
以下のコードでは、正しく遷移もとページが取得できている場合は、ログイン後に遷移元ページにリダイレクト。できていない場合は、ホームページにリダイレクトさせるようにしています。

functions.php
function my_login_redirect( $redirect_to, $user_id ) {
	$ref = $_SESSION['expage'];
  if ($ref) {
	return $ref;
  } else {
	return home_url();
  }
  }
  add_filter( 'wpmem_login_redirect', 'my_login_redirect', 10, 2 );

条件部分をカスタマイズすれば様々な挙動が実現できると思います。

Discussion