k-shimada
k-shi****@koto-*****
2006年 9月 15日 (金) 02:31:05 JST
島田と申します。 過去ログでありましたが、 http://www.bitscope.co.jp/search/html/tep-j-general/msg05733.html 解決出来なかった為投稿させていただきました。 何卒ご教授いただけないでしょうか。よろしくお願い致します。 メール便の利用について、 flat.phpをカスタマイズし、 重量制限により checkout_shipping.phpで表示・非表示をさせたいと思ってい ます。 重量設定の詳細としては、 メール便非対応の商品:0 kg メール便対応の商品:1〜6kg として、 カートに入っている全商品の総重量が1〜6kgの時だけ checkout_shipping.phpにて flat.phpのモジュールを表示させるといったとこ ろです。 (当方、メール便以外の商品に重量を割り当てる必要がないため。) まず過去ログを参考に、$order->products[$index]['weight']の合計を出そうと 思いましたが、 合計の出し方が分からず、、、 for ($i=0, $n=sizeof($products); $i<$n; $i++) { でくくって echo すれば配列の表示はできましたが、 合計を出せませんでした。 そこで重量の合計をあらわす関数を探し、 $shipping_weight がyuupack.phpにあり、 これをcheckout_shipping.phpの適当なところでechoさせたところ、 重量の合計を表示できました。 重量の合計を表示できたので、 $shipping_weight をflat.phpにて、 条件により$this->enabled = trueまたはfalseにすればいいと思い、 様々試してみたが、うまくいかない状況です。 分かりませんが、$shipping_weightが条件に反映されていないような、、、 条件のつけ方で、商品毎の重量にかかわらず表示・非表示が変わっちゃいます。 -----以下カスタマイズ内容です。-------------------------- function flat() {の下に、 global $shipping_weight; を書き加えました。 (不要でしょうか?) $this->enabled = ((MODULE_SHIPPING_FLAT_STATUS == 'True') ? true : false); の下に、 if ($shipping_weight == 0){ $this->enabled = false; } if ($shipping_weight > 6){ $this->enabled = false; } を書き加えると、重量にかかわらず非表示になっています。 ちなみに、 上記文のfalseをtrueにかえると、条件がなんであろうと表示になります。 (例えば、if ($shipping_weight == 100)でも )