新聞中心
ECSHOP修正recieve.php判斷不嚴(yán)謹(jǐn)導(dǎo)致郵件自動確認(rèn)收貨
作者 / 無憂主機 時間 2015-11-28 17:27:10
今天小編在一個技術(shù)論壇上看了這樣一個求助帖,一位用ecshop建站的店長朋友反應(yīng)“用戶明明沒有確認(rèn)收貨,可是會員管理里面,訂單狀態(tài)卻顯示為已經(jīng)確認(rèn)收貨”。看到這個求助帖之后,小編很好奇。于是就各種研究,終于找到了問題所在。 這是因為ecshop后臺點擊發(fā)貨之后,系統(tǒng)會主動發(fā)送郵件到用戶預(yù)留的聯(lián)絡(luò)郵箱中,而ecshop程序的recieve規(guī)劃是用戶點擊了鏈接就會自動將訂單狀態(tài)改為 確認(rèn)收貨。這是因為QQ郵件的spam系統(tǒng)會主動去點擊郵件里面的鏈接是不是垃圾或者廣告地址,所以這就是用戶訂單頁面顯示確認(rèn)收貨的原因。那么要阻止這種情況的發(fā)生,只能通過修改recieve.php文件來實現(xiàn)了。 編輯recieve.php文件查找如下代碼:
/* 修改訂單發(fā)貨狀態(tài)為“確認(rèn)收貨” */ $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'];將以上代碼修正為如下:
//確認(rèn)頁面 $act = !empty($_REQUEST['act']) ? rawurldecode($_REQUEST['con']) : 'confirm'; // 驗證碼 if ($act == 'confirm') { $msg = $order['order_sn']."確認(rèn)收貨?<button onclick=\"location.href='receive.php?act=receive&id=". $order_id."&con=".rawurlencode($consignee)."';\">確定</a>"; } else { /* 修改訂單發(fā)貨狀態(tài)為“確認(rèn)收貨” */ $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']; }這樣就搞定了!本方法已經(jīng)在無憂主機php免備案空間測試通過,有需要的朋友可以試試看。 無憂主機相關(guān)文章推薦閱讀: 如何限制ECSHOP商品比較的數(shù)量 ECSHOP教程:用新窗口打開商品頁面 ECSHOP教程:在首頁的發(fā)貨查詢里顯示省市區(qū)地址信息
本文地址:http://www.love62.cn/ecshop/20987.html