バージョン選択

フォーラム

メニュー

オンライン状況

58 人のユーザが現在オンラインです。 (47 人のユーザが フォーラム を参照しています。)
登録ユーザ: 2
ゲスト: 56
tetsurou michael もっと...

サイト内検索

質問 > フロント機能 > お届け日を必須選択にする方法

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ateshi
投稿日時: 2019/1/10 14:43
対応状況: −−−
一人前
登録日: 2016/12/21
居住地:
投稿: 77
お届け日を必須選択にする方法
ECCUBE3にて来店受取専用の注文ページを作成しているのですが、
お届け日・お届け時間帯を必須選択にさせたいのです。

これは容易には出来ませんか?
okazy
投稿日時: 2019/1/15 13:39
対応状況: −−−
新米
登録日: 2017/10/11
居住地:
投稿: 5
Re: お届け日を必須選択にする方法
お届け日の必須チェックは以下の箇所にバリデーションの処理を入れることでチェック可能です。

https://github.com/EC-CUBE/ec-cube/blob/87087e7ce97448cccfa5018e39f7c57b3b3f3ddc/src/Eccube/Form/Type/ShippingItemType.php#L121-L132

130行目を書き換えてお届け日がからの場合はaddError()でエラーを追加するように変更しています。


            ->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
                /** @var \Eccube\Entity\Shipping $data */
                $data = $event->getData();
                /** @var \Symfony\Component\Form\Form $form */
                $form = $event->getForm();
                $shippingDeliveryDate = $form['shippingDeliveryDate']->getData();
                if (!empty($shippingDeliveryDate)) {
                    $data->setShippingDeliveryDate(new \DateTime($form['shippingDeliveryDate']->getData()));
                } else {
                    // 画面下部にエラーメッセージを表示させる
                    $form['shippingDeliveryDate']->addError(new FormError('お届け日は必ず指定してください。'));
//                    $data->setShippingDeliveryDate(null);
                }
            });


そのままではエラーが画面に表示されませんので、テンプレートファイルを少し変更する必要があります。

https://github.com/EC-CUBE/ec-cube/blob/87087e7ce97448cccfa5018e39f7c57b3b3f3ddc/src/Eccube/Resource/template/default/Shopping/index.twig#L280



                                <label>お届け日</label>
                                {{ form_widget(form.shippings[idx].shippingDeliveryDate) }}<br class="sp">






                                <label>お届け日</label>
                                {{ form_widget(form.shippings[idx].shippingDeliveryDate) }}{{ form_errors(form.shippings[idx].shippingDeliveryDate) }}<br class="sp">



お届け時間についても同様にチェックとエラー表示の処理を追加すれば対応できるかと思います。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

統計情報

総メンバー数は38,025名です
総投稿数は88,930件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
1865
4
yuh
1546
5
468
1395
6
red
1206
7
umebius
1007
8
fukap
907
9
shutta
827
10
tsuji
816
11 ramrun 789
12
tao_s
667
13 karin 656
14 sumida 641
15
h_tanaka
634
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© LOCKON CO.,LTD. All Rights Reserved.