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