EC-CUBEのお届け日指定で特定の日付を表示させない方法

EC-CUBEのお届け日指定で特定の日付を表示させない方法

EC-CUBEのお届け日指定で特定の日付を表示させない方法
  • シェアしてね♪
  • このエントリーをはてなブックマークに追加

  • 広告主様募集中
    ワンコインで広告掲載してみませんか?
  • このエントリーをはてなブックマークに追加

発送日目安が設定されている商品では、購入する際にカート内でお届け日を指定することができます。

ゴールデンウィークやお盆など、ある特定の日付をお届け日として指定できないようにしたいこともあるかと思います。そんな時のために、お届け先指定のプルダウン内に特定の日付を表示しないようにする方法をご紹介したいと思います。

スポンサードリンク

EC-CUBEのお届け日に特定の日付を表示させない方法

特定の日付をお届け日に表示させないようにするには、/data/class/helper/SC_Helper_Purchase.phpを編集します。

627行目あたりに「public function getDateArray」という箇所があります。「お届け可能日のスタート値から, お届け日の配列を取得する」というコメントの通り、この関数ではお届け日の値を取得しています。

SC_Helper_Purchase.php
public function getDateArray($start_day, $end_day)
{
$masterData = new SC_DB_MasterData_Ex();
$arrWDAY = $masterData->getMasterData('mtb_wday');
//お届け可能日のスタート値がセットされていれば
if ($start_day >= 1) {
$now_time = time();
$max_day = $start_day + $end_day;
// 集計
for ($i = $start_day; $i < $max_day; $i++) {
// 基本時間から日数を追加していく
$tmp_time = $now_time + ($i * 24 * 3600);
list($y, $m, $d, $w) = explode(' ', date('Y m d w', $tmp_time));
//指定した日付を選択肢に表示しない
$flg_stop=false;
if (($y==2016)&&($m==8)) {
if (($d==11)||($d==12)||($d==13)||($d==14)||($d==15)||($d==16)) {
$flg_stop=true;
}
}
if (!$flg_stop) {
$val = sprintf('%04d/%02d/%02d(%s)', $y, $m, $d, $arrWDAY[$w]);
$arrDate[$val] = $val;
}
}
} else {
$arrDate = false;
}
return $arrDate;
}

ハイライトしている部分(16~22行目と24行目、27行目)が追加箇所です。上記の例では、8月11日~8月16日までを非表示にしています。

$yで年、$mで月、$dで日を指定して、条件に合う場合は値(日付)を返さず、条件に合わない場合は通常通り日付を返す処理をしています。

$yと$mと$dの値を変えれば、好きな日付を非表示にすることができます。

あとがき

お届け日の中から特定の日付を非表示にするという場面はそんなにないかもしれませんが、覚えておくといざという時に役立つと思います。

この記事が気に入ったら
いいね!してね♪

Twitter で
スポンサードリンク

関連記事

コメントを残す

メールアドレスが公開されることはありません。