A5下载 - 努力做内容最丰富最安全的下载站!

A5站长下载站

当前位置:A5下载 > 源码技巧 > Ecshop > ecshop后台订单列表显示IP和地理位置

ecshop后台订单列表显示IP和地理位置

时间:2015-04-10 08:55作者:zhao人气:472

开发前,请先阅读本站文章《ECSHOP最新IP库和升级补丁》,按照该文章的步骤做好准备工作,升级ECSHOP自带的陈旧的IP库。

安装指南

第一步:将安装文件覆盖到网站根目录(覆盖前注意备份)。

第二步:输入”站点路径/db_patch.php”,如”http://ecshop.phpally.com/db_patch.php”一键完成安装,安装完成后,请立即删除db_patch.php。

 

 

订单列表

 

 

开发指南

一、/db_patch.php

<?php

/**

* ECSHOP 清除体验数据插件 语言文件

* ----------------------------------------------------------------------------

* http://down.admin5.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

<tablecellpadding="3"cellspacing="1">

<tr>

<th>

<inputonclick='listTable.selectAll(this,"checkboxes")'type="checkbox"/><ahref="javascript:listTable.sort('order_sn','DESC');">{$lang.order_sn}</a>{$sort_order_sn}

</th>

<th><ahref="javascript:listTable.sort('add_time','DESC');">{$lang.order_time}</a>{$sort_order_time}</th>

<th><ahref="javascript:listTable.sort('consignee','DESC');">{$lang.consignee}</a>{$sort_consignee}</th>

<th><ahref="javascript:listTable.sort('ip_address','DESC');">{$lang.ip_address}</a>{$sort_ip_address}</th>

<th><ahref="javascript:listTable.sort('total_fee','DESC');">{$lang.total_fee}</a>{$sort_total_fee}</th>

<th><ahref="javascript:listTable.sort('order_amount','DESC');">{$lang.order_amount}</a>{$sort_order_amount}</th>

<th>{$lang.all_status}</th>

<th>{$lang.handler}</th>

<tr>

{foreachfrom=$order_listitem=orderkey=okey}

<tr>

<tdvalign="top"nowrap="nowrap"><inputtype="checkbox"name="checkboxes"value="{$order.order_sn}"/><ahref="order.php?act=info&order_id={$order.order_id}"id="order_{$okey}">{$order.order_sn}{if$order.extension_codeeq"group_buy"}<br/><di
valign="center">{$lang.group_buy}</div>{elseif$order.extension_codeeq"exchange_goods"}<br/><divalign="center">{$lang.exchange_goods}</div>{/if}</a></td>

<td>{$order.buyer|escape}<br/>{$order.short_order_time}</td>

<tdalign="left"valign="top"><ahref="mailto:{$order.email}">{$order.consignee|escape}</a>{if$order.tel}[TEL:{$order.tel|escape}]{/if}<br/>{$order.address|escape}</td>

<tdalign="left"valign="top"nowrap="nowrap">{$order.ip_address}</td>

<tdalign="right"valign="top"nowrap="nowrap">{$order.formated_total_fee}</td>

<tdalign="right"valign="top"nowrap="nowrap">{$order.formated_order_amount}</td>

<tdalign="center"valign="top"nowrap="nowrap">{$lang.os[$order.order_status]},{$lang.ps[$order.pay_status]},{$lang.ss[$order.shipping_status]}</td>

<tdalign="center"valign="top"nowrap="nowrap">

<ahref="order.php?act=info&order_id={$order.order_id}">{$lang.detail}</a>

{if$order.can_remove}

<br/><ahref="javascript:;"onclick="listTable.remove({$order.order_id},remove_confirm,'remove_order')">{$lang.remove}</a>

{/if}

</td>

</tr>

{/foreach}

</table>

四、编辑/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']))

);

标签ecshop,后台,订单,列表,显示,地理位置,开发,请先

相关下载

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

公众号