なかちょんブログ

プログラミングとマイクラ好きな子育てパパのブログ

EC-CUBEで会員登録画面から性別や職業などの項目を削除する方法(2.13)

   

EC-CUBEの会員登録項目は管理画面から編集できません(2014年9月現在)

EC-CUBEでは会員登録をする時に住所や電話番号の他に、【性別】や【職業】、【生年月日】などを入力する項目があり、その中でも一番ききにくそうな【性別】はなぜか必須項目だったりします。

また、会員登録をしなくてもお客様情報を入力する必要があり、そこでもやはり【性別】【職業】【生年月日】などの入力を求められます。ちなみに、ここでも【性別】は必須。

Eccube

で、これらの項目を入力フォームから削除したいのですが、どうやら管理画面から入力項目を修正することはできないようで、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>年&nbsp;
                <select name="<!--{$key2}-->" style="<!--{$errBirth|sfGetErrorColor}-->">
                    <!--{html_options options=$arrMonth selected=$arrForm[$key2].value|default:''}-->
                </select>月&nbsp;
                <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;amp;$objFormParam, $isAdmin = false, $is_mypage = false, $prefix = '')
    {
        $objFormParam-&amp;gt;addParam('パスワード', $prefix . 'password', PASSWORD_MAX_LEN, '', array('EXIST_CHECK', 'SPTAB_CHECK', 'ALNUM_CHECK'));
        $objFormParam-&amp;gt;addParam('パスワード確認用の質問の答え', $prefix . 'reminder_answer', STEXT_LEN, '', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
        $objFormParam-&amp;gt;addParam('パスワード確認用の質問', $prefix . 'reminder', STEXT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'));
/*
        $objFormParam-&amp;gt;addParam('性別', $prefix . 'sex', INT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'));
        $objFormParam-&amp;gt;addParam('職業', $prefix . 'job', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));
        $objFormParam-&amp;gt;addParam('年', $prefix . 'year', 4, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'), '', false);
        $objFormParam-&amp;gt;addParam('月', $prefix . 'month', 2, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'), '', false);
        $objFormParam-&amp;gt;addParam('日', $prefix . 'day', 2, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'), '', false);
*/
 

これでテスト

ここまでで確認してうまくいったら、各種ファイルを調整するようなのですが、今のところうまくいっているので、あとはまた確認してみたいとおもいます。

ちなみに、私が使っているEC-CUBEは2.13.2なので上記の状態でマイページを確認したところ、うまく不必要項目が消えていたので、もしかしたら、2.13はこれで大丈夫なのかな?

ということで、引き続き修正あればアップします。

 - EC-CUBE