EC-CUBE4 – 新規会員登録 利用規約 非必須化

EC-CUBE4の新規会員登録ページの必須項目をカスタマイズしました。

今回はクローズドなシステムですので利用規約の必須を解除します。
復習を兼ねてその手順をシェアします。
ちょっとPHPいじれるレベルの方向けです。

追加したファイルは1つ。(ファイル名は任意、但し中身と合致させる)

  1. /app/Customize/Form/Extension/UserPolicyCheckRequiredExtension.php

 

/app/Customize/Form/Extension/UserPolicyCheckRequiredExtension.php

<?php

namespace Customize\Form\Extension;

use Eccube\Entity\Customer;
use Eccube\Form\Type\Front\EntryType;
use Symfony\Component\Form\AbstractTypeExtension;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\Validator\Constraints as Assert;

class UserPolicyCheckRequiredExtension extends AbstractTypeExtension
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
$Customer = $event->getData();
if ($Customer instanceof Customer && !$Customer->getId()) {
$form = $event->getForm();

$form->add(‘user_policy_check’, CheckboxType::class, [
‘required’ => false,
‘label’ => null,
‘mapped’ => false,
‘constraints’ => [
],
]);
}
}
);
}

/**
* {@inheritdoc}
*/
public function getExtendedType()
{
return EntryType::class;
}

/**
* {@inheritdoc}
*/
public static function getExtendedTypes(): iterable
{
yield EntryType::class;
}
}

※赤文字部分はファイル名と合致

 

最後の〆


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

キャッシュ削除します。

 

参考サイト


 

以上です。
これでページ管理から利用規約の部分を削除しても大丈夫です。

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

Follow me!