EC-CUBEで会員登録させない方法

Pocket
[`evernote` not found]

もう扱うこともないかもしれないですが、備忘録として・・・

EC-CUBEは、このブログでも何度か取り上げている純国産のオープンソースECサイト作成CMSです。
賛否はあるにせよ、自由にカスタマイズできて、無料で使えるので、お使いの方も多いのではないかと思います。
で、そんなEC-CUBEですが、デフォルトでは、PCで表示すると会員登録画面が必ず表示されてしまいます。また、モバイルページに至っては、会員登録をしないと購入できないという仕様になっています。

利用用途によっては、会員登録させたくないという場合もありますので、その方法をご紹介します。

ちなみに今回のバージョンは2.11.4です。

PCの購入ページ

data/class/pages/shopping/LC_Page_Shopping.php

これのファイルは、会員登録しない場合の画面を制御するファイルです。
この中盤あたりに、
actionという関数が用意されています。詳しくわかりませんが、どうやらここで
購入ボタンを押したあとの挙動を判定しているようです。

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

nonmemberという状態の時に個人情報を入力するページを表示させているようですので、
デフォルト状態でも同じ挙動にさせるために
このdefault:をごっそり

         $this->tpl_mainpage = $nonmember_mainpage;
         $this->tpl_title = $nonmember_title;
         $this->lfInitParam($objFormParam);

と書換えます。

あとは、テンプレート側で、会員登録やログインなどの表示を消してあげます。
(これが地味にめんどくさいです)

モバイルページ

data/Smarty/templates/moblime/shopping/index.tpl
デフォルトでは、会員登録や、ログインの記述がありますので、そこをごっそり消して、

購入手続き

<form name="member_form" id="member_form" method="post" action="./index.php">
<input type="hidden" name="mode" value="nonmember" />
<input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
<div align="center"><input type="submit" value="購入手続きへ" name="buystep" id="buystep"></div><br>
</form>

このようにします。

次に、
data/Smarty/templates/moblime/shopping/nomember_input.tpl
というファイルを新規で作成します。
これは、先にPC版で修正したファイルと同じようなものですが、購入者の情報などを入力させるためのコードが必要になります。
PC版か、スマフォの同名のファイルをコピーして、不要な部分を削除すればよいかと思います。

以上です。
こういったカスタマイズが自由にできるのは魅力ですが、あまり深入りしてしまうと、バージョンアップした時に動かなくなったり・・・と心配もあります。
・・・いづれにしても上記の方法で実装可能でした。やるやらないは、個人のご判断で。

■参考
KH-WEBLOG 携帯サイトでも会員登録しないで購入できるようにする:EC-CUBE2.11.1

Follow me!

Pocket
[`evernote` not found]

コメントは受け付けていません。