chinamail.php

来自「全新且完善的强大网上商店系统」· PHP 代码 · 共 196 行

PHP
196
字号
<?php

//最关键的是在用户注册时的省市名称要和送贷模块中的地址表要名称一致 

class chinamail { 
     var $code, $title, $description, $enabled, $num_domestic_zones, $num_inter_zones, $num_zones,$safe_mode_value; 

// class constructor 
    function chinamail() { 
         global $safe_mode_value; 
         $this->code = 'chinamail'; 
         $this->title = MODULE_SHIPPING_CHINAMAIL_TEXT_TITLE; 
         $this->description = MODULE_SHIPPING_CHINAMAIL_TEXT_DESCRIPTION; 
         $this->sort_order = MODULE_SHIPPING_CHINAMAIL_SORT_ORDER; 
         $this->icon = ''; 
         $this->tax_class = MODULE_SHIPPING_CHINAMAIL_TAX_CLASS; 
         $this->enabled = ((MODULE_SHIPPING_CHINAMAIL_STATUS == 'True') ? true : false); 
         $this->safe_mode_value = $safe_mode_value; 

// CUSTOMIZE THIS SETTING FOR THE NUMBER OF ZONES NEEDED 
         $this->num_domestic_zones = 10; 
         $this->num_inter_zones = 0; 
         $this->num_zones = $this->num_domestic_zones + $this->num_inter_zones; 
    } 

// class methods 
    function quote($method = '') { 
         global $order, $shipping_weight; 

         $packge_fee = 5; 
         $dest_country = $order->delivery['country']['iso_code_2']; 
         $dest_province = $order->delivery['state']; 
         $dest_city = $order->delivery['city']; 
         $dest_zone_id; 

// get the safe mode money 

        $safe_money = $order->info['total'] / 100; 



// A zone inside china is a group of provinces. 
        if($dest_country == "CN") { 
              $dest_zone_id = $dest_province.':'.$dest_city; 
        } else { 
              $dest_zone_id = $dest_country; 
        } 

        $dest_zone = 0; 
        $error = false; 
        $err_msg; 

        for ($i=1; $i<=$this->num_zones; $i++) { 
             $zones_table = @constant('MODULE_SHIPPING_CHINAMAIL_ZONES_' . $i); 
             $zones = split("[,]", $zones_table); 
             $dest_zone_array = explode(':',$dest_zone_id); 
             if (in_array($dest_zone_array[0], $zones) || in_array($dest_zone_array[1],$zones)) { 
                 $dest_zone = $i; 
                 break; 
             } 
        } 

        if ($dest_zone == 0) { 
             $error = true; 
             $err_msg = MODULE_SHIPPING_CHINAMAIL_INVALID_ZONE; 
        } else { 
             $shipping = -1; 
             $zones_cost = @constant('MODULE_SHIPPING_CHINAMAIL_COST_' . $dest_zone); 

             $cost_table = split("[:]" , $zones_cost); 

             if ($shipping_weight <= $cost_table[0]) { 
                  $shipping = $cost_table[3]; 
                  $shipping_method = MODULE_SHIPPING_CHINAMAIL_TEXT_WAY . ' ' . $dest_zone_id . ' : ' . $shipping_weight . ' ' . MODULE_SHIPPING_CHINAMAIL_TEXT_UNITS; 
             } else if ($shipping_weight <= $cost_table[1] && $shipping_weight > $cost_table[0]){ 
                  $shipping_weight_add = $shipping_weight - $cost_table[0]; 
                  for ($mail_num=0;$shipping_weight_add >=0; $shipping_weight_add = $shipping_weight_add - $cost_table[2]) { 
									     $mail_num++;
									} 
                  $shipping = $cost_table[3] + $mail_num * $cost_table[4]; 

                  $shipping_method = MODULE_SHIPPING_CHINAMAIL_TEXT_WAY . ' ' . $dest_zone_id . ' : ' . $shipping_weight . ' ' . MODULE_SHIPPING_CHINAMAIL_TEXT_UNITS; 
             } else if($shipping_weight > $cost_table[1]){ 
                  $shipping_weight_add = $shipping_weight - $cost_table[0]; 
                  for ($mail_num=0;$shipping_weight_add >=0; $shipping_weight_add = $shipping_weight_add - $cost_table[2]) { 
                      $mail_num++;
									} 
                  $shipping = $cost_table[3] + $mail_num * $cost_table[5]; 

                  $shipping_method = MODULE_SHIPPING_CHINAMAIL_TEXT_WAY . ' ' . $dest_zone_id . ' : ' . $shipping_weight . ' ' . MODULE_SHIPPING_CHINAMAIL_TEXT_UNITS; 
             } 
        } 

        if ($shipping == -1) { 
//$shipping_cost = 0; 
//$shipping_method = MODULE_SHIPPING_CHINAPOST_UNDEFINED_RATE; 
             $error = true; 
             $err_msg = MODULE_SHIPPING_CHINAMAIL_UNDEFINED_RATE; 
        } else { 
             $shipping_cost = ($shipping + @constant('MODULE_SHIPPING_CHINAMAIL_HANDLING_' . $dest_zone) + $packge_fee); 
        } 

        if($this->safe_mode_value == 0){ 
             $shipping_cost = $shipping_cost + $safe_money; 
             $shipping_method .= " ".MODULE_SHIPPING_CHINAMAIL_SAFE; 
        } 

//$shipping_method .= MODULE_SHIPPING_CHINAMAIL_DETAIL; 
        $this->quotes = array('id' => $this->code, 
                          'module' => MODULE_SHIPPING_CHINAMAIL_TEXT_TITLE, 
                         'methods' => array(array('id' => $this->code, 
                           'title' => $shipping_method, 
                            'cost' => $shipping_cost, 
                           'later' => false))); 

         if ($this->tax_class > 0) { 
             $this->quotes['tax'] = tep_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']); 
         } 

         if (tep_not_null($this->icon)) $this->quotes['icon'] = tep_image($this->icon, $this->title); 

         if ($error == true) $this->quotes['error'] = $err_msg;//MODULE_SHIPPING_CHINAPOST_INVALID_ZONE; 
             return $this->quotes; 
         } 

    function check() { 
        global $db,$table_configuration;
        if (!isset($this->_check)) { 
             $check_query = $db->query("select configuration_value from $table_configuration where configuration_key = 'MODULE_SHIPPING_CHINAMAIL_STATUS'"); 
             $this->_check = $db->num_rows($check_query); 
        } 
        return $this->_check; 
    } 

    function install() { 
        global $db,$table_configuration;
        $mail_zones[0] = array('北京市,重庆市,西安,保定,天津市,沧州,太原,宁武,临汾,运城,离石,南京,淮阴,盐城,合肥,蚌埠,阜阳,济南,德州,滨州,究州,临沂,聊城,恩施,兴义,昆明,南充,内江,万县,达川,宝鸡,天水,平凉,庆阳,涪陵,商州','1:5:0.5:9:4:2.2','0'); 
        $mail_zones[1] = array('上海市,石家庄,邯郸,长治,无锡,徐州,宁波,温州,芜湖,黄山,赤峰,漳州,泉州,福安,荷泽,洛阳,三门峡,商丘,新乡,安阳,荆州,宜昌,十堰,贵阳,遵义,安顺,凯里,铜仁,思南,毕节,六盘水','1:5:0.5:8:3.5:1.9', '0'); 
        $mail_zones[2] = array('云南省,成都,宁夏,陕西省,昌黎,张家口,承德,大同,集宁,东胜,太仆寺旗,锡林浩特,通辽,沈阳,锦州,建平,潍坊,青岛,烟台,雅安,康定,西昌,昭觉,乐山,锦阳,宜滨,阿坝,马尔康,武都,临夏,甘南,西宁,海南,黄南,海北,巴中','1:5:0.5:10:4.5:2.5', '0'); 
        $mail_zones[3] = array('吉林省,黑龙江省,临河,巴林左旗,白城,大连,丹东,张掖,酒泉,安西,玉树,果洛,大柴旦,格尔木,哈密,昌都,丁胄,甘孜','1:5:0.5:12:5.5:3.1', '0'); 
        $mail_zones[4] = array('杭州,金华,安庆,福州,建阳,三明,九江,上饶,抚州,吉安,郑州,许昌,南阳,信阳,武汉,黄石,襄樊,怀化,吉首,南宁,柳州,百色,河池,钦州,都匀','1:5:0.5:7:3:1.6','0'); 
        $mail_zones[5] = array('南昌,长沙,湘潭,益阳,邵阳,永州,常德,海口,桂林,玉林','1:5:0.5:6:2.5:1.3','0'); 
        $mail_zones[6] = array('广东省,赣州,衡阳,郴州,梧州','1:5:0.5:5:2:1','0'); 
        $mail_zones[7] = array('拉萨,那曲,茫崖,乌鲁木齐,乌苏,库尔勒','1:5:0.5:14:6.5:3.7','0'); 
        $mail_zones[8] = array('阿里,和田','1:5:0.5:20:9:6','0'); 
        $mail_zones[9] = array('新疆,日喀则,亚东,山南,林芝','1:5:0.5:16:7.5:4.3','0'); 

        $db->query("insert into $table_configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('提供国内快递包裹服务', 'MODULE_SHIPPING_CHINAMAIL_STATUS', 'True', '你想为顾客提供邮政包裹快递服务吗?', '6', '0', 'tep_cfg_select_option(array(\'True\', \'No\'), ', now())"); 
        $db->query("insert into $table_configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('税别', 'MODULE_SHIPPING_CHINAMAIL_TAX_CLASS', '0', '按以下税别对邮费收税。', '6', '0', 'tep_get_tax_class_title', 'tep_cfg_pull_down_tax_classes(', now())"); 
        $db->query("insert into $table_configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('排序顺序', 'MODULE_SHIPPING_CHINAMAIL_SORT_ORDER', '0', '邮政包裹快递的显示顺序。', '6', '0', now())"); 
        for ($i = 1; $i <= $this->num_zones; $i++) { 
              $default_countries = ''; 
              $zone_name = ' '; 
              $zone_desc1 = ' '; 
              $zone_desc2 = ' '; 

              if ($i <= $this->num_domestic_zones) { 
                   $zone_name = '国内快送区 '. $i; 
                   $zone_desc1 = $zone_name . ' 省/市/自治区'; 
                   $zone_desc2 = '列出该区所属省/市/自治区简称,并用逗号分开。'; 
              } else { 
                   $j = $i - $this->num_domestic_zones; 
                   $zone_name = '国际邮区 ' . $j; 
                   $zone_desc1 = $zone_name . ' 国家/地区'; 
                   $zone_desc2 = '列出该区所属国家/地区的2位ISO代码,并用逗号分开。'; 
              } 

              $k = $i - 1; 

              $db->query("insert into $table_configuration (configuration_title, configuration_key, configuration_value, 
                     configuration_description, configuration_group_id, sort_order, date_added) values ('" . $zone_desc1 . "', 
                     'MODULE_SHIPPING_CHINAMAIL_ZONES_" . $i ."', '" . $mail_zones[$k][0] . "', '" . $zone_desc2 . " ', '6', '0', now())"); 
              $db->query("insert into $table_configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('". $zone_name ." 资费表', 'MODULE_SHIPPING_CHINAMAIL_COST_" . $i ."', '" . $mail_zones[$k][1] ." ', '例如:1:5:0.5:16:7.5:4.3 首重1公斤16元,续重0.5公斤,5公斤以下续重为7.5元,5公斤以上续重为4.3元。', '6', '0', now())"); 
              $db->query("insert into $table_configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('". $zone_name ." 手续费', 'MODULE_SHIPPING_CHINAMAIL_HANDLING_" . $i."', '". $mail_zones[$k][2] ." ', '" . $zone_name . " 送货的手续费。', '6', '0', now())"); 
        } 
    } 

    function remove() { 
         global $db,$table_configuration;
				 $db->query("delete from $table_configuration where configuration_key in ('" . implode("', '", $this->keys()) . "')"); 
    } 

    function keys() { 
         $keys = array('MODULE_SHIPPING_CHINAMAIL_STATUS', 'MODULE_SHIPPING_CHINAMAIL_TAX_CLASS', 'MODULE_SHIPPING_CHINAMAIL_SORT_ORDER'); 

         for ($i=1; $i<=$this->num_zones; $i++) { 
              $keys[] = 'MODULE_SHIPPING_CHINAMAIL_ZONES_' . $i; 
              $keys[] = 'MODULE_SHIPPING_CHINAMAIL_COST_' . $i; 
              $keys[] = 'MODULE_SHIPPING_CHINAMAIL_HANDLING_' . $i; 
         } 

         return $keys; 
    } 
}
?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?