EC-CUBEの小技:会員登録に会社名の項目を追加
ある項目を使って会社名項目に
この登録項目ですが、追加する事も可能ですが、データベースの面倒があるわけで、いざという時に怖いものがあります。
簡素化してできるものなら、そちらの方が絶対的に安全なので、今回はあるものを作りかえるやり方でいきます。
必須項目の解除
一応、個人の間口も欲しいでしょうので、必須を解除しましょう。
/data/class/helperのSC_Helper_Customer.php
370行目付近を以下のように変更 $objFormParam->addParam('会社名', 'name01', STEXT_LEN, 'aKV', array('NO_SPTAB', 'SPTAB_CHECK' ,'MAX_LENGTH_CHECK')); $objFormParam->addParam('氏名', 'name02', STEXT_LEN, 'aKV', array('EXIST_CHECK', 'NO_SPTAB', 'SPTAB_CHECK' , 'MAX_LENGTH_CHECK')); $objFormParam->addParam('会社名(フリガナ)', 'kana01', STEXT_LEN, 'CKV', array('NO_SPTAB', 'SPTAB_CHECK' ,'MAX_LENGTH_CHECK', 'KANA_CHECK')); $objFormParam->addParam('氏名(フリガナ)', 'kana02', STEXT_LEN, 'CKV', array('EXIST_CHECK', 'NO_SPTAB', 'SPTAB_CHECK' ,'MAX_LENGTH_CHECK', 'KANA_CHECK'));
単純に、EXIST_CHECKを外せばいいという事ですね。
会員登録画面の修正
/data/Smarty/templates/default/frontparts/form_personal_input.tpl
入力ページ:27行目付近を以下のように変更
<tr> <th>会社名</th> <td> <!--{assign var=key1 value="`$prefix`name01"}--> <!--{if $arrErr[$key1]}--> <div class="attention"><!--{$arrErr[$key1]}--></div> <!--{/if}--> <input type="text" name="<!--{$key1}-->" value="<!--{$arrForm[$key1]|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" style="<!--{$arrErr[$key1]|sfGetErrorColor}-->; ime-mode: active;" class="box120" /> </td> </tr> <tr> <th>氏名<span class="attention">※</span></th> <td> <!--{assign var=key2 value="`$prefix`name02"}--> <!--{if $arrErr[$key2]}--> <div class="attention"><!--{$arrErr[$key2]}--></div> <!--{/if}--> <input type="text" name="<!--{$key2}-->" value="<!--{$arrForm[$key2]|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" style="<!--{$arrErr[$key2]|sfGetErrorColor}-->; ime-mode: active;" class="box120" /> </td> </tr> <tr> <th>会社名(フリガナ)</th> <td> <!--{assign var=key1 value="`$prefix`kana01"}--> <!--{if $arrErr[$key1] }--> <div class="attention"><!--{$arrErr[$key1]}--></div> <!--{/if}--> <input type="text" name="<!--{$key1}-->" value="<!--{$arrForm[$key1]|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" style="<!--{$arrErr[$key1]|sfGetErrorColor}-->; ime-mode: active;" class="box120" /> </td> </tr> <tr> <th>氏名(フリガナ)<span class="attention">※</span></th> <td> <!--{assign var=key2 value="`$prefix`kana02"}--> <!--{if $arrErr[$key2]}--> <div class="attention"><!--{$arrErr[$key2]}--></div> <!--{/if}--> <input type="text" name="<!--{$key2}-->" value="<!--{$arrForm[$key2]|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" style="<!--{$arrErr[$key2]|sfGetErrorColor}-->; ime-mode: active;" class="box120" /> </td> </tr>
/data/Smarty/templates/default/entry/confirm.tpl
確認ページ:38行目付近を以下に変更
<tr> <th>会社名</th> <td> <!--{$arrForm.name01|h}--> </td> </tr> <tr> <th>会社名(フリガナ)</th> <td> <!--{$arrForm.kana01|h}--> </td> </tr> <tr> <th>氏名<span class="attention">※</span></th> <td> <!--{$arrForm.name02|h}--> </td> </tr> <tr> <th>氏名(フリガナ)<span class="attention">※</span></th> <td> <!--{$arrForm.kana02|h}--> </td> </tr>
非会員(ゲスト購入)の修正
やる必要はないですね。
会員にしといたほうが良いですよ、購入者というのは。
メールテンプレートの修正
/data/Smarty/templates/default/mail_tamplates/contact_mail.tpl
/data/Smarty/templates/default/mail_tamplates/order_mail.tpl
の2ファイルの【お名前】部分を【会社名と氏名】に書き換え。
パスワード再発行ページの修正
/data/class/pages/forgot/LC_Page_Forgot.php
必須の解除:178行目付近を以下のように変更
$objFormParam->addParam('会社名', 'name01', STEXT_LEN, 'aKV', array('NO_SPTAB', 'SPTAB_CHECK' ,'MAX_LENGTH_CHECK')); $objFormParam->addParam('氏名', 'name02', STEXT_LEN, 'aKV', array('EXIST_CHECK', 'NO_SPTAB', 'SPTAB_CHECK' , 'MAX_LENGTH_CHECK'));
/data/Smarty/templates/default/forgot/index.tpl
フォームを編集:48行目付近を以下のように変更
会社名と氏名: 会社名 <input type="text" class="box120" name="name01" value="<!--{$arrForm.name01|default:''|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" style="<!--{$arrErr.name01|sfGetErrorColor}-->; ime-mode: active;" /> 氏名 <input type="text" class="box120" name="name02" value="<!--{$arrForm.name02|default:''|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" style="<!--{$arrErr.name02|sfGetErrorColor}-->; ime-mode: active;" />
データベースを修正
データベース操作は、phpMyAdminの場合で説明します。
アカウントにログイン>EC-CUBEのデータベース>dtb_customer
そこにある「name01」「kana01」のヌル(NULL)項目をnullへ
以上ですね。
他にも修正部分が探せばありますが、なんとなく気付いた時にやっていって下さい。