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*****