如何在ECShop2.7.1版中增加客户付款时发送客服邮件的功能

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

在坛子上看到有ECShop2.6版中增加客户付款时发送客服邮件的功能的贴子

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

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

于是,在2.7.1版中试了试,发现在【$sql = “SELECT pay_status,shipping_name,shipping_fee, 】这行报错。
觉得这个功能还蛮不错的,请大侠们帮忙分析一下。看能否在2.7.1中也能用这个功能。


  • /* 发送客服邮件 */
  • if ($pay_status){
  • // 设置邮件的发件人姓名和Email地址:
  • $service_mail['email'] = $GLOBALS['_CFG']['service_email']; // 自动读取客服邮件地址;
  • $service_mail['sender'] = $GLOBALS['_CFG']['shop_name']; // 自动读取网店名称;
  • // 订单的基本情况:
  • $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 “;
  • $order_info = $GLOBALS['db']->getRow($sql);
  • if ($order_info['pay_status'] == PS_PAYED) $service_mail['status']=’已付款’;
  • if ($order_info['pay_status'] == PS_PAYING) $service_mail['status']=’已付款到支付宝’;// 货款暂存于支付宝的状态;
  • date_default_timezone_set(’PRC’);
  • $service_mail['subject'] = “订单 $order_sn {$service_mail['status']}。”; // 定义邮件的主题;
  • // 以下是定义邮件的主要内容,可以根据自己的实际情况调整:
  • $service_mail['content'] = date(’Y-m-d H:i’).” 订单 $order_sn {$service_mail['status']},可以开始发货。 \r\n”;
  • if ($note){
  • $service_mail['content'] .= ‘付款留言:’.$note.”\r\n”;
  • }
  • $service_mail['content'] .= “订单的详细情况:\r\n”;
  • $service_mail['content'] .= “总金额:{$order_info['money_paid']} 元;\r\n”;
  • $service_mail['content'] .= “配送方式:{$order_info['shipping_name']}(配送费:{$order_info['shipping_fee']})\r\n”;
  • $service_mail['content'] .= “付款方式:{$order_info['pay_name']}({$service_mail['status']})\r\n”;
  • $service_mail['content'] .= “收货人:{$order_info['consignee']}\r\n”;
  • if ($order_info['zipcode']) $order_info['zipcode'] = ” 邮编:{$order_info['zipcode']}”; else $order_info['zipcode'] = ”;
  • $service_mail['content'] .= “收货人地址:{$order_info['address']} {$order_info['zipcode']}\r\n”;
  • $service_mail['content'] .= “收货人电话:{$order_info['tel']}\r\n\r\n”;
  • // 生成商品清单:
  • $service_mail['content'] .= “订购商品清单:\r\n”;
  • $sql = “SELECT goods_sn,goods_name,goods_number,goods_price
  • FROM “.$GLOBALS['ecs']->table(’order_goods’).” og, “.$GLOBALS['ecs']->table(’order_info’).” oi
  • WHERE og.order_id = oi.order_id
  • AND oi.order_id = $order_id”;
  • $res = $GLOBALS['db']->getAll($sql);
  • foreach ($res as $value){
  • $service_mail['content'] .= “货号:{$value['goods_sn']}; \t商品:{$value['goods_name']}; \t数量:{$value['goods_number']}; \r\n”;
  • }
  • // 发送邮件:
  • send_mail($service_mail['sender'], $service_mail['email'], $service_mail['subject'], $service_mail['content'], 0);
  • }

回答:
原来2.7.1已经有邮件通知选项了,
0.“系统设置 ”>>“邮件服务器设置 ”>>(设置好后)
1.登陆mail.139.com>>注册>>登陆>>设置>>邮件到达通知>>手机上网链接WAP收邮件
2.“商店设置”-->“网店信息”-->“####@139.com”(已经在139.com上设置好)
3.“商店设置”-->“基本设置”-->“是否开启自动发送邮件”-->“是”
4.当订单已提交成功时,手机会收到邮件通知。
(奇怪的是,昨天手机还能收到139邮箱的通知,今天怎么发邮件,都收不到通知,可恶!)