TAMURA Toshihiko
tamur****@bitsc*****
2002年 11月 4日 (月) 11:10:35 JST
福冨さん、こんにちは。 田村です。 > 私は特殊(?)な課金方法をしておりまして日本円とUSドル決済をしています。 > そこで問題が発生しました。 > > USドルで申し込んだはずなのに管理画面では日本円で表示されてしまうのです。 > 注文内容確認のメールではUSドルで表示されて送られてくるのですが管理画面の > 中でのみ日本円となってしまいます。これを日本円で申し込んだ人は日本円で、 > USドルで申し込んだ人はUSドルでの表記に変えることは可能でしょうか? 実際には試してないんですが、以下のようにすればできると思います。 データベースの中の取引テーブル(orders)にcurrencyというカラムがあって、 ここに購入時の通貨タイプ(円ならJPY)が記録されています。 そこで、管理画面(admin/orders.php)の中で次のようにします。 (1) 購入時の通貨タイプの値を取り出す。 下のようなSQLが何箇所かありますので、 $orders_query = tep_db_query("select ... from TABLE_ORDERS ... 次のように'currency'を追加します。 $orders_query = tep_db_query("select .., currency from TABLE_ORDERS ... 通貨タイプ$currency_typeは、次のように取り出せます。 $currency_type = $orders_query['currency']; # tep_db_query() は何箇所もあるので、適切なところを選びます。 (2) 表示用の文字列を作成する関数に上記の通貨タイプを与える。 $currencies->format(価格) となっているところを $currencies->format(価格, true, $currency_type) のようにします。 # 現状ではショップごとのデフォルト通貨タイプで表示するように # なっているので、常に円で表示されるわけです。 実際に複数の通貨で購入を許す場合に、一般には、 円だけで表示したほうがいいのか、 それとも購入時の通貨で表示したほうがいいものか。 ショップごとの事務処理の方法にもよるんでしょうかね。 -- 田村敏彦 / 株式会社ビットスコープ E-mail:tamur****@bitsc***** http://www.bitscope.co.jp/