ECSHOP如何手动输入收货地址

2016-07-07 15:00 来源:www.chinab4c.com 作者:ecshop专家

做外贸的朋友有的涉及省、市众多,不想在后台逐个添加,想要实现国家和省市由选择的方式改为手动输入文本框的
方式。下面就介绍一下ECSHOP开发过程中的ECSHOP实现收货国家省市由选择下拉菜单改为手动输入文本框的实现方法。

修改ECSHOP默认的数据库中存储省市国家的表内容数据,就要先修改数据库的字段。
将ecs_order_info表中的对应字段修改为字符串型:

alter table`ecs_order_info` modify province varchar(255) NOT NULL DEFAULT '';
alter table`ecs_order_info` modify city varchar(255) NOT NULL DEFAULT '';
alter table`ecs_order_info` modify district varchar(255) NOT NULL DEFAULT '';

修改ecs_user_address表中的字段。

alter table`ecs_user_address` modify province varchar(255) NOT NULL DEFAULT '';
alter table`ecs_user_address` modify city varchar(255) NOT NULL DEFAULT '';
alter table`ecs_user_address` modify district varchar(255) NOT NULL DEFAULT '';

下面就可以将ecshop中的国家、省份和城市改为手动输入文本框了。
修改的提交数据和读取数据的时候所得到的值,省份的索引值到对应表中查询找到对应的省份并予以输出,
现在,就要直接读取这个值,并给予输出。

在表单提交页:

flow.php中,我们将保存收货人信息代码中的

'district'=> empty($_POST['district'])? '' : intval($_POST['province'],

改为

'district'=> empty($_POST['district'])? '' : $_POST['province'],

这样就把省份去的值直接写入数据库,修改国家(这里将district改为国家)和城市,这样就把用户输入的
值直接写入了数据库运用的是同样的方法。

修改用户中心的对应字段,把整数值转换的函数去掉。修改订单确认的页面,页面的用户信息确认,需要修改其中的显示方式。

要将C**igee中的对应字段加入。
比如我们把地址写成下面的样式:

{$c**ignee.address|escape}, {$c**ignee.city}, {$c**ignee.province}, {$c**ignee.district}

这样就可以从前面调用城市、省份、国家的信息了。

最后需要修改网站的后台中的订单信息页面,这个页面同样需要按照前台的显示方式来修改,找到
admin/order.php中的代码:

$sql = "SELECT concat(IFNULL(c.region_name, ''), '', IFNULL(p.region_name, ''), " .
"'', IFNULL(t.region_name, ''), '', IFNULL(d.region_name, '')) AS region " .
"FROM " . $ecs->table('order_info') . " AS o " .
"LEFT JOIN " . $ecs->table('region') . " AS c ON o.country = c.region_id " .
"LEFT JOIN " . $ecs->table('region') . " AS p ON o.province = p.region_id " .
"LEFT JOIN " . $ecs->table('region') . " AS t ON o.city = t.region_id " .
"LEFT JOIN " . $ecs->table('region') . " AS d ON o.district = d.region_id " .
"WHERE o.order_id = '$order[order_id]'";

改为:

$sql="SELECT concat(city, ' ', province, ' ', district) AS region " . "FROM ". $ecs->table('order_info') ."WHERE order_id = '$order[order_id]'";

这就实现了从order_info表中读取来的地址信息直接显示的功能。

好了,ECSHOP实现收货国家省市由选择下拉菜单改为手动的功能实现了,ecshop开发中还有很多功能可以实现,

回答:
请问怎么把下拉菜单去掉?

关注一下。有机会试试

正在测试,先回复收藏~~

正在测试

收藏了。。。支持一下

支持一下 不错

不用这么麻烦的,在外贸一般运费只要国家就行了
先在后台的数据执行 delete from ecs_region where region_id=1。(删除所有的区域,慎用)
然后在后台一级区域添加各大洲,然后二级区域添加国家就行了。
把原有的adress 改成 address1.把sign buliding 改成address2. 这样就符合国外的习惯了,不用改数据库的