CMS 튜토리얼 ECShop ECshop 백엔드의 주문 자동 확인 개발에 대한 자세한 설명

ECshop 백엔드의 주문 자동 확인 개발에 대한 자세한 설명

Dec 28, 2020 pm 06:01 PM
ecshop

ecshop이 칼럼에서는 ecshop 백엔드 주문 자동 확인 개발을 소개합니다

ECshop 백엔드의 주문 자동 확인 개발에 대한 자세한 설명

권장(무료): 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;
로그인 후 복사

1. 다음을 추가합니다. 코드를
/ 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, '');
}
}
로그인 후 복사

2.
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);
로그인 후 복사

3.
/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 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);
}
?>
로그인 후 복사

4 .
/언어/ 추가:

$_LANG['order_auto_croned'] = '此订单于 %s 已被确认';
$_LANG['order_auto_cron']   = '此订单于 %s 进行定时确认';
$_LANG['order_auto']        = '将此订单加入自动定时确认';
$_LANG['order_auto_time']   = '自动确认时间:';
로그인 후 복사

to zh_cn/admin/order.php Five,
/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개의 파일이 관련되어 있는데, 2개가 새로 추가되었습니다

위 내용은 ECshop 백엔드의 주문 자동 확인 개발에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

ECshop의 아키텍처는 무엇입니까? ECshop의 아키텍처는 무엇입니까? Feb 23, 2023 am 09:32 AM

ecshop은 "B2C" 아키텍처입니다. ecshop은 기업과 개인이 개인화된 온라인 상점을 신속하게 구축하는 데 적합한 B2C 독립 온라인 상점 시스템입니다. 이 시스템은 PHP 언어 및 MYSQL 데이터베이스 아키텍처를 기반으로 개발된 크로스 플랫폼 오픈 소스 프로그램입니다.

ECshop 기사를 정렬하는 방법은 무엇입니까? ECshop 기사를 정렬하는 방법은 무엇입니까? Jun 16, 2023 am 11:30 AM

ECshop 기사 정렬 방법: 1. 게시 시간을 기준으로 정렬합니다. 기사 게시 시간을 수정하여 목록의 기사 순서를 제어할 수 있습니다. 2. 클릭수를 기준으로 정렬하려면 "기사 클릭 순위"를 설치하여 정렬할 수 있습니다. " 플러그인 기능, 이 플러그인은 기사 클릭 수를 계산할 수 있습니다. 3. 댓글 수를 기준으로 정렬합니다. "기사 댓글 순위" 플러그인을 설치하면 이 정렬 기능을 구현할 수 있습니다. 기사에 대한 댓글 수 4. 관련성순으로 정렬. 이 정렬 기능은 "검색 순위" 플러그인을 설치하여 구현할 수 있습니다.

ECshop 제품 관리 고급: 필드 추가 방법 알아보기 ECshop 제품 관리 고급: 필드 추가 방법 알아보기 Mar 12, 2024 pm 02:06 PM

Ecshop 제품 관리 고급: 필드를 추가하는 방법을 알아보세요. 특정 코드 예제가 필요합니다. 제품 관리를 위해 Ecshop을 사용할 때 특정 요구 사항을 충족하기 위해 일부 사용자 정의 필드를 추가해야 하는 상황이 자주 발생합니다. 필드를 추가하면 보다 정확한 제품 관리와 더 나은 사용자 경험을 얻을 수 있습니다. 이 글에서는 Ecshop에서 필드를 추가하는 방법을 소개하고 구체적인 코드 예시를 제공합니다. 먼저, 필드 추가의 필요성을 명확히 해야 합니다. 예를 들어 제품 세부정보 페이지에 '생산 날짜' 필드를 추가해야 합니다.

엑스샵의 특징은 무엇인가요? 엑스샵의 특징은 무엇인가요? Feb 13, 2023 am 09:43 AM

특징: 1. 유연성, 사용자 정의 가능성 및 높은 확장성을 갖춘 오픈 소스 시스템 2. 독립적인 보조 개발 지원 3. 풍부한 템플릿 및 플러그인 4. 강력한 산업 적응성 5. 더 강력한 신뢰성 7. 모바일 H5 프레임워크 업그레이드, VUE 포괄적 교체를 기반으로 더욱 유연하고 개방적입니다. 8. 다단계 리베이트 기능, QR 코드, 포스터 및 기타 프로모션 방법 지원, 유통업체의 무제한 핵분열 개발; 관리 터미널이 완전히 새롭게 바뀌었고 UI가 단순하고 아름다워졌으며 운영 환경이 업그레이드되었습니다. 9. PHP7.2를 지원하고 성능이 두 배로 향상되었습니다.

엑스샵은 어떤 프로그램인가요? 엑스샵은 어떤 프로그램인가요? Feb 16, 2023 am 10:38 AM

ECShop은 B2C 독립 온라인 상점 시스템으로, PHP 언어와 MYSQL 데이터베이스 아키텍처를 기반으로 개발된 크로스 플랫폼 오픈 소스 프로그램으로 기업과 개인이 개인화된 온라인 상점을 신속하게 구축하는 데 적합합니다. ecshop 몰 시스템의 특징은 다음과 같습니다. 1. 독립적인 2차 개발 지원 2. 풍부한 템플릿 및 플러그인 3. 강력한 산업 적응성 4. 소프트웨어 공급업체의 제약을 피합니다.

엑스샵 모델이 뭔가요? 엑스샵 모델이 뭔가요? Feb 22, 2023 am 09:37 AM

ECshop은 B2C 모델입니다. ECShop은 B2C 독립 온라인 상점 시스템으로 기업과 개인이 개인화된 온라인 상점을 신속하게 구축하는 데 적합합니다. B2C는 전자상거래 모델을 말하며 소비자에게 제품과 서비스를 직접 판매하는 소매 모델이기도 하다. B2C 전자상거래의 결제방식은 현금결제와 온라인 결제가 결합된 형태로 대부분의 기업이 물류를 선택한다. 운영 비용을 절감하기 위해 배송을 아웃소싱합니다.

EC숍 하단 저작권 제거 방법 EC숍 하단 저작권 제거 방법 Aug 08, 2023 pm 02:42 PM

ecshop 하단에 있는 저작권을 제거하는 방법: 1. 템플릿 파일을 수정합니다. 구체적인 위치는 다음과 같습니다: themes/your_theme 디렉토리, 이 디렉토리에서 footer.html 파일을 찾아 텍스트 편집기로 열고 다음이 포함된 코드 세그먼트를 찾습니다. 저작권 정보를 삭제하거나 댓글을 달아주세요. 2. 플러그인을 사용하려면 백엔드에 로그인하고 플러그인 관리를 클릭한 후 하단에서 저작권 및 기타 관련 키워드를 검색하고 적합한 플러그인을 선택하여 설치하세요. 3. 테마 구매는 ECShop 공식 홈페이지 등에서 구매하세요.

ECshop에는 어떤 기능이 있나요? ECshop에는 어떤 기능이 있나요? Feb 23, 2023 am 09:29 AM

ecshop의 기능은 다음과 같습니다. 1. 상품 관리 3. 광고 관리 6. 기사 관리 8. 시스템 설정 10. 템플릿 관리 11. 데이터베이스 관리 등

See all articles