EC-CUBE4、EC-CUBE3でお届け日指定を年末年始は除外する方法
年末年始はお届け日指定を避けたいという要望が時々あります。
避けるためには発送日目安を変更すれば対応可能ですが、商品が数千件となると対応するのがめんどくさいです。
その場合、以下の方法をお試しください。
EC-CUBE4の場合
176行目付近にある、for文の内容を以下に変更する事で対応可能です。
- src/Eccube/Form/Type/Shopping/ShippingType.php
<?php 〜 〜 foreach ($period as $day) { // $deliveryDurations[$day->format('Y/m/d')] = $day->format('Y/m/d').'('.$dateFormatter->format($day).')'; $tmp = $day->format('Ymd'); if ( $tmp == '20211229' || $tmp == '20211230' || $tmp == '20211231' || $tmp == '20220101' || $tmp == '20220102' || $tmp == '20220103' || $tmp == '20220104' || $tmp == '20220105' ) { // 選択できないようにするためセットしない } else { $deliveryDurations[$day->format('Y/m/d')] = $day->format('Y/m/d').'('.$dateFormatter->format($day).')'; } } 〜 〜
EC-CUBE3の場合
ShoppingService.php
のgetFormDeliveryDates
関数内にある、for文の内容を以下に変更する事で対応可能です。
- src/Eccube/Service/ShoppingService.php
<?php 〜 〜 foreach ($period as $day) { // $deliveryDates[$day->format('Y/m/d')] = $day->format('Y/m/d'); $tmp = $day->format('Ymd'); if ( $tmp == '20211229' || $tmp == '20211230' || $tmp == '20211231' || $tmp == '20220101' || $tmp == '20220102' || $tmp == '20220103' || $tmp == '20220104' || $tmp == '20220105' ) { // 選択できないようにするためセットしない } else { $deliveryDates[$day->format('Y/m/d')] = $day->format('Y/m/d'); } } 〜 〜
該当する年月日がなければif文の中へ追加してください。