解决ECSHOP后台订单里面点击编辑配送方式时出现的警告问题
警告內容:Warning: number_format() expects parameter 1 to be double, string given in D:\wamp\www\ecshop_old\includes\lib_common.php on line 966
?
解決這個問題的時候,一開始我也是先到網上查看相關的解決方案,
大部分都說是lib_common.php的price_format ()里面的$price變量沒有判斷$price為空時調用number_format()函數出錯,
然而ecshop2.7.3上面已經加了相應的判斷:if($price==='') { $price=0; }
? 所以問題不在這兒,我又找到了訂單里面編輯配送方式的對應的代碼,發現$shipping_list[$key]['free_money'] = price_format($shipping['configure']['free_money'])的這個里面的$shipping['configure']是序列化的,但是ecshop里面并沒有進行反序列化的處理,所以導致$shipping['configure']['free_money']的值是'a',這樣在price_format ()里面并沒有判斷他不是數字,所以出錯,現在的思路已經清晰了,只要更改將$shipping['configure']進行反序列化的處理,然后獲得相應free_money的值,就可以解決問題了,詳細的更改代碼:
將:admin/order.php的2201行的$shipping_list[$key]['free_money'] = price_format($shipping['configure']['free_money'])這行代碼先注釋掉,然后加上一下代碼:
$shipping['configure'] = unserialize($shipping['configure']);
?? ??? ??? ?$sun_shipping = array();
?? ??? ??? ?foreach($shipping['configure'] as $row){
?? ??? ??? ??? ?$sun_shipping[$row['name']] = $row['value'];
?? ??? ??? ?}
??????????? $shipping_list[$key]['free_money'] = price_format($sun_shipping['free_money']);
如果覺的有用的話,就頂一個
廣告一下:南京睿風網絡 睿風博客 ?睿風電影
轉載于:https://www.cnblogs.com/tsunlight/archive/2012/09/27/2706007.html
總結
以上是生活随笔為你收集整理的解决ECSHOP后台订单里面点击编辑配送方式时出现的警告问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2011年的总结:Fans同学的成败得失
- 下一篇: 第二十三模板 18标准模板库