So-net無料ブログ作成

EC-CUBEで会員登録を利用しない方法(EC-CUBE 2.12.3)

ここ数年でEC-CUBEのカスタマイズも増えてきました。

今回やっているのは、とあるツアーのチケット販売。

ツアー終了後にショップシステムを使うかもわからないので、リピーター向けの「会員登録」などということは必要ない。

EC-CUBEは標準でこの会員登録システムが付いているんですが、これがあるために、購入の際に1画面、会員登録確認というステップが増えます。

会員登録画面から「会員登録せずに購入」ボタンだけを表示させるようにすることはできますが、それではこの画面の意味って、1クリックするだけの無駄なページになってしまう。

というわけで、「現在のカゴの中」から「お客様情報入力画面」へダイレクトに飛ぶようにしてみました。

●PC画面用
data/class/pages/shopping/LC_Page_Shopping.php
このファイルで会員登録しない場合の画面を制御しています。
ここで 購入ボタンをクリックした後の動作を判定しているようです。

240行目あたりに以下の記述があります。
会員登録しない場合には、「nonmember」で「お客様情報の入力画面」へ飛ばしています。

// お客様情報入力ページの表示
case 'nonmember':
$this->tpl_mainpage = $nonmember_mainpage;
$this->tpl_title = $nonmember_title;
$this->lfInitParam($objFormParam);
// ※breakなし

default:
// 前のページから戻ってきた場合は, お客様情報入力ページ
if (isset($_GET['from']) && $_GET['from'] == 'nonmember') {
$this->tpl_mainpage = $nonmember_mainpage;
$this->tpl_title = $nonmember_title;
$this->lfInitParam($objFormParam);
}
// 通常はログインページ
else {
$this->lfInitLoginFormParam($objFormParam);
}


上記の「//通常はログインページ」のところを、「nonmember」と同じにすれば、ログインや会員登録を促す画面を通らずに、「カートの中身」→「お客様情報の入力画面」へ飛ぶことができます。
ですので、次のように書き換えました。

// お客様情報入力ページの表示
case 'nonmember':
$this->tpl_mainpage = $nonmember_mainpage;
$this->tpl_title = $nonmember_title;
$this->lfInitParam($objFormParam);
// ※breakなし

default:
// 前のページから戻ってきた場合は, お客様情報入力ページ
if (isset($_GET['from']) && $_GET['from'] == 'nonmember') {
$this->tpl_mainpage = $nonmember_mainpage;
$this->tpl_title = $nonmember_title;
$this->lfInitParam($objFormParam);
}
// 通常はログインページ
else {
$this->tpl_mainpage = $nonmember_mainpage;
$this->tpl_title = $nonmember_title;
$this->lfInitParam($objFormParam);
//元のコード・コメントアウト $this->lfInitLoginFormParam($objFormParam);
}



とりあえずうまくいったので、取り急ぎの備忘録です。




この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。