ECCUBE 2.13.5系 * 会員登録の手間を減らす

昔の名残で、
未だに、スマホの迷惑メールを解除していない人が多く、
メールが届くか?、届かないか?
実際には、送ってみないと、わかりません。

ECCUBEにおいては、会員登録でメール承認式にしないかぎり、
注文メールが届いたか、どうか、判断がつきません。
(それでも、メアド間違いなど、不達の場合はある)

***

特に悲惨なのは、非会員の場合、
マイページも使えず、通知すら出来ない状況で、

「届いていない」という連絡を待つよりも、
「メールが届かなくても、マイページ見てね」という、方針にすべく、
これを回避する、唯一の方法は、

会員登録必須にしてしまうこと。

 

ただ、会員登録がページ切り替えが多く、手間が多いと感じるので、
なるだけページを省略する。

会員登録をすれば、マイページから、
メールの送信履歴も見れるわけで、
決済完了画面に、その説明を加えてやるだけで良い。

会員登録ページを削る、実際の作業


プログラム本体の、大掛かりな変更必要があるかと思っていたら、
ほとんど、テンプレートの修正だけで済む

(重要)会員登録のメール承認は、しないものとする。

これが、一番の手間・・・

必要なプラグイン

  • RegisterWhileShopping
    ※注文完了画面でも会員登録可、とあるが、
    実際には、完了1つ前の確認画面で、パスワードなどを入力する。
    (入力せずに、スルーも可)

いじるところ

  1. cart/index.tpl?->?mtb_constants.php
  2. shopping/nonmember.tpl
  3. plugin > RegisterWhileShopping/templates/*/plg_RegisterWhileShopping_shopping_confirm.tpl

たったこれだけw

***

?1. cart/index.tpl?-> cache/mtb_constants.php

/shopping/ に、移行するリンクを変更する。

160行目あたり。(ほぼ文末)

img/button/btn_buystep.jpg" alt="購入手続きへ" name="confirm" /-->
↓

  購入手続きへ

↑ 正常に、動きません!

※たまたま、登録出来ていた環境(セッション)で、テストしていたのですが、
別のPCでトライしたところ、カートに戻ってしまうことが、発覚。
直接/shopping/?mode=nonmemerに移行すると、
カート内の情報が登録できていないので、カートに戻ってきてしまうため、

やはり、cart.phpは通らなくてはならず、
通った後に、/shopping/?mode=nonmemer に飛ばすのが、正解。

.

代替え案として、実際に変更箇所したは、これだけ。
data/cache/mtb_constants.php

define('SHOPPING_URL', HTTPS_URL . "shopping/" . DIR_INDEX_PATH. '?mode=nonmember');

大幅なソースの変更が必要だと、思っていたところ、
パラメーターの変更だけで、済んでしまいます。

やってることは、/shopping/に渡すとき、

  • ログイン
  • 会員登録する
  • 登録せずに購入

を選ばせないように、
getで「mode = nonmember?」を渡して、入力を促します。
※LC_Page_Shopping.phpでは、
$_REQUEST[‘mode’]で処理されているので、postでなく、getでOK。

2.?shopping/nonmember.tpl

未登録ばかりじゃないので、登録済みの型用に、ログイン・フォームを移植
shopping/index.phpから、単に<form>~</form>をコピー。

貼り付けただけで、ここでログインしても、
支払い選択のページにちゃんと移動する。

ECCUBE nonmemberで会員登録省略

だいたいこんな感じで、
一応、会員登録が必要な旨と、会員規約をリンクで表示する。

※ダウンロード系なので、入力は最小になってます。

3. plg_RegisterWhileShopping_shopping_confirm.tpl

また、パスワードなどを入れない場合、
素通り出来るように設計してあるので、
パスワードを忘れた時のヒントの「選択してください」のOptionをコメントアウト。

<!--
選択してください  --->

これで、

パスと、ヒントの答えを入れないと、通れない仕組みになります。

***

下記をご記入いただくだけで、注文完了と同時に会員登録ができます。会員登録せずにご購入いただく場合は、下記に何も記入せずにお進みください。

は、
消すなり、上手な日本語に、置き換えて下さい。

課題

プラグインRegisterWhileShoppingが、登録済みメアドか判断してくれるのですが、
完了間際のページじゃなく、メアド入力するページに処理を入れたほうが親切ですね。
プラグイン内の

 $email_flg = SC_Helper_Customer_Ex::sfCheckRegisterUserFromEmail($arrForm['email']);

を、class_ex/shopping/LC_Page_Shopping_Ex.phpに、
移植し、エラー処理を加えて下さい。

PS.

今回は、コード丸写しが少なく、ごめんなさいネw

ECCUBE 2.13.5系 * 会員登録の手間を減らす
Tagged on: