[EC-CUBE 2.13]ログインしている時としていない時のヘッダーの表示内容を変える

  • 公開日:2015/3/5
この記事は最終更新日から9年以上が経過しています。

ヘッダーに「ログイン」ボタンを表示しています。
これが、ログインした状態でも表示されていると不自然なので、ログインした状態では「Myページ」に変更する方法のメモです。

ログイン判定フラグを追加

data/class/pages/LC_Page.phpに以下を追加します。

// 店舗基本情報取得
$this->arrSiteInfo = SC_Helper_DB_Ex::sfGetBasisData();

// トランザクショントークンの検証と生成
$this->doValidToken();
$this->setTokenTo();

// ローカルフックポイントを実行.
$this->doLocalHookpointBefore($objPlugin);

//ログイン判定
$objCustomer = new SC_Customer();
if ($objCustomer->isLoginSuccess()) {
	$this->tpl_login = true;
}

ヘッダーにログイン判定処理を

ログイン判定できるフラグを使って、表示を切り替えます。

<!--{if $tpl_login}-->
    <div>ここにログインしている時の記述をする</div>
<!--{else}-->
    <div>ここにログインしていない時の記述をする</div>
<!--{/if}-->

これで、ログイン前は「ログイン」「新規会員登録」を表示しておき、ログイン後は「MYページ」「お気に入り」「購入履歴」などに切り替えたりなど、ショップに合わせたカスタマイズができるようになります。

ログイン後に「ようこそ、○○さん!」といったふうに名前を表示したい場合は、ちょっと追記が必要になります。

ログイン判定フラグ追加時に名前を取得する

さきほどの data/class/pages/LC_Page.php に以下を追加します。

//ログイン判定
$objCustomer = new SC_Customer();
if ($objCustomer->isLoginSuccess()) {
	$this->tpl_login = true;
        $this->tpl_name1 = $objCustomer->getValue('name01');
        $this->tpl_name2 = $objCustomer->getValue('name02');
}

ヘッダーでの表示は、以下のように記述します。

<p>ようこそ、<!--{$tpl_name1|h}-->&nbsp;<!--{$tpl_name2|h}-->&nbsp;様さん</p>