ecshop模板在首页发货查询里显示收货人姓名

2016-07-07 15:02 来源:www.chinab4c.com 作者:ecshop专家

1、修改index.php的 index_get_invoice_query() 函数部分
分析函数中的SQL语句:如下

  1. $sql = 'SELECT o.order_sn, o.invoice_no, s.shipping_code FROM ' . $GLOBALS['ecs']->table('order_info') . ' AS o' .
  2. ' LEFT JOIN ' . $GLOBALS['ecs']->table('shipping') . ' AS s ON s.shipping_id = o.shipping_id' .
  3. " WHERE invoice_no > '' AND shipping_status = " . SS_SHIPPED .
  4. ' ORDER BY shipping_time DESC LIMIT 10';
复制代码
其中where条件子句" WHERE invoice_no > '' AND shipping_status = " . SS_SHIPPED .中
条件 invoice_no > '' 表示发货单号不为空的时候(这里不为空 可以写成>'' 这个我也不确定)
shipping_status = " . SS_SHIPPED 表示'发货状态。0,未发货;1,已发货;2,已收货;3,备货中',
SS_SHIPPED 为常量 ,在includes/inc_constant.php文件中定义

也就是说 定单状态为已发货,并且已经填写了发货单号的 才能在首页显示!填写发货单号是在编辑定单操作中
因为要显示收货人的姓名 所以在sql语句中 加入收货人姓名的字段 o.consignee把sql语句改为如下内容:
  1. $sql = 'SELECT o.order_sn, o.invoice_no, o.consignee, s.shipping_code FROM ' . $GLOBALS['ecs']->table('order_info') . ' AS o' .
  2. ' LEFT JOIN ' . $GLOBALS['ecs']->table('shipping') . ' AS s ON s.shipping_id = o.shipping_id' .
  3. " WHERE invoice_no > '' AND shipping_status = " . SS_SHIPPED .
  4. ' ORDER BY shipping_time DESC LIMIT 10';
复制代码
2、然后修改模板文件 library/invoice_query.lbi

{$lang.consignment} {$invoice.invoice_no}
下面增加
<br>收货人:{$invoice.consignee}
3 当然了,这样显示的$invoice.consignee 会是收货人的全称,如果想全名以王*** 张***来显示的话
继续修改 index_get_invoice_query() 函数部分

  1. $all[$key]['invoice_no'] = $shipping->query((string)$row['invoice_no']);
复制代码
下面增加一行
  1. $all[$key]['consignee']=sub_str($row['consignee'], 1, false).'**';
复制代码


回答:
如果要显示收货的大概地址应该怎么办?

不错厉害啊