ECShop中增加客户付款时发送客服邮件的功能

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

ECShop 2.6 在客户付款的时候是没有发送客户邮件的功能,所以一旦客户付款,我们是无法通过邮件获知的。实现这个功能之后,我们就可以通过QQ邮件实现QQ提示,或者通过139邮箱实现手机短信及时通知,极大地方便我们的工作。

要实现这个功能,就要修改ECshop的程序文件:\includes\lib_payment.php,打开该文件,找到166行左右,在”如果需要,发短信”的代码下面,插入以下的代码:

  1. /* 发送客服邮件 */
  2. if ($pay_status){
  3. // 设置邮件的发件人姓名和Email地址:
  4. $service_mail['email'] = $GLOBALS['_CFG']['service_email']; // 自动读取客服邮件地址;
  5. $service_mail['sender'] = $GLOBALS['_CFG']['shop_name']; // 自动读取网店名称;
  6. // 订单的基本情况:
  7. $sql = “SELECT pay_status,shipping_name,shipping_fee,
  8. pay_name,consignee,address,zipcode,tel,money_paid
  9. FROM “.$GLOBALS['ecs']->table(’order_info’).”
  10. WHERE order_id = $order_id “;
  11. $order_info = $GLOBALS['db']->getRow($sql);
  12. if ($order_info['pay_status'] == PS_PAYED) $service_mail['status']=’已付款’;
  13. if ($order_info['pay_status'] == PS_PAYING) $service_mail['status']=’已付款到支付宝’;// 货款暂存于支付宝的状态;
  14. date_default_timezone_set(’PRC’);
  15. $service_mail['subject'] = “订单 $order_sn {$service_mail['status']}。”; // 定义邮件的主题;
  16. // 以下是定义邮件的主要内容,可以根据自己的实际情况调整:
  17. $service_mail['content'] = date(’Y-m-d H:i’).” 订单 $order_sn {$service_mail['status']},可以开始发货。 \r\n”;
  18. if ($note){
  19. $service_mail['content'] .= ‘付款留言:’.$note.”\r\n”;
  20. }
  21. $service_mail['content'] .= “订单的详细情况:\r\n”;
  22. $service_mail['content'] .= “总金额:{$order_info['money_paid']} 元;\r\n”;
  23. $service_mail['content'] .= “配送方式:{$order_info['shipping_name']}(配送费:{$order_info['shipping_fee']})\r\n”;
  24. $service_mail['content'] .= “付款方式:{$order_info['pay_name']}({$service_mail['status']})\r\n”;
  25. $service_mail['content'] .= “收货人:{$order_info['consignee']}\r\n”;
  26. if ($order_info['zipcode']) $order_info['zipcode'] = ” 邮编:{$order_info['zipcode']}”; else $order_info['zipcode'] = ”;
  27. $service_mail['content'] .= “收货人地址:{$order_info['address']} {$order_info['zipcode']}\r\n”;
  28. $service_mail['content'] .= “收货人电话:{$order_info['tel']}\r\n\r\n”;
  29. // 生成商品清单:
  30. $service_mail['content'] .= “订购商品清单:\r\n”;
  31. $sql = “SELECT goods_sn,goods_name,goods_number,goods_price
  32. FROM “.$GLOBALS['ecs']->table(’order_goods’).” og, “.$GLOBALS['ecs']->table(’order_info’).” oi
  33. WHERE og.order_id = oi.order_id
  34. AND oi.order_id = $order_id”;
  35. $res = $GLOBALS['db']->getAll($sql);
  36. foreach ($res as $value){
  37. $service_mail['content'] .= “货号:{$value['goods_sn']}; \t商品:{$value['goods_name']}; \t数量:{$value['goods_number']}; \r\n”;
  38. }
  39. // 发送邮件:
  40. send_mail($service_mail['sender'], $service_mail['email'], $service_mail['subject'], $service_mail['content'], 0);
  41. }
复制代码
保存,并上传到服务器,覆盖原文件,这样如果客户给订单付款之后,系统马上会发送一封邮件到网店的客服邮箱中。这种方法适用于任何一种已经安装的在线支付工具。

详情可以查看我的博客网站:http://www.sanywork.cn/ecshop/20090822669.html
这个功能是今天刚刚写出来的,可能还有些地方不够完善,欢迎大家多多给我意见。

回答:
不错,用上了,去测试一下。



貌似不能用。在购物提交订单时出错:

Parse error: parse error, unexpected T_STRING in d:....\includes\lib_payment.php on line 180

估计是这段代码出错:
$sql = “SELECT pay_status,shipping_name,shipping_fee,
pay_name,consignee,address,zipcode,tel,money_paid
FROM “.$GLOBALS['ecs']->table(’order_info’).”
WHERE order_id = $order_id “;

这个功能实用

这个应该是语句的语法出现问题了! 3# wudaoshop

功能还是很实用的!!

感谢楼主!

是哦,我试了一试,出错了。也是那个地方。
我是用2.7.1试的。
请大侠指导一下。