2.11.0系 商品購入手続き画面のお届け日に定休日を反映させる

フォーラムに投げた内容をこちらにも転載。
そういえば2.11.0ではどうやるんだろう?と思って試しにやってみたら、
なんとなく出来た気が・・・
内容に問題があったらご報告お願いします!

/data/class/helper/SC_Helper_Purchase.php

/**
* お届け可能日のスタート値から, お届け日の配列を取得する.
*/
function getDateArray($start_day, $end_day) {

/*---------- ↓ 追加 ↓ --------*/
//カレンダーを呼び出す
require_once(CLASS_REALDIR . "pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Calendar.php");
$blockCalender = new LC_Page_FrontParts_Bloc_Calendar();
/*---------- ↑ 追加 ↑ --------*/

$masterData = new SC_DB_MasterData();
$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));

/*---------- ↓ 変更 ↓ --------*/
//休日かどうかチェックする
if(!$blockCalender->lfCheckHoliday_Payment($y, $m, $d)){
$val = sprintf("%04d/%02d/%02d(%s)", $y, $m, $d, $arrWDAY[$w]);
$arrDate[$val] = $val;
}
/*---------- ↑ 変更 ↑ --------*/

    }
  } else {
    $arrDate = false;
  }
  return $arrDate;
}

/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Calendar

/*---------- ↓ 追加 ↓ --------*/
/**
* 休日チェック取得.
* (購入手続き内、配送日時判定) 
*/
function lfCheckHoliday_Payment($year, $month, $day) {
  // 休日取得取得
  $this->arrHoliday = $this->lfGetHoliday();
  // 定休日取得取得
  $this->arrRegularHoliday = $this->lfGetRegularHoliday();
  if (!empty($this->arrHoliday[$month])) {
    if (in_array($day, $this->arrHoliday[$month])) {
      return true;
    }
  }
  if (!empty($this->arrRegularHoliday)) {
    $day = date('w', mktime(0,0,0 ,$month, $day, $year));
    if (in_array($day, $this->arrRegularHoliday)) {
      return true;
    }
  }
  return false;
}
/*---------- ↑ 追加 ↑ --------*/