EC-CUBE

EC-CUBE(2.13.5)のログアウトボタンを実装する方法

ECサイトを簡単に作れるEC-CUBEでログアウトボタンを実装しました。

EC-CUBE2.13.5でログアウトボタンを実装したかったので実装してみたよ。
マイページに標準でないので追加したりできるのでやってみてね!

 

EC-CUBE(2.13.5)のログアウトボタンを実装する方法

パラメータで「mode=logout」になった際に、ログイン情報を破棄しログインページにリダイレクトするよう実装していきます。
※バグった際は自己責任ですので、必ずバックアップを取って作業してください。

 

ファイルを変更する箇所

「data/class_extends/page_extends/mypage/LC_Page_Mypage_Ex.php」を編集します。
※「data/class/pages/mypage/LC_Page_Mypage.php」でも実装は可能ですが、アップデートなどでデフォルトに上書きされてしまうので、アップデートされても対応できる「LC_Page_Mypage_Ex.php」を編集します。

「LC_Page_Mypage.php」内の「public function action()」内のコードをコピペし、56~60行を追記します。

class LC_Page_Mypage_Ex extends LC_Page_Mypage
{
    /**
     * Page を初期化する.
     *
     * @return void
     */
    function init()
    {
        parent::init();
    }

    /**
     * Page のプロセス.
     *
     * @return void
     */
    function process()
    {
        parent::process();
    }

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

        $objCustomer = new SC_Customer_Ex();
        $customer_id = $objCustomer->getValue('customer_id');

        //ページ送り用
        $this->objNavi = new SC_PageNavi_Ex($_REQUEST['pageno'],
                                            $this->lfGetOrderHistory($customer_id),
                                            SEARCH_PMAX,
                                            'eccube.movePage',
                                            NAVI_PMAX,
                                            'pageno=#page#',
                                            SC_Display_Ex::detectDevice() !== DEVICE_TYPE_MOBILE);

        $this->arrOrder = $this->lfGetOrderHistory($customer_id, $this->objNavi->start_row);

        switch ($this->getMode()) {
            case 'getList':
                echo SC_Utils_Ex::jsonEncode($this->arrOrder);
                SC_Response_Ex::actionExit();
                break;
            default:
                break;
        }
        // 支払い方法の取得
        $this->arrPayment = SC_Helper_Payment_Ex::getIDValueList();
        // 1ページあたりの件数
        $this->dispNumber = SEARCH_PMAX;

        // ログアウト実装
        if ($_GET['mode'] == 'logout') {
            $objCustomer->EndSession();
            header('Location: index.php');
        }

        $this->json_payment = SC_Utils::jsonEncode($this->arrPayment);
        $this->json_customer_order_status = SC_Utils::jsonEncode($this->arrCustomerOrderStatus);
    }
}

これでサーバにアップロードすれば下準備は完了。

ログアウトボタンを実装したい部分に、

<a href="index.php?mode=logout" class="<!--{if $tpl_mypageno == 'refusal'}--> selected<!--{/if}-->">ログアウト</a>

 

このコードを追加してあげるとログアウトボタンの完成!

お仕事・ご依頼募集中!!

イラスト制作、webサイト制作、商品のご紹介など様々なお仕事を募集しております! 下記リンクよりお気軽にご連絡ください!

お仕事・ご依頼について