EC-CUBE(2.13)で会員ログイン後の画面遷移をトップページに固定する

クローズドサイトプラグインを使ってEC-CUBE(2.13)でクローズド通販サイトを作った時のメモ。

クローズドサイトプラグインを使った場合、未ログインユーザーがアクセスするとログインページにリダイレクトされます。そしてログインページでログインをするとマイページが表示されます。

通常の通販サイトですとこれで良いと思いますが、今回クローズドサイトを作っているのでログイン後の画面遷移をトップページ変更しました。

変更方法は以下の通りです。

LC_Page_Mypage_Login_Exクラスに以下のメソッドを追加。

/**
 * Page のAction.
 *
 * @return void
 */
public function action()
{
    //決済処理中ステータスのロールバック
    $objPurchase = new SC_Helper_Purchase_Ex();
    $objPurchase->cancelPendingOrder(PENDING_ORDER_CANCEL_FLAG);

    // ログインページから画面遷移の場合はトップページへ
    if ($this->lfCheckReferer()) {
        SC_Response_Ex::sendRedirect(TOP_URL);			
    }else{
        SC_Response_Ex::sendRedirect(DIR_INDEX_PATH);
    }
}

/**
 * login.php からの遷移の妥当性をチェックする
 *
 * 以下の内容をチェックし, 妥当であれば true を返す.
 * 1. ログインページからの遷移かどうか
 * 2. PC及びスマートフォンかどうか
 *
 * @access protected
 * @return boolean login.php からの妥当な遷移であれば true
 */
public function lfCheckReferer()
{
    $arrRefererParseUrl = parse_url($_SERVER['HTTP_REFERER']);
    $referer_urlpath = $arrRefererParseUrl['path'];

    $login_urlpath = ROOT_URLPATH . 'mypage/login.php';

    $allowed_urlpath = array(
        $login_urlpath,
    );

    if (SC_Display_Ex::detectDevice() !== DEVICE_TYPE_MOBILE
        && !in_array($referer_urlpath, $allowed_urlpath)) {
        return false;
    }

    return true;
}

これでログイン後、トップページへ画面遷移されるようになります。

 

お気軽にコメントをどうぞ

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください