[Tep-j-general] Re: 贈答品のお届けと支払い方法(代引き)について

Back to archive index

Seiji Sogabe sogab****@alles*****
2005年 10月 10日 (月) 13:59:49 JST


曽我部です。

kaoru wrote:
> 曽我部様にアドバイスいただいた
> 
>>後は、どのように贈答品と判断するかです。配送方法選択画面で贈答品かどうか
>>入力できるようにするとか考えられます。
> 
> オプション機能で可能でしょうか?

オプション機能というのが何かちょっとわからないのですが、

1) 配送方法選択画面で贈答品か入力
2) 支払方法画面で、贈答品の場合代金引換を非表示にする

であれば、

catalog/checkout_shipping.php の 240行目

> 240        <tr>
> 241          <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
> 242        </tr>

の後に以下を追加して、チェックボックスを表示

<!-- START -->
      <tr>
        <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
          <tr>
            <td class="main"><b><?php echo '贈答品'; ?></b></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
          <tr class="infoBoxContents">
            <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
              <tr>
                <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                <td class="main" width="50%" valign="top">贈答品ですか</td>
                <td align="right" width="50%" valign="top">
                  <?php echo tep_draw_checkbox_field('present', 'true', $present == true); ?>
                <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                </td>
              </tr>
            </table></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
      </tr>
<!-- END -->

同様に90行目
>  90      if (!tep_session_is_registered('comments')) tep_session_register('comments');
>  91      if (tep_not_null($HTTP_POST_VARS['comments_added'])) {
>  92        $comments = tep_db_prepare_input($HTTP_POST_VARS['comments']);
>  93      }

の後に、以下を追加

    if (!tep_session_is_registered('present')) {
      tep_session_register('present');
    }
    if ($HTTP_POST_VARS['present'] == 'true') {
      $present = true;
    } else {
      $present = false;
    }

catalog/checkout_payment.php の 219行目の

> 219    $selection = $payment_modules->selection();

を

$selection = $payment_modules->selection($present);

に変更

catalog/checkout_process.php の285行目のあとに以下を追加

 tep_session_unregister('present');

catalog/includes/classes/payment.php の 125行目の funtion selectionを以下のように
変更

    // 贈答品の場合$present=true
    function selection($present = false) {
      $selection_array = array();

      if (is_array($this->modules)) {
        reset($this->modules);
        while (list(, $value) = each($this->modules)) {
          $class = substr($value, 0, strrpos($value, '.'));
          // 贈答品で支払い方法が代金引換の場合
          if ($present && $class == 'cod_table') {
            continue;
          }
          if ($GLOBALS[$class]->enabled) {
            $selection = $GLOBALS[$class]->selection();
            if (is_array($selection)) $selection_array[] = $selection;
          }
        }
      }

      return $selection_array;
    }

でできると思います。

例によって、簡単にチェックしましたが落ちがあると思います。
バックアップと確認はしっかりと。ついでに、日本語を含むスクリプトはEUC-JPで保存を
お忘れずに。

では。

-- 
sogab****@alles*****



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