ecshop如何实现后台订单自动确认功能
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下ecshop如何实现后台订单自动确认功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!CREATE TA
千家信息网最后更新 2026年11月02日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}后面加入:
在此页面的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如何实现后台订单自动确认功能"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
订单
任务
信息
库存
时间
状态
篇文章
更新
功能
后台
成功
代码
内容
金额
单于
里加
重要
不怎么
不用
两个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中关村互联网科技集团
科技互联网公司装修
麻工互联网科技
郑州华宇互联网科技
互联网科技大会
互联网科技汛
互联网科技英文翻译
无锡溥仪互联网科技有限公司
哈尔滨秒房互联网科技有限公司
互联网科技热点资讯
互联网金融科技公司干啥的
广州市恰铎互联网科技有限公司
烟台灵鸽互联网科技有限公司
工业互联网山东科技大学
上海钢联属于互联网科技股吗
广州千川互联网科技有限公司
领航科技大厦互联网公司
浙南科技城互联网大厦招聘
互联网科技新闻
互联网 科技节活动 微视频大赛
瑰夏咖啡
科技股互联网
互联网公司 科技公司
百单互联网科技有限公司
上海卓越科技 互联网
互联网金融监管科技
互联网科技的全部知识
四川互联网展示科技馆设计
广州智享互联网科技
数字互联网科技有限公司