目次
EC-CUBEの会員登録項目は管理画面から編集できません(2014年9月現在)
EC-CUBEでは会員登録をする時に住所や電話番号の他に、【性別】や【職業】、【生年月日】などを入力する項目があり、その中でも一番ききにくそうな【性別】はなぜか必須項目だったりします。
また、会員登録をしなくてもお客様情報を入力する必要があり、そこでもやはり【性別】【職業】【生年月日】などの入力を求められます。ちなみに、ここでも【性別】は必須。
で、これらの項目を入力フォームから削除したいのですが、どうやら管理画面から入力項目を修正することはできないようで、smartyのテンプレートとPHPファイルを修正する必要があります。さらに、項目を追加するにはSQL文を書いてデータベースもいじらなければいけません。
会員登録項目の削除方法
とりあえず、【性別】【職業】【生年月日】を登録項目から削除することにしました。
参考にしたのは、こちらのサイト。
EC-CUBEで会員登録画面を改造する方法【2.13系】 | 複数ネットショップの商品管理専門 簡単出品王子
data/Smarty/templates/[デザインテンプレ名:普通はdefault]/frontparts/form_personal_input.tpl …
Smartyのファイルの編集
まずは、Smartyの中から不必要項目を削除します。
ファイル場所:data/Smarty/templates/default/frontparts/form_personal_input.tpl
<!--{if false}--> ~ここから非表示~ <tr> <th>性別<span class="attention">※</span></th> <td> <!--{assign var=key1 value="`$prefix`sex"}--> <!--{if $arrErr[$key1]}--> <div class="attention"><!--{$arrErr[$key1]}--></div> <!--{/if}--> <span style="<!--{$arrErr[$key1]|sfGetErrorColor}-->"> <!--{html_radios name=$key1 options=$arrSex selected=$arrForm[$key1].value separator='<br />'}--> </span> </td> </tr> <tr> <th>職業</th> <td> <!--{assign var=key1 value="`$prefix`job"}--> <!--{if $arrErr[$key1]}--> <div class="attention"><!--{$arrErr[$key1]}--></div> <!--{/if}--> <select name="<!--{$key1}-->"> <option value="" selected="selected">選択してください</option> <!--{html_options options=$arrJob selected=$arrForm[$key1].value}--> </select> </td> </tr> <tr> <th>生年月日</th> <td> <!--{assign var=key1 value="`$prefix`year"}--> <!--{assign var=key2 value="`$prefix`month"}--> <!--{assign var=key3 value="`$prefix`day"}--> <!--{assign var=errBirth value="`$arrErr.$key1``$arrErr.$key2``$arrErr.$key3`"}--> <!--{if $errBirth}--> <div class="attention"><!--{$errBirth}--></div> <!--{/if}--> <select name="<!--{$key1}-->" style="<!--{$errBirth|sfGetErrorColor}-->"> <!--{html_options options=$arrYear selected=$arrForm[$key1].value|default:''}--> </select>年 <select name="<!--{$key2}-->" style="<!--{$errBirth|sfGetErrorColor}-->"> <!--{html_options options=$arrMonth selected=$arrForm[$key2].value|default:''}--> </select>月 <select name="<!--{$key3}-->" style="<!--{$errBirth|sfGetErrorColor}-->"> <!--{html_options options=$arrDay selected=$arrForm[$key3].value|default:''}--> </select>日 </td> </tr> ~ここまで非表示~ <!--{/if}-->
PHPファイルの編集
Smartyのファイルを編集したあと、PHPのファイルも編集します。
ファイル場所:/data/class/helper/SC_Helper_Customer.php
このファイルの中で、性別、職業、生年月日の部分をコメントアウトしました。
public function sfCustomerRegisterParam(&amp;$objFormParam, $isAdmin = false, $is_mypage = false, $prefix = '') { $objFormParam-&gt;addParam('パスワード', $prefix . 'password', PASSWORD_MAX_LEN, '', array('EXIST_CHECK', 'SPTAB_CHECK', 'ALNUM_CHECK')); $objFormParam-&gt;addParam('パスワード確認用の質問の答え', $prefix . 'reminder_answer', STEXT_LEN, '', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam-&gt;addParam('パスワード確認用の質問', $prefix . 'reminder', STEXT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); /* $objFormParam-&gt;addParam('性別', $prefix . 'sex', INT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam-&gt;addParam('職業', $prefix . 'job', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam-&gt;addParam('年', $prefix . 'year', 4, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'), '', false); $objFormParam-&gt;addParam('月', $prefix . 'month', 2, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'), '', false); $objFormParam-&gt;addParam('日', $prefix . 'day', 2, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'), '', false); */
これでテスト
ここまでで確認してうまくいったら、各種ファイルを調整するようなのですが、今のところうまくいっているので、あとはまた確認してみたいとおもいます。
ちなみに、私が使っているEC-CUBEは2.13.2なので上記の状態でマイページを確認したところ、うまく不必要項目が消えていたので、もしかしたら、2.13はこれで大丈夫なのかな?
ということで、引き続き修正あればアップします。