开发前,请先阅读本站文章《ECSHOP最新IP库和升级补丁》,按照该文章的步骤做好准备工作,升级ECSHOP自带的陈旧的IP库。
安装指南
第一步:将安装文件覆盖到网站根目录(覆盖前注意备份)。
第二步:输入”站点路径/db_patch.php”,如”http://ecshop.phpally.com/db_patch.php”一键完成安装,安装完成后,请立即删除db_patch.php。
订单列表
开发指南
一、/db_patch.php
<?php
/**
* ECSHOP 清除体验数据插件 语言文件
* ----------------------------------------------------------------------------
* http://down.cuoxin.com
* A5源码 致力于php技术
* ----------------------------------------------------------------------------
* 作者: A5技术
* 邮箱: 439854744#qq.com
*/
define('IN_ECS', true);
require(dirname(__FILE__) . '/includes/init.php');
$sql = "ALTER TABLE `{$prefix}order_info` ADD `ip_address` VARCHAR( 15 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';";
$db->query($sql);
echo '数据库补丁程序执行成功,请立即删除此补丁文件(db_patch.php)。';
?>
二、编辑/admin/order.php,添加查询IP
/* 查询 */
$sql = "SELECT o.order_id, o.order_sn, o.add_time, o.order_status, o.shipping_status, o.order_amount, o.money_paid, o.ip_address, " .
"o.pay_status, o.consignee, o.address, o.email, o.tel, o.extension_code, o.extension_id, " .
"(" . order_amount_field('o.') . ") AS total_fee, " .
"IFNULL(u.user_name, '" .$GLOBALS['_LANG']['anonymous']. "') AS buyer ".
" FROM " . $GLOBALS['ecs']->table('order_info') . " AS o " .
" LEFT JOIN " .$GLOBALS['ecs']->table('users'). " AS u ON u.user_id=o.user_id ". $where .
" ORDER BY $filter[sort_by] $filter[sort_order] ".
" LIMIT " . ($filter['page'] - 1) * $filter['page_size'] . ",$filter[page_size]";
foreach (array('order_sn', 'consignee', 'email', 'address', 'zipcode', 'tel', 'user_name') AS $val)
{
$filter[$val] = stripslashes($filter[$val]);
}
set_filter($filter, $sql);
}
else
{
$sql = $result['sql'];
$filter = $result['filter'];
}
$row = $GLOBALS['db']->getAll($sql);
/* 格式话数据 */
foreach ($row AS $key => $value)
{
$row[$key]['formated_order_amount'] = price_format($value['order_amount']);
$row[$key]['formated_money_paid'] = price_format($value['money_paid']);
$row[$key]['formated_total_fee'] = price_format($value['total_fee']);
$row[$key]['short_order_time'] = local_date('m-d H:i', $value['add_time']);
$ip_area = ecs_geoip($row[$key]['ip_address']); //获取IP对应的地理位置
empty($row[$key]['ip_address']) ? '' : $row[$key]['ip_address'] .= ' [ ' . $ip_area . ' ]';
if ($value['order_status'] == OS_INVALID || $value['order_status'] == OS_CANCELED)
{
/* 如果该订单为无效或取消则显示删除链接 */
$row[$key]['can_remove'] = 1;
}
else
{
$row[$key]['can_remove'] = 0;
}
}
三、编辑/admin/templates/order_list.htm,添加显示IP
{foreachfrom=$order_listitem=orderkey=okey}
{$order.short_order_time}
{$order.address|escape}
{if$order.can_remove}
{/if}
{/foreach}
四、编辑/languages/zh_cn/admin/order.php,添加语言项
$_LANG['ip_address'] = 'IP地址';‘
五、编辑/flow.php,添加获取IP并插入数据库
$order = array(
'ip_address' => real_ip(),
'shipping_id' => intval($_POST['shipping']),
'pay_id' => intval($_POST['payment']),
'pack_id' => isset($_POST['pack']) ? intval($_POST['pack']) : 0,
'card_id' => isset($_POST['card']) ? intval($_POST['card']) : 0,
'card_message' => trim($_POST['card_message']),
'surplus' => isset($_POST['surplus']) ? floatval($_POST['surplus']) : 0.00,
'integral' => isset($_POST['integral']) ? intval($_POST['integral']) : 0,
'bonus_id' => isset($_POST['bonus']) ? intval($_POST['bonus']) : 0,
'need_inv' => empty($_POST['need_inv']) ? 0 : 1,
'inv_type' => $_POST['inv_type'],
'inv_payee' => trim($_POST['inv_payee']),
'inv_content' => $_POST['inv_content'],
'postscript' => trim($_POST['postscript']),
'how_oos' => isset($_LANG['oos'][$_POST['how_oos']]) ? addslashes($_LANG['oos'][$_POST['how_oos']]) : '',
'need_insure' => isset($_POST['need_insure']) ? intval($_POST['need_insure']) : 0,
'user_id' => $_SESSION['user_id'],
'add_time' => gmtime(),
'order_status' => OS_UNCONFIRMED,
'shipping_status' => SS_UNSHIPPED,
'pay_status' => PS_UNPAYED,
'agency_id' => get_agency_by_regions(array($consignee['country'], $consignee['province'], $consignee['city'], $consignee['district']))
);
评论列表()