漂泊的云,停留的心!
人的头脑太复杂,时间过得久……

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.phpprice_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']);

如果觉的有用的话,就顶一个

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《ECSHOP后台订单里面点击编辑配送方式时出现的警告问题解决方法》
文章链接:https://piaoyun.cc/778.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途云路窝农家乐,否则法律问题自行承担。