質問 > フロント機能 > お届け日を今日から5日~10日後それぞれの日付をプルダウンで表示させたい |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
VAAAANG |
投稿日時: 2020/11/26 22:19
対応状況: 確認中
|
半人前 登録日: 2020/5/25 居住地: 投稿: 16 |
お届け日を今日から5日~10日後それぞれの日付をプルダウンで表示させたい [EC-CUBE] eccube3
お届け日を今日から5日~10日後それぞれの日付をプルダウンで表示させたいです。 例えば注文日(注文画面を開いているタイミング)が11/1の場合、 11/6 11/7 11/8 11/9 11/10 の5つの内どれかを選択できるようにしたいです。 何卒よろしくお願いいたします...。 |
umebius |
投稿日時: 2020/11/27 9:11
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: お届け日を今日から5日~10日後それぞれの日付をプルダウンで表示させたい 商品に登録するお届け日目安とは無関係にということですね。
この辺りのコードで$deliveryDatesという配列の中身が5日~10日後になるようにカスタマイズしてやれば良いかと思います。 https://github.com/EC-CUBE/ec-cube3/blob/3.0.18/src/Eccube/Service/ShoppingService.php#L990-L1006
|
VAAAANG |
投稿日時: 2020/11/30 17:32
対応状況: −−−
|
半人前 登録日: 2020/5/25 居住地: 投稿: 16 |
Re: お届け日を今日から5日~10日後それぞれの日付をプルダウンで表示させたい ご返信ありがとうございます。
指定していただいたコードを確認したところ取り急ぎ $minDate = 5; こちらに変更したところ5日後からの日付が設定できたので、あとはdeliv_date_end_maxの数値を5をすればよいと思い自分で調べたところconfig.ymlファイルにその設定の記述があるとのことでファイルを開いてみたのですが下記のような記述のみでdeliv_date_end_maxに関する記述がございませんでした。 ---------------------------------- auth_magic: ×××××××××××× password_hash_algos: ×××× shop_name: ×× force_ssl: 1 admin_allow_host: null cookie_lifetime: 0 cookie_name: eccube locale: ja timezone: Asia/Tokyo pageinrange: false trusted_proxies_connection_only: false trusted_proxies: { } eccube_install: 1 ---------------------------------- 他にdeliv_date_end_maxを修正する箇所はどちらにあるかご存知でしょうか? 宜しくお願い致します。 |
VAAAANG |
投稿日時: 2020/11/30 17:37
対応状況: −−−
|
半人前 登録日: 2020/5/25 居住地: 投稿: 16 |
Re: お届け日を今日から5日~10日後それぞれの日付をプルダウンで表示させたい 下記のよな記述にしましたら希望通りの日数を表示させることができましたが修正した方がいい箇所はありますでしょうか?
すみません、phpはいじったことがなく少し不安で...。 // お届け日の設定 $minDate = 5; $deliveryDateFlag = false; // 配送時に最大となる商品日数を取得 foreach ($Order->getOrderDetails() as $detail) { $deliveryDate = $detail->getProductClass()->getDeliveryDate(); if (!is_null($deliveryDate)) { if ($deliveryDate->getValue() < 0) { // 配送日数がマイナスの場合はお取り寄せなのでスキップする $deliveryDateFlag = false; break; } if ($minDate < $deliveryDate->getValue()) { $minDate = $deliveryDate->getValue(); } // 配送日数が設定されている $deliveryDateFlag = true; } } // 配達最大日数期間を設定 $deliveryDates = array(); $deliv_date_end_max = 5; // 配送日数が設定されている if ($deliveryDateFlag) { $period = new \DatePeriod ( new \DateTime($minDate.' day'), new \DateInterval('P1D'), new \DateTime($minDate + $deliv_date_end_max.' day') ); foreach ($period as $day) { $deliveryDates[$day->format('Y/m/d')] = $day->format('Y/m/d'); } } |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |