Rumah Tutorial CMS ECShop 详解ecshop后台订单自动确认开发

详解ecshop后台订单自动确认开发

Dec 28, 2020 pm 06:01 PM
ecshop

ecshop栏目介绍ecshop后台订单自动确认开发

详解ecshop后台订单自动确认开发

推荐(免费):ecshop

bb27aa0abcde4bb11c30491fae1b227.png

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;
Salin selepas log masuk

一、
/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, '');
}
}
Salin selepas log masuk

二、
在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);
Salin selepas log masuk

三、
/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);
}
?>
Salin selepas log masuk

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

$_LANG['order_auto_croned'] = '此订单于 %s 已被确认';
$_LANG['order_auto_cron']   = '此订单于 %s 进行定时确认';
$_LANG['order_auto']        = '将此订单加入自动定时确认';
$_LANG['order_auto_time']   = '自动确认时间:';
Salin selepas log masuk

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

6e05bc0a4f787d941dfb2a6b0f95598.png

在此页面的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;}
Salin selepas log masuk

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

Atas ialah kandungan terperinci 详解ecshop后台订单自动确认开发. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah seni bina ecshop? Apakah seni bina ecshop? Feb 23, 2023 am 09:32 AM

ecshop ialah seni bina "B2C" ecshop ialah sistem kedai dalam talian bebas B2C, sesuai untuk perusahaan dan individu untuk membina kedai dalam talian yang diperibadikan dengan cepat.

Apakah kaedah untuk mengisih artikel ecshop? Apakah kaedah untuk mengisih artikel ecshop? Jun 16, 2023 am 11:30 AM

Cara menyusun artikel ecshop: 1. Isih mengikut masa penerbitan, anda boleh mengawal susunan artikel dalam senarai dengan mengubah suai masa penerbitan artikel 2. Isih mengikut klik, anda boleh mencapai pengisihan ini dengan memasang "Peringkat Klik Artikel " Fungsi pemalam, pemalam ini boleh mengira bilangan klik pada artikel; 3. Isih mengikut bilangan ulasan, anda boleh melaksanakan fungsi pengisihan ini dengan memasang pemalam "Kedudukan Komen Artikel", yang boleh mengira bilangan komen pada artikel; 4. Isih mengikut perkaitan, Fungsi pengisihan ini boleh dicapai dengan memasang pemalam "Search Ranking".

Apakah ciri-ciri ecshop? Apakah ciri-ciri ecshop? Feb 13, 2023 am 09:43 AM

Ciri-ciri: 1. Sistem sumber terbuka dengan fleksibiliti, kebolehubahsuaian dan kebolehskalaan tinggi; dan kestabilan; 7. Peningkatan rangka kerja mudah alih H5, berdasarkan penggantian komprehensif VUE, lebih fleksibel dan terbuka 8. Fungsi rebat pelbagai peringkat, menyokong kod QR, poster dan kaedah promosi lain, pembangunan pembelahan tanpa had pengedar ; daripada terminal pengurusan diperbaharui sepenuhnya, UI adalah ringkas dan cantik, dan pengalaman operasi dinaik taraf 9. Menyokong PHP7.2, dan prestasinya digandakan.

Pengurusan produk Ecshop lanjutan: pelajari cara menambah medan Pengurusan produk Ecshop lanjutan: pelajari cara menambah medan Mar 12, 2024 pm 02:06 PM

Pengurusan Produk Ecshop Lanjutan: Ketahui cara menambah medan, anda memerlukan contoh kod khusus Apabila menggunakan Ecshop untuk pengurusan produk, anda sering menghadapi situasi di mana anda perlu menambah beberapa medan tersuai untuk memenuhi keperluan tertentu. Dengan menambah medan, pengurusan produk yang lebih tepat dan pengalaman pengguna yang lebih baik boleh dicapai. Artikel ini akan memperkenalkan cara menambah medan dalam Ecshop dan memberikan contoh kod khusus. Pertama, kita perlu menjelaskan keperluan untuk menambah medan. Sebagai contoh, kita perlu menambah medan "tarikh pengeluaran" pada halaman butiran produk

Apakah program ecshop? Apakah program ecshop? Feb 16, 2023 am 10:38 AM

ECShop ialah sistem kedai dalam talian bebas B2C Ia adalah program sumber terbuka merentas platform yang dibangunkan berdasarkan bahasa PHP dan seni bina pangkalan data MYSQL Ia sesuai untuk perusahaan dan individu untuk membina kedai dalam talian yang diperibadikan. Ciri-ciri sistem pusat membeli-belah ecshop: 1. Menyokong pembangunan sekunder bebas;

Apakah model ecshop? Apakah model ecshop? Feb 22, 2023 am 09:37 AM

ecshop ialah model B2C. ECShop ialah sistem kedai dalam talian bebas B2C, sesuai untuk perusahaan dan individu untuk membina kedai dalam talian yang diperibadikan dengan cepat. B2C merujuk kepada model e-dagang, dan ia juga merupakan model runcit yang menjual produk dan perkhidmatan terus kepada pengguna kaedah pembayaran e-dagang B2C ialah gabungan tunai semasa penghantaran dan pembayaran dalam talian, dan kebanyakan syarikat memilih logistik penyumberan luar untuk penghantaran untuk menjimatkan kos operasi.

Bagaimana untuk membuang hak cipta di bahagian bawah ecshop Bagaimana untuk membuang hak cipta di bahagian bawah ecshop Aug 08, 2023 pm 02:42 PM

Kaedah untuk mengalih keluar hak cipta di bahagian bawah ecshop: 1. Ubah suai fail templat, lokasi khusus ialah: themes/your_theme directory, cari fail footer.html dalam direktori ini, buka dengan editor teks, cari segmen kod yang mengandungi maklumat hak cipta, padamkannya atau Komen keluar. Hanya simpan fail dan tutupnya 2. Untuk menggunakan pemalam, log masuk ke bahagian belakang, klik pengurusan pemalam, cari hak cipta dan kata kunci lain yang berkaitan di bahagian bawah, pilih pemalam yang sesuai untuk dipasang dan didayakan ia; 3. Untuk membeli tema, beli di laman web rasmi ECShop dsb.

Bagaimana untuk membatalkan kaedah penghantaran di ecshop Bagaimana untuk membatalkan kaedah penghantaran di ecshop Mar 03, 2023 am 09:56 AM

Cara membatalkan kaedah penghantaran dalam ecshop: 1. Cari dan buka fail "flow.dwt", kemudian padamkan "<!--{if $total.real_goods_count neq 0}-->...<!-- { /if} - ->" kod; 2. Tukar "checkOrderForm(frm)" dalam "js/shopping_flow.js" kepada "if (document.getElementById(...)".

See all articles