バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 【2.11.4】お届け指定日について

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
aska824
投稿日時: 2011/12/17 9:08
対応状況: −−−
長老
登録日: 2010/2/20
居住地: 静岡県
投稿: 185
【2.11.4】お届け指定日について
お世話になります。

お届け指定日についてカスタマイズを行なっております。

基本的に土日祝日が休業日です。
もし、土曜日に注文が入った場合で翌日配送の場合、お届け日指定が日曜日からとなってしまいます。

これをこちらからの配送日を含め、火曜日以降の指定としたいのです。

ソースを見ると、「SC_Helper_Purchase.php」のお届け可能日のスタート値から, お届け日の配列を取得する.を変更すればいいとおもうのですが、どのように変更すればいいかわかりません・・・。

どなたかご教授お願いいたいします。


----------------
-----------情報-----------
自分の分かる範囲でお答えします。

Shop Mate

pingpong
投稿日時: 2011/12/19 11:06
対応状況: −−−
長老
登録日: 2011/12/15
居住地:
投稿: 156
Re: 【2.11.4】お届け指定日について
SC_Helper_Purchase.phpのgetDelivDateメソッドでswitch文によって$start_dayを設定している箇所があります。
即日発送であれば、case1の処理に土曜日の場合は$start_dayを3にするという条件を追加することで、変更可能になります。
aska824
投稿日時: 2011/12/19 18:00
対応状況: −−−
長老
登録日: 2010/2/20
居住地: 静岡県
投稿: 185
Re: 【2.11.4】お届け指定日について
pingpong様、ありがとうございます!

その方法でやってみます><


----------------
-----------情報-----------
自分の分かる範囲でお答えします。

Shop Mate

aska824
投稿日時: 2011/12/22 19:14
対応状況: −−−
長老
登録日: 2010/2/20
居住地: 静岡県
投稿: 185
Re: 【2.11.4】お届け指定日について
すみません・・・

土曜日や日曜日を設定してIF文で分岐させる方法でやりたいのですが、
土曜日・日曜日と判断させる方法がわからず立ち往生してしまいました・・・。

どなたかわかる方ご教授願います><


----------------
-----------情報-----------
自分の分かる範囲でお答えします。

Shop Mate

ゲスト
投稿日時: 2011/12/22 19:34
対応状況: −−−
Re: 【2.11.4】お届け指定日について
当日とかをリニア値に変換して、、、後は、希望値を得る処理にて。。。

http://www.hoge256.net/2007/08/63.html
の「任意の日付の曜日を取得」など、参考になりませんか。。。
Masashige
投稿日時: 2011/12/26 10:38
対応状況: −−−
長老
登録日: 2009/4/1
居住地:
投稿: 200
Re: 【2.11.4】お届け指定日について
if文で分岐ならむしろgetDateArray()の方がやりやすいかも。
preg_match('/[土日]/', $val)
みたいな。超適当ですけど…。
ゲスト
投稿日時: 2011/12/27 12:26
対応状況: −−−
Re: 【2.11.4】お届け指定日について
「お届け『可能』日」を表示したいと理解し、
「ブロック」-「カレンダー」を流用し、
テストコードとして、なんとか、表示出来たと思います。。。


class SC_Helper_Purchase_Ex extends SC_Helper_Purchase {

    /**
     * お届け可能日のスタート値から, お届け日の配列を取得する.
     */
    function getDateArray($start_day, $end_day) {
        $masterData = new SC_DB_MasterData();
        $arrWDAY = $masterData->getMasterData("mtb_wday");
        
        // 休日取得
        $this->arrHoliday = $this->lfGetHoliday();
        // 定休日取得
        $this->arrRegularHoliday = $this->lfGetRegularHoliday();
                
        //お届け可能日のスタート値がセットされていれば
        if($start_day >= 1) {
            $now_time = time();
            $max_day = $start_day + $end_day;
            // 集計
&#160; &#160; &#160; &#160; &#160; &#160; for ($i = $start_day; $i < $max_day; $i++) {
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; // 基本時間から日数を追加していく
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; $tmp_time = $now_time + ($i * 24 * 3600);
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; list($y, $m, $d, $w) = explode(" ", date("Y m d w", $tmp_time));
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; // お届け日の昨日、、、
                $yesterday = mktime(0, 0, 0, $m, $d, $y) - 24 * 3600;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; $year = date("Y", $yesterday);
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; $month = date("m", $yesterday);
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; $day = date("d", $yesterday);
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160;
                // が、休日,定休日でない場合に、お届け日とする。
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; if(!$this->lfCheckHoliday(intval($year), intval($month), intval($day))){
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; $val = sprintf("%04d/%02d/%02d(%s)", $y, $m, $d, $arrWDAY[$w]);
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; $arrDate[$val] = $val;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160;
&#160; &#160; &#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; } else {
&#160; &#160; &#160; &#160; &#160; &#160; $arrDate = false;
&#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; return $arrDate;
&#160; &#160; }

&#160; &#160; /**
&#160; &#160; &#160;* 休日取得.
&#160; &#160; &#160;*
&#160; &#160; &#160;* @return array $arrHoliday 休日情報の配列を返す
&#160; &#160; &#160;*/
&#160; &#160; function lfGetHoliday() {
&#160; &#160; &#160; &#160; $objQuery = SC_Query_Ex::getSingletonInstance();
&#160; &#160; &#160; &#160; $objQuery->setOrder('rank DESC');

&#160; &#160; &#160; &#160; $where = 'del_flg <> 1';
&#160; &#160; &#160; &#160; $arrRet = $objQuery->select('month, day', 'dtb_holiday', $where);
&#160; &#160; &#160; &#160; foreach ($arrRet AS $key=>$val) {
&#160; &#160; &#160; &#160; &#160; &#160; $arrHoliday[$val['month']][] = $val['day'];
&#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; return $arrHoliday;
&#160; &#160; }
&#160; &#160;&#160;
&#160; &#160; /**
&#160; &#160; &#160;* 定休日取得.
&#160; &#160; &#160;*
&#160; &#160; &#160;* @return array $arrRegularHoliday 定休日情報の配列を返す
&#160; &#160; &#160;*/
&#160; &#160; function lfGetRegularHoliday() {
&#160; &#160; &#160; &#160; $arrInfo = SC_Helper_DB_Ex::sfGetBasisData();
&#160; &#160; &#160; &#160; $arrRegularHoliday = explode('|', $arrInfo['regular_holiday_ids']);
&#160; &#160; &#160; &#160; return $arrRegularHoliday;
&#160; &#160; }

&#160; &#160; /**
&#160; &#160; &#160;* 休日チェック取得.
&#160; &#160; &#160;*
&#160; &#160; &#160;* @param integer $year 年
&#160; &#160; &#160;* @param integer $month 月
&#160; &#160; &#160;* @param integer $day 日
&#160; &#160; &#160;* @return boolean 休日の場合trueを返す
&#160; &#160; &#160;*/
&#160; &#160; function lfCheckHoliday($year, $month, $day) {
&#160; &#160; &#160; &#160; if (!empty($this->arrHoliday[$month])) {
&#160; &#160; &#160; &#160; &#160; &#160; if (in_array($day, $this->arrHoliday[$month])) {
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; return true;
&#160; &#160; &#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; if (!empty($this->arrRegularHoliday)) {
&#160; &#160; &#160; &#160; &#160; &#160; $day = date('w', mktime(0,0,0 ,$month, $day, $year));
&#160; &#160; &#160; &#160; &#160; &#160; if (in_array($day, $this->arrRegularHoliday)) {
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; return true;
&#160; &#160; &#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; return false;
&#160; &#160; }

}

imaoka
投稿日時: 2012/1/15 0:06
対応状況: −−−
新米
登録日: 2011/1/8
居住地:
投稿: 8
Re: 【2.11.4】お届け指定日について
日にちは経ってますが、こちら参考になりましたら。
プルダウンのお届け日指定
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,047名です
総投稿数は110,020件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.