[Tep-j-general] Re: 注文完了画面にURLを表示

Back to archive index

Seiji Sogabe sogab****@alles*****
2005年 6月 22日 (水) 21:37:44 JST


こんばんわ、曽我部です。

rt-s wrote:
> いつも大変勉強させていただき大変感謝しております。
> 
> 注文完了画面(checkout_success.php)に商品のURLを再度表示させたいと考えてい
> ます。
> product_info.phpにて表示されるのと同じものを表示できたらと思っています。

checkout_success.phpの40行目から49行目を利用すれば楽かもしれません。

> 40    if ($global['global_product_notifications'] != '1') {
> 41      $orders_query = tep_db_query("select orders_id from " .  (省略)
> 42      $orders = tep_db_fetch_array($orders_query);
> 43  
> 44      $products_array = array();
> 45      $products_query = tep_db_query("select products_id, products_name from " . (省略) 
> 46      while ($products = tep_db_fetch_array($products_query)) {
> 47        $products_array[] = array('id' => $products['products_id'],
> 48                                  'text' => $products['products_name']);
> 49      }

41行目で、オーダの一番新しいのを取得して
45行目で、取得したオーダに含まれる商品のIDと商品名を取得しています。

とりたいのは、products_descriptionテーブルのproducts_urlですので、
45行目で使用しているクエリーを、

 $products_query =
   tep_db_query("select op.products_id, op.products_name, pd.products_url from " .
                TABLE_ORDERS_PRODUCTS . " op, " . TABLE_PRODUCTS_DESCRIPTION . " pd " .
                "where op.orders_id = '" . $orders['orders_id'] . "' " .
                "and op.products_id = pd.products_id and pd.language_id = '" . $languages_id .
                "' order by pd.products_name");

にかえて、

47,48行目を、

      $products_array[] = array('id' => $products['products_id'],
                                'url' => $products['products_url'], <-- ここを追加
                                'text' => $products['products_name']);


に変更すれば、1個目の商品のURLは$products_array[0]['url']で取得できます。

40行目のif文は、お客様が「全商品についてのお知らせ」希望しない場合ということなので、
今回は、希望するしないに関わらず必要なので、削除(コメント)していいと思います。

あとは、84行目から90行目の

> 84      $products_displayed = array();
> 85      for ($i=0, $n=sizeof($products_array); $i<$n; $i++) {
> 86        if (!in_array($products_array[$i]['id'], $products_displayed)) {
> 87          echo tep_draw_checkbox_field('notify[]', $products_array[$i]['id']) . ' ' (省略)
> 88          $products_displayed[] = $products_array[$i]['id'];
> 89        }
> 90      }

を参考にして、87行目に上記URLを表示するHTMLコードを記述すればいいと思います。

# 修正イメージだけ書いたほうが楽だ ...
# 1回やり方を覚えれば後は同じなので、ゆっくり考えてみてください。

では。


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




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