EC-CUBE4 – お問い合わせ項目 追加と削除

EC-CUBE4のお問い合わせページの項目をカスタマイズしました。
復習を兼ねてその手順をシェアします。
ちょっとPHPいじれるレベルの方向けです。
他にもやり方はありますが、一番ハードルが低い方法ではないかと思います。

 

内容は、「会社名」を追加、「住所」を削除。

直したファイルは4つ。
それと、メールテンプレート。

  1. /app/Customize/Form/ContactType.php
    ↑/src/Eccube/Form/Type/Front/ContactType.phpを複製
  2. /app/Customize/Controller/ContactController.php
    ↑/src/Eccube/Controller/ContactController.phpを複製
  3. /app/template/mytpl/Contact/index.twig
  4. /app/template/mytpl/Contact/confirme.twig

 

裏の部分


/app/Customize/Form/ContactType.php
(フォームの設定です。必須か否か等。今回は非必須で設定しています。)

<?php

一行修正します。
namespace Eccube\Form\Type\Front;
namespace Customize\Form;

一行追加します。
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\TextType;

「会社名」分を追加します(削除分は無視)。
 public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add(‘company_name’, TextType::class, [
‘required’ => false,
])

このファイルは以上です。

 

/app/Customize/Controller/ContactController.php
(ログイン時に自動で表示させるため修正します)

「会社名」分を追加します(削除分は無視)。

上記のファイルを元に修正していきます。

一行修正します。
namespace Eccube\Controller;
namespace Customize\Controller;

一行修正します。
use Eccube\Form\Type\Front\ContactType;
use Customize\Form\ContactType;

一行追加します。
use Symfony\Component\Routing\Annotation\Route;
use Eccube\Controller\AbstractController;

「会社名」分を追加します(削除分は無視)。
$builder->setData(
[

‘company_name’ => $user->getCompanyName(),
‘name01’ => $user->getName01(),

このファイルは以上です。

 

表の部分


/app/template/mytpl/Contact/index.twig
/app/template/mytpl/Contact/confirme.twig

「会社名」分を表示させたいところに記述します(削除分は割愛)。

<!–会社名–>
<dl>
<dt>
{{ form_label(form.company_name, ‘会社名’, { ‘label_attr’: { ‘class’: ‘ec-label’ }}) }}
</dt>
<dd>
<div class=”ec-halfInput{{ has_errors(form.company_name) ? ‘ error’ }}”>
{{ form_widget(form.company_name, {‘attr’: { ‘placeholder’: ‘会社名’ }}) }}
{{ form_errors(form.company_name) }}
</div>
</dd>
</dl>
<!–会社名–>

 

送信裏の部分


管理画面「設定」-「店舗設定」-「メール設定」-「問合受付メール」

各形式に合わせて表示させたい場所に追記します。

テキスト形式

会社名:{% if data.company_name %} {{ data.company_name }} {% endif %}

HTML形式

<dl style=”display: flex;border-bottom: 1px dotted #ccc;margin: 0;”>
<dt style=”padding-top: 14px;width: 30%;”><label class=”ec-label”>会社名</label></dt>
<dd style=”width: 70%;line-height: 3;”>{{ data.company_name }}</dd>
</dl>

 

最後の〆


管理画面「コンテンツ管理」-「キャッシュ管理」-「キャッシュ削除」

キャッシュ削除します。

 

参考サイト


 

以上です。

当サイトでは何の保証もいたしませんので、十分にテストされてから本番環境に実装してください。
コピペする際にはアポストロフィの形状に気をつけてください。
何か不備を発見の際はご教示いただければ幸いです。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA