目次
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はこれで大丈夫なのかな?
ということで、引き続き修正あればアップします。


