クローズドサイトプラグインを使って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; }
これでログイン後、トップページへ画面遷移されるようになります。