[Tep-j-general] Re: 配送方法を選択の時にお届け時間帯の他にお届け曜日を追加したい

Back to archive index

Seiji Sogabe sogab****@alles*****
2006年 4月 10日 (月) 22:43:36 JST


曽我部です。

ちょっと添削するのは難しいので、変更点を書きます。
環境にあうように手直ししてください。

includes/languages/japanese/shipping/sagawaex.php に追加。

// 曜日配達サービス
$GLOBALS['a_sagawaex_day']=array(
  array('id'=>'希望なし',  'text'=>'希望なし'),
  array('id'=>'月曜日',    'text'=>'月曜日'),
  array('id'=>'火曜日',    'text'=>'火曜日'),
  array('id'=>'水曜日',    'text'=>'水曜日'),
  array('id'=>'木曜日',    'text'=>'木曜日'),
  array('id'=>'金曜日',    'text'=>'金曜日'),
  array('id'=>'土曜日',    'text'=>'土曜日'),
  array('id'=>'日曜日',    'text'=>'日曜日'),
);

includes/languages/japanese.php に追加。

define('TEXT_DAY_SPECIFY', 'お届けする曜日: ');

includes/modules/shipping/sagawaex.php

67行目

    function quote() {
      global $shipping_weight, $shipping_num_boxes;
      global $order;
      global $a_sagawaex_time;
      global $a_sagawaex_day;   // ★ 追加
      global $cart;

112行目

          if (!isset($tmpQuote['error'])) {
              // 配送時刻指定
              $timespec = $this->get_timespec();
              $tmpQuote['option'] = TEXT_TIME_SPECIFY
                  . tep_draw_pull_down_menu('sagawaex_timespec', $a_sagawaex_time, $timespec);
              $tmpQuote['timespec'] = $timespec;
              // ★ここから
              // 配送曜日指定
              $dayspec = $this->get_dayspec();
              $tmpQuote['option2'] = TEXT_DAY_SPECIFY
                  . tep_draw_pull_down_menu('sagawaex_dayspec', $a_sagawaex_day, $dayspec);
              $tmpQuote['dayspec'] = $dayspec;
              // ★ここまで追加
          }

適当なところに以下を追加。

    // 曜日を指定するプルダウンメニューの'value'を返す
    function get_dayspec() {
        global $a_sagawaex_day;
        global $shipping;
        global $HTTP_POST_VARS;

        $selected = $a_sagawaex_day[0]['id'];
        if ( isset($HTTP_POST_VARS['sagawaex_dayspec']) ) {
            $selected = $HTTP_POST_VARS['sagawaex_dayspec'];
        } elseif ( is_array($shipping) ) { // see checkout_shipping.php
            list($module, $method) = explode('_', $shipping['id']);
            if ($module == $this->code) {
                $selected = $shipping['dayspec'];
            }
        }
        return $selected;
    }

checkout_shipping.php の

116行目あたり

      'timespec' => $quote[0]['methods'][0]['timespec'],  // add for Japanese update
      'dayspec' => $quote[0]['methods'][0]['dayspec'] // ★ここを追加

330行目を以下に変更

                    <td class="main" width="75%"><?php echo
$quotes[$i]['methods'][$j]['title'].'&nbsp;&nbsp;'.$quotes[$i]['methods'][$j]['option'].'&nbsp;&nbsp;'.$quotes[$i]['methods'][$j]['option2']
?></td>

checkout_process.php の
49行目のあとに以下を追加

  if (isset($shipping['dayspec'])) {
    $comments = '['.TEXT_DAY_SPECIFY.$shipping['dayspec'].']'
       ."\n".$comments;
  }

あまり確認していませんので漏れがあるかもしれませんが。

では。


nozo wrote:
> みなさんこんばんは。
> 
> 配送方法を選ぶ時に時間帯のプルダウンメニューが出ますが、その隣に
> 新しく曜日指定のプルダウンメニューを追加しようと思いますが
> 思うように出来なくて悩んでおります。
-- 
sogab****@alles*****



Tep-j-general メーリングリストの案内
Back to archive index