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

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

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

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

<div class="ec-orderConfirm">
<div class="ec-rectHeading">
<h2>{{ 'ご紹介コード(必須) / お問い合わせ'|trans }}</h2>
</div>
<div class="ec-input">
{{ form_widget(form.message, {'attr': {'class': 'form-control', 'placeholder': 'ご紹介コードをお持ちでしたらこちらにご入力ください。また、お問い合わせ事項がございましたら、こちらにご入力ください。(3000文字まで)'|trans, 'rows': '6'}}) }}
{{ form_errors(form.message) }}
<a href="<a href="https://shomane-coffee.com/codegen/&quot">https://shomane-coffee.com/codegen/&quot</a>; target="_blank">紹介コードをお持ちでない方はこちらから発行してください。</a>
</div>
</div>

こんな感じで紹介コードを入れられるようにしました。
でも紹介コードが必須ということで、
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