EC CUBE 4 購入時にクーポンコードなどを入れるカスタマイズ

まだこの記事は解決していません。

下記のカスタマイズでは「お届け先の変更」が出来なくなっていることに気づきました。 そのうち修正します。

時間があまりにも無いので簡易的なカスタマイズ。 src/Eccube/Resource/template/default/Shopping/に index.twigというファイルがあるのでこちらからテンプレートを編集していきます。 371行目辺り

{{ 'ご紹介コード(必須) / お問い合わせ'|trans }}

{{ form_widget(form.message, {'attr': {'class': 'form-control', 'placeholder': 'ご紹介コードをお持ちでしたらこちらにご入力ください。また、お問い合わせ事項がございましたら、こちらにご入力ください。(3000文字まで)'|trans, 'rows': '6'}}) }} {{ form_errors(form.message) }} 紹介コードをお持ちでない方はこちらから発行してください。

こんな感じで紹介コードを入れられるようにしました。 でも紹介コードが必須ということで、 src/Eccube/Form/Type/Shopping/ 内の OrderType.php を編集していきます。 100行目辺り

        $builder->add('message', TextareaType::class, [
            'required' => true, //falseからtrueに変更
            'constraints' => [
                new Length(['min' => 0, 'max' => 3000]),
            ],
        ])->add('Shippings', CollectionType::class, [
            'entry_type' => ShippingType::class,
            'by_reference' => false,
        ])->add('redirect_to', HiddenType::class, [
            'mapped' => false,
        ]);

これで必須項目となりました。

このあたりはsymphonyやtwigに詳しい人ならわかると思いますがentityに結びついたFormTypeを全て手動で設定していく必要があります。 それに合わせてテンプレートに書き込んでいけばOKです。

ほんとすみません時間が無い人のブログは読みにくくて・・・・。

EC CUBE

Posted by bistro