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

Zurück zum Archiv-Index

rts web****@rt-s*****
2005年 6月 30日 (木) 23:28:19 JST


こんばんわ曽我部さん。
レスが遅くなってしまい大変すいません。

試行錯誤のうえ何とか実現する事ができました。
最終的にはredirect.phpを利用して表示させるようにしました。

他のケースにも応用できそうなので、非常に勉強になりました。
ありがとうございます。



-----Original Message-----
From: tep-j****@lists*****
[mailto:tep-j****@lists*****]On Behalf Of Seiji
Sogabe
Sent: Wednesday, June 22, 2005 9:38 PM
To: tep-j****@lists*****
Subject: [Tep-j-general] Re: 注文完了画面にURLを表示


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

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 mailing list
Tep-j****@lists*****
http://lists.sourceforge.jp/mailman/listinfo/tep-j-general





Tep-j-general メーリングリストの案内
Zurück zum Archiv-Index