昔の名残で、
未だに、スマホの迷惑メールを解除していない人が多く、
メールが届くか?、届かないか?
実際には、送ってみないと、わかりません。
ECCUBEにおいては、会員登録でメール承認式にしないかぎり、
注文メールが届いたか、どうか、判断がつきません。
(それでも、メアド間違いなど、不達の場合はある)
***
特に悲惨なのは、非会員の場合、
マイページも使えず、通知すら出来ない状況で、
「届いていない」という連絡を待つよりも、
「メールが届かなくても、マイページ見てね」という、方針にすべく、
これを回避する、唯一の方法は、
会員登録必須にしてしまうこと。
ただ、会員登録がページ切り替えが多く、手間が多いと感じるので、
なるだけページを省略する。
会員登録をすれば、マイページから、
メールの送信履歴も見れるわけで、
決済完了画面に、その説明を加えてやるだけで良い。
会員登録ページを削る、実際の作業
プログラム本体の、大掛かりな変更必要があるかと思っていたら、
ほとんど、テンプレートの修正だけで済む。
(重要)会員登録のメール承認は、しないものとする。
これが、一番の手間・・・
必要なプラグイン
- RegisterWhileShopping
※注文完了画面でも会員登録可、とあるが、
実際には、完了1つ前の確認画面で、パスワードなどを入力する。
(入力せずに、スルーも可)
いじるところ
cart/index.tpl?->?mtb_constants.php- shopping/nonmember.tpl
- 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>をコピー。
貼り付けただけで、ここでログインしても、
支払い選択のページにちゃんと移動する。
だいたいこんな感じで、
一応、会員登録が必要な旨と、会員規約をリンクで表示する。
※ダウンロード系なので、入力は最小になってます。
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