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']."確認收貨?<button onclick=/"location.href='receive.php?act=receive&id=".$order_id."&con=".rawurlencode($consignee)."';/">確定</a>";
}
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'];
}
以上就是本文章的內容,希望對大家有所幫助
|
新聞熱點
疑難解答