服务报价 | 域名主机 | 网络营销 | 软件工具| [加入收藏]
 热线电话: #
当前位置: 主页 > php教程 > zencart教程 >

Zen-cart Geo-zone扩展

时间:2016-03-14 00:09来源: 作者: 点击:
这里主要扩展了geo_zones这个表进行扩展,后台文件对应admin/geo_zones.php 1 2 3 4 5 6 7 8 9 10 //加入如下代码防止错误 /////////////////////// $cnt = $db-metaColumns(TABLE_GEO_ZONES); if(!isset($cnt[COST])){ $db-Ex

Zen-cart扩展Geo-Zone管理

这里主要扩展了geo_zones这个表进行扩展,后台文件对应admin/geo_zones.php

1
2
3
4
5
6
7
8
9
10
//加入如下代码防止错误
///////////////////////
$cnt = $db->metaColumns(TABLE_GEO_ZONES);
if(!isset($cnt['COST'])){
    $db->Execute("ALTER TABLE ".TABLE_GEO_ZONES." ADD cost VARCHAR( 256 ) NULL DEFAULT ''");
}
if(!isset($cnt['GEO_ZONE_TYPE_ID'])){
    $db->Execute("ALTER TABLE ".TABLE_GEO_ZONES." ADD geo_zone_type_id int(11) NOT NULL DEFAULT '0'");
}
///////////////////////

cost字段主要用来保存这个区的费率,geo_zone_type_id用来对geo_zone进行分类,标识这个区是哪种类型,比如DHL或Fedex类型的分区:
Zen-cart新表geo_zones_type

其它改动就是调整查询插入更新时的相关的SQL,不过在新添加或编辑Geo_Zone时,需要下拉出Geo_Zone_Type:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
zen_draw_pull_down_menu('geo_zone_type_id', zen_get_zone_types("请选择Geo Zone Type")
 
//zen_get_zone_types()函数
function zen_get_zone_types($default = '') {
    global $db;
 
    $zone_class_array = array();
    if ($default) {
        $zone_class_array[] = array('id' => '',
                                 'text' => $default);
    }
 
    $zone_class = $db->Execute("select geo_zone_type_id, geo_zone_type_name
                                from " . TABLE_GEO_ZONES_TYPE . "
                                order by geo_zone_type_name");
 
    while (!$zone_class->EOF) {
        $zone_class_array[] = array('id' => $zone_class->fields['geo_zone_type_id'],
                                  'text' => $zone_class->fields['geo_zone_type_name']);
        $zone_class->MoveNext();
    }
    return $zone_class_array;
}

这个就可以在后台管理Geo_Zone对应的费率(cost)了。每个Geo_Zone里面包含了一个或多个国家,它们对应一个费率,再由Geo_Zone_Type知道是哪种Geo_Zone,然后可以安装规则计算运费。这个扩展意义就在这里了。

(责任编辑:最模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容