php 10天自动确认收货,ECSHOP修正recieve.php判断不严谨导致邮件自动确认收货

今天小编在一个技术论坛上看了这样一个求助帖,一位用ecshop建站的店长朋友反应“用户明明没有确认收货,可是会员管理里面,订单状态却显示为已经确认收货”。看到这个求助帖之后,小编很好奇。于是就各种研究,终于找到了问题所在。

这是因为ecshop后台点击发货之后,系统会主动发送邮件到用户预留的联络邮箱中,而ecshop程序的recieve规划是用户点击了链接就会自动将订单状态改为 确认收货。这是因为QQ邮件的spam系统会主动去点击邮件里面的链接是不是垃圾或者广告地址,所以这就是用户订单页面显示确认收货的原因。那么要阻止这种情况的发生,只能通过修改recieve.php文件来实现了。

编辑recieve.php文件查找如下代码:/* 修改订单发货状态为“确认收货” */

$sql = "UPDATE " . $ecs->table('order_info') . " SET shipping_status = '" . SS_RECEIVED . "' WHERE order_id =

'$order_id'";

$db->query($sql);

/* 记录日志 */

order_action($order['order_sn'], $order['order_status'], SS_RECEIVED, $order['pay_status'], '', $_LANG

['buyer']);

$msg = $_LANG['act_ok'];

将以上代码修正为如下:

//确认页面

$act = !empty($_REQUEST['act']) ? rawurldecode($_REQUEST['con']) : 'confirm'; // 验证码

if ($act == 'confirm')

{

$msg = $order['order_sn']."确认收货?

$order_id."&con=".rawurlencode($consignee)."';\">确定";

}

else

{

/* 修改订单发货状态为“确认收货” */

$sql = "UPDATE " . $ecs->table('order_info') . " SET shipping_status = '" . SS_RECEIVED . "' WHERE

order_id = '$order_id'";

$db->query($sql);

/* 记录日志 */

order_action($order['order_sn'], $order['order_status'], SS_RECEIVED, $order['pay_status'], '', $_LANG

['buyer']);

$msg = $_LANG['act_ok'];

}

这样就搞定了!本方法已经在无忧主机php免备案空间测试通过,有需要的朋友可以试试看。

无忧主机相关文章推荐阅读:

如何限制ECSHOP商品比较的数量

ECSHOP教程:用新窗口打开商品页面

ECSHOP教程:在首页的发货查询里显示省市区地址信息

本文地址:https://www.51php.com/ecshop/20987.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值