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);
}
とりあえずうまくいったので、取り急ぎの備忘録です。
今回やっているのは、とあるツアーのチケット販売。
ツアー終了後にショップシステムを使うかもわからないので、リピーター向けの「会員登録」などということは必要ない。
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);
}
とりあえずうまくいったので、取り急ぎの備忘録です。
コメント 0