中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ecshop如何實現后臺訂單自動確認功能

發布時間:2021-01-06 13:58:35 來源:億速云 閱讀:312 作者:小新 欄目:建站服務器

小編給大家分享一下ecshop如何實現后臺訂單自動確認功能,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

ecshop如何實現后臺訂單自動確認功能

CREATE TABLE `order_auto_confirm` (

`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,

`order_id` INT(10) UNSIGNED NOT NULL DEFAULT '0',

`order_sn` VARCHAR(20) NOT NULL,

`execute_time` INT(10) UNSIGNED NOT NULL DEFAULT '0',

`order_status` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' COMMENT '0未確定,1已經確定',

`addtime` INT(10) UNSIGNED NOT NULL DEFAULT '0',

`update_time` INT(10) UNSIGNED NOT NULL DEFAULT '0',

PRIMARY KEY (`id`),

UNIQUE INDEX `order_id` (`order_id`),

INDEX `execute_time` (`execute_time`)

)

COMMENT='訂單定期自動確定'

COLLATE='utf8_general_ci'

ENGINE=MyISAM;

一、

/admin/order.php加入以下代碼:

elseif($_REQUEST['act'] == 'order_cron')

{

$act1 = empty($_POST['act1']) ? 0 : $_POST['act1'];

if(empty($act1) || !in_array($act1, array('add', 'cancel'))) make_json_response('', -1, '未知請求act1');    $order_id = intval($_POST['order_id']);

$order = order_info($order_id);

if(empty($order)) make_json_response('', -2, '沒有此訂單ID');    if($order['order_status']) make_json_response('', -3, '此訂單已經確認,不用自動確認');    if($order['pay_status']) make_json_response('', -4, '此訂單支付狀態已經變動,無法添加任務');    if($act1 == 'add'){

$order_cron_time = empty($_POST['order_cron_time']) ? 0 : $_POST['order_cron_time'];        if(empty($order_cron_time)) make_json_response('', -10, '請求的時間錯誤');        $sql = 'select order_id from '.$ecs->table('order_auto_confirm').' where order_id='.$order_id;

$rs  = $db->getRow($sql);

if($rs['order_id'] == $order_id){

make_json_response('', -30, '此訂單任務已經存在,不能重復添加');

}

$execute_time = local_strtotime($order_cron_time);

$sql    = "insert into ".$ecs->table('order_auto_confirm')."(order_id, order_sn, execute_time, order_status, addtime) values(".$order_id.",'".$order['order_sn']."',".$execute_time.", 0, ".local_gettime().")";

$result = $db->query($sql);

if($result){

make_json_response('', 0, '');

}

make_json_response('', -9, '添加任務計劃失敗');

}elseif($act1 == 'cancel'){

$sql = 'delete  from '.$ecs->table('order_auto_confirm').' where order_id='.$order_id.' and order_status=0 ';

$db->query($sql);

make_json_response('', 0, '');

}

}

二、

在elseif($_REQUEST['act'] == 'info')里加入:

//取自動確定訂單信息

$sql = 'select order_status, execute_time, addtime, update_time from '.$ecs->table('order_auto_confirm').' where order_id='.$order['order_id'];

$cron= $db->getRow($sql);

if(!empty($cron)){

if($cron['order_status'] == 1)

$cron['update_time'] = sprintf($_LANG['order_auto_croned'], local_date('Y-m-d H:i:s', $cron['update_time']));

else

$cron['execute_time']= sprintf($_LANG['order_auto_cron'], local_date('Y-m-d H:i:s', $cron['execute_time']));

}

$smarty->assign('cron', $cron);

三、

/includes/modules/cron/order_auto_confirm.php

if (!defined('IN_ECS'))

{

die('Hacking attempt');

}

require_once(ROOT_PATH . 'includes/lib_order.php');

$cron_lang = ROOT_PATH . 'languages/' .$GLOBALS['_CFG']['lang']. '/cron/order_auto_confirm.php';

if (file_exists($cron_lang))

{

global $_LANG;    include_once($cron_lang);

}/* 模塊的基本信息 */

if (isset($set_modules) && $set_modules == TRUE)

{

$i = isset($modules) ? count($modules) : 0;    /* 代碼 */

$modules[$i]['code']    = basename(__FILE__, '.php');    /* 描述對應的語言項 */

$modules[$i]['desc']    = 'order_auto_confirm_desc';    /* 作者 */

$modules[$i]['author']  = 'wjzhhr';    /* 網址 */

$modules[$i]['website'] = 'http://www.wodeqingchun.com';    /* 版本號 */

$modules[$i]['version'] = '1.0.0';    /* 配置信息 */

$modules[$i]['config']  = array(

array('name' => 'order_auto_confirm_count', 'type' => 'select', 'value' => '10'),

);    return;

}

$time  = gmtime();

//$time  = local_gettime();

$limit = empty($cron['order_auto_confirm_count']) ? 5 : $cron['order_auto_confirm_count'];

$sql   = "SELECT * FROM " . $GLOBALS['ecs']->table('order_auto_confirm') . " WHERE execute_time <= ".$time." and order_status=0 LIMIT $limit";

$autodb= $db->getAll($sql);

$i     = 0;

foreach ($autodb as $key => $val)

{

$order_id = $val['order_id'];

$order_sn = $val['order_sn'];

/* 標記訂單為已確認 */

$update_status = update_order($order_id, array('order_status' => OS_CONFIRMED, 'confirm_time' => gmtime()));

update_order_amount($order_id);        /* 記錄log */

$action_note = "計劃任務:定期自動確定訂單,訂單號:".$order_sn.",執行狀態:".($update_status ? '成功' : '失敗');

order_action($order_sn, OS_CONFIRMED, SS_UNSHIPPED, PS_UNPAYED, $action_note, 'system_cron');        /* 如果原來狀態不是“未確認”,且使用庫存,且下訂單時減庫存,則減少庫存 */

if ($val['order_status'] != OS_UNCONFIRMED && $_CFG['use_storage'] == '1' && $_CFG['stock_dec_time'] == SDT_PLACE)

{

change_order_goods_storage($order_id, true, SDT_PLACE);

}        if($update_status)

{

$i  += 1;

$sql = "update " . $GLOBALS['ecs']->table('order_auto_confirm') . " set order_status=1, update_time=".$time." where order_id=".$order_id;

$db->query($sql);

}

}$string = '此次共更新:'.$i.'條數據';

echo $string;file_put_contents('./a.txt',  $time . '----' . date('Y-m-d H:i:s').$string."\r\n", FILE_APPEND);

/**

* 更新訂單總金額

* @param   int     $order_id   訂單id

* @return  bool

//zuimoban.com

*/

function update_order_amount($order_id)

{

include_once(ROOT_PATH . 'includes/lib_order.php');

//更新訂單總金額

$sql = "UPDATE " . $GLOBALS['ecs']->table('order_info') .

" SET order_amount = " . order_due_field() .

" WHERE order_id = '$order_id' LIMIT 1";    return $GLOBALS['db']->query($sql);

}

?>

四、

/languages/zh_cn/admin/order.php里加入:

//

$_LANG['order_auto_croned'] = '此訂單于 %s 已被確認';

$_LANG['order_auto_cron']   = '此訂單于 %s 進行定時確認';

$_LANG['order_auto']        = '將此訂單加入自動定時確認';

$_LANG['order_auto_time']   = '自動確認時間:';

五、

/admin/themes/order_info.htm在:{$lang.base_info}后面加入:

ecshop如何實現后臺訂單自動確認功能

在此頁面的JS里面加入:

function order_cron(order_id, act){    var order_cron_time = 0;    if(act == 'add'){        order_cron_time = document.getElementById('order_cron_time').value;        if(!order_cron_time){            alert('無法獲取時間');            return false;        }    }    Ajax.call('order.php?act=order_cron', 'order_id=' + order_id + '&act1=' + act + '&order_cron_time=' + order_cron_time, order_cron_response, 'POST', 'JSON');}function order_cron_response(res){  if (res.error == 0)  {      alert('保存成功');  }  else  {      alert(res.message);  }  return false;}

還有/themes/default/footer.dwt里是否含有:
{insert name='query_info'}
這一句,比較重要,前人把這句去掉了,害最模板到處找原因。共涉及5個文件,兩個新添加的

以上是“ecshop如何實現后臺訂單自動確認功能”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

保康县| 太康县| 镇江市| 吴桥县| 津南区| 禄丰县| 鹤峰县| 吴忠市| 长兴县| 泸西县| 安图县| 吉木乃县| 寿光市| 柘荣县| 西安市| 门头沟区| 武平县| 雅安市| 泸定县| 米林县| 河东区| 夏河县| 疏附县| 遵化市| 精河县| 梁平县| 于都县| 七台河市| 阿图什市| 府谷县| 南丹县| 新建县| 白水县| 无为县| 安康市| 松原市| 寿阳县| 澄迈县| 环江| 喀喇| 武安市|