id = 'az_dhlexpress'; $this->method_title = __( 'Configure DHL Express' ); // Title shown in admin $this->title = __( 'DHL Express Shipping' ); $this->method_description = __( 'Real Time Rates, Premium Supports Label,Pickup Sections' ); // $this->enabled = "yes"; // This can be added as an setting but for this example its forced enabled $this->init(); } /** * Init your settings * * @access public * @return void */ function init() { // Load the settings API $this->init_form_fields(); // This is part of the settings API. Override the method to add your own settings $this->init_settings(); // This is part of the settings API. Loads settings you previously init. // Save settings in admin if you have any defined add_action( 'woocommerce_update_options_shipping_' . $this->id, array( $this, 'process_admin_options' ) ); } /** * calculate_shipping function. * * @access public * @param mixed $package * @return void */ public function calculate_shipping( $package = array() ) { $pack_aft_hook = apply_filters('a2z_dhlexpress_rate_packages', $package); $general_settings = get_option('a2z_dhl_main_settings'); $general_settings = empty($general_settings) ? array() : $general_settings; $value = array(); $value['AD'] = array('region' => 'EU', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['AE'] = array('region' => 'AP', 'currency' =>'AED', 'weight' => 'KG_CM'); $value['AF'] = array('region' => 'AP', 'currency' =>'AFN', 'weight' => 'KG_CM'); $value['AG'] = array('region' => 'AM', 'currency' =>'XCD', 'weight' => 'LB_IN'); $value['AI'] = array('region' => 'AM', 'currency' =>'XCD', 'weight' => 'LB_IN'); $value['AL'] = array('region' => 'AP', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['AM'] = array('region' => 'AP', 'currency' =>'AMD', 'weight' => 'KG_CM'); $value['AN'] = array('region' => 'AM', 'currency' =>'ANG', 'weight' => 'KG_CM'); $value['AO'] = array('region' => 'AP', 'currency' =>'AOA', 'weight' => 'KG_CM'); $value['AR'] = array('region' => 'AM', 'currency' =>'ARS', 'weight' => 'KG_CM'); $value['AS'] = array('region' => 'AM', 'currency' =>'USD', 'weight' => 'LB_IN'); $value['AT'] = array('region' => 'EU', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['AU'] = array('region' => 'AP', 'currency' =>'AUD', 'weight' => 'KG_CM'); $value['AW'] = array('region' => 'AM', 'currency' =>'AWG', 'weight' => 'LB_IN'); $value['AZ'] = array('region' => 'AM', 'currency' =>'AZN', 'weight' => 'KG_CM'); $value['AZ'] = array('region' => 'AM', 'currency' =>'AZN', 'weight' => 'KG_CM'); $value['GB'] = array('region' => 'EU', 'currency' =>'GBP', 'weight' => 'KG_CM'); $value['BA'] = array('region' => 'AP', 'currency' =>'BAM', 'weight' => 'KG_CM'); $value['BB'] = array('region' => 'AM', 'currency' =>'BBD', 'weight' => 'LB_IN'); $value['BD'] = array('region' => 'AP', 'currency' =>'BDT', 'weight' => 'KG_CM'); $value['BE'] = array('region' => 'EU', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['BF'] = array('region' => 'AP', 'currency' =>'XOF', 'weight' => 'KG_CM'); $value['BG'] = array('region' => 'EU', 'currency' =>'BGN', 'weight' => 'KG_CM'); $value['BH'] = array('region' => 'AP', 'currency' =>'BHD', 'weight' => 'KG_CM'); $value['BI'] = array('region' => 'AP', 'currency' =>'BIF', 'weight' => 'KG_CM'); $value['BJ'] = array('region' => 'AP', 'currency' =>'XOF', 'weight' => 'KG_CM'); $value['BM'] = array('region' => 'AM', 'currency' =>'BMD', 'weight' => 'LB_IN'); $value['BN'] = array('region' => 'AP', 'currency' =>'BND', 'weight' => 'KG_CM'); $value['BO'] = array('region' => 'AM', 'currency' =>'BOB', 'weight' => 'KG_CM'); $value['BR'] = array('region' => 'AM', 'currency' =>'BRL', 'weight' => 'KG_CM'); $value['BS'] = array('region' => 'AM', 'currency' =>'BSD', 'weight' => 'LB_IN'); $value['BT'] = array('region' => 'AP', 'currency' =>'BTN', 'weight' => 'KG_CM'); $value['BW'] = array('region' => 'AP', 'currency' =>'BWP', 'weight' => 'KG_CM'); $value['BY'] = array('region' => 'AP', 'currency' =>'BYR', 'weight' => 'KG_CM'); $value['BZ'] = array('region' => 'AM', 'currency' =>'BZD', 'weight' => 'KG_CM'); $value['CA'] = array('region' => 'AM', 'currency' =>'CAD', 'weight' => 'LB_IN'); $value['CF'] = array('region' => 'AP', 'currency' =>'XAF', 'weight' => 'KG_CM'); $value['CG'] = array('region' => 'AP', 'currency' =>'XAF', 'weight' => 'KG_CM'); $value['CH'] = array('region' => 'EU', 'currency' =>'CHF', 'weight' => 'KG_CM'); $value['CI'] = array('region' => 'AP', 'currency' =>'XOF', 'weight' => 'KG_CM'); $value['CK'] = array('region' => 'AP', 'currency' =>'NZD', 'weight' => 'KG_CM'); $value['CL'] = array('region' => 'AM', 'currency' =>'CLP', 'weight' => 'KG_CM'); $value['CM'] = array('region' => 'AP', 'currency' =>'XAF', 'weight' => 'KG_CM'); $value['CN'] = array('region' => 'AP', 'currency' =>'CNY', 'weight' => 'KG_CM'); $value['CO'] = array('region' => 'AM', 'currency' =>'COP', 'weight' => 'KG_CM'); $value['CR'] = array('region' => 'AM', 'currency' =>'CRC', 'weight' => 'KG_CM'); $value['CU'] = array('region' => 'AM', 'currency' =>'CUC', 'weight' => 'KG_CM'); $value['CV'] = array('region' => 'AP', 'currency' =>'CVE', 'weight' => 'KG_CM'); $value['CY'] = array('region' => 'AP', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['CZ'] = array('region' => 'EU', 'currency' =>'CZF', 'weight' => 'KG_CM'); $value['DE'] = array('region' => 'AP', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['DJ'] = array('region' => 'EU', 'currency' =>'DJF', 'weight' => 'KG_CM'); $value['DK'] = array('region' => 'AM', 'currency' =>'DKK', 'weight' => 'KG_CM'); $value['DM'] = array('region' => 'AM', 'currency' =>'XCD', 'weight' => 'LB_IN'); $value['DO'] = array('region' => 'AP', 'currency' =>'DOP', 'weight' => 'LB_IN'); $value['DZ'] = array('region' => 'AM', 'currency' =>'DZD', 'weight' => 'KG_CM'); $value['EC'] = array('region' => 'EU', 'currency' =>'USD', 'weight' => 'KG_CM'); $value['EE'] = array('region' => 'AP', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['EG'] = array('region' => 'AP', 'currency' =>'EGP', 'weight' => 'KG_CM'); $value['ER'] = array('region' => 'EU', 'currency' =>'ERN', 'weight' => 'KG_CM'); $value['ES'] = array('region' => 'AP', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['ET'] = array('region' => 'AU', 'currency' =>'ETB', 'weight' => 'KG_CM'); $value['FI'] = array('region' => 'AP', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['FJ'] = array('region' => 'AP', 'currency' =>'FJD', 'weight' => 'KG_CM'); $value['FK'] = array('region' => 'AM', 'currency' =>'GBP', 'weight' => 'KG_CM'); $value['FM'] = array('region' => 'AM', 'currency' =>'USD', 'weight' => 'LB_IN'); $value['FO'] = array('region' => 'AM', 'currency' =>'DKK', 'weight' => 'KG_CM'); $value['FR'] = array('region' => 'EU', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['GA'] = array('region' => 'AP', 'currency' =>'XAF', 'weight' => 'KG_CM'); $value['GB'] = array('region' => 'EU', 'currency' =>'GBP', 'weight' => 'KG_CM'); $value['GD'] = array('region' => 'AM', 'currency' =>'XCD', 'weight' => 'LB_IN'); $value['GE'] = array('region' => 'AM', 'currency' =>'GEL', 'weight' => 'KG_CM'); $value['GF'] = array('region' => 'AM', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['GG'] = array('region' => 'AM', 'currency' =>'GBP', 'weight' => 'KG_CM'); $value['GH'] = array('region' => 'AP', 'currency' =>'GBS', 'weight' => 'KG_CM'); $value['GI'] = array('region' => 'AM', 'currency' =>'GBP', 'weight' => 'KG_CM'); $value['GL'] = array('region' => 'AM', 'currency' =>'DKK', 'weight' => 'KG_CM'); $value['GM'] = array('region' => 'AP', 'currency' =>'GMD', 'weight' => 'KG_CM'); $value['GN'] = array('region' => 'AP', 'currency' =>'GNF', 'weight' => 'KG_CM'); $value['GP'] = array('region' => 'AM', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['GQ'] = array('region' => 'AP', 'currency' =>'XAF', 'weight' => 'KG_CM'); $value['GR'] = array('region' => 'EU', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['GT'] = array('region' => 'AM', 'currency' =>'GTQ', 'weight' => 'KG_CM'); $value['GU'] = array('region' => 'AM', 'currency' =>'USD', 'weight' => 'LB_IN'); $value['GW'] = array('region' => 'AP', 'currency' =>'XOF', 'weight' => 'KG_CM'); $value['GY'] = array('region' => 'AP', 'currency' =>'GYD', 'weight' => 'LB_IN'); $value['HK'] = array('region' => 'AM', 'currency' =>'HKD', 'weight' => 'KG_CM'); $value['HN'] = array('region' => 'AM', 'currency' =>'HNL', 'weight' => 'KG_CM'); $value['HR'] = array('region' => 'AP', 'currency' =>'HRK', 'weight' => 'KG_CM'); $value['HT'] = array('region' => 'AM', 'currency' =>'HTG', 'weight' => 'LB_IN'); $value['HU'] = array('region' => 'EU', 'currency' =>'HUF', 'weight' => 'KG_CM'); $value['IC'] = array('region' => 'EU', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['ID'] = array('region' => 'AP', 'currency' =>'IDR', 'weight' => 'KG_CM'); $value['IE'] = array('region' => 'EU', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['IL'] = array('region' => 'AP', 'currency' =>'ILS', 'weight' => 'KG_CM'); $value['IN'] = array('region' => 'AP', 'currency' =>'INR', 'weight' => 'KG_CM'); $value['IQ'] = array('region' => 'AP', 'currency' =>'IQD', 'weight' => 'KG_CM'); $value['IR'] = array('region' => 'AP', 'currency' =>'IRR', 'weight' => 'KG_CM'); $value['IS'] = array('region' => 'EU', 'currency' =>'ISK', 'weight' => 'KG_CM'); $value['IT'] = array('region' => 'EU', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['JE'] = array('region' => 'AM', 'currency' =>'GBP', 'weight' => 'KG_CM'); $value['JM'] = array('region' => 'AM', 'currency' =>'JMD', 'weight' => 'KG_CM'); $value['JO'] = array('region' => 'AP', 'currency' =>'JOD', 'weight' => 'KG_CM'); $value['JP'] = array('region' => 'AP', 'currency' =>'JPY', 'weight' => 'KG_CM'); $value['KE'] = array('region' => 'AP', 'currency' =>'KES', 'weight' => 'KG_CM'); $value['KG'] = array('region' => 'AP', 'currency' =>'KGS', 'weight' => 'KG_CM'); $value['KH'] = array('region' => 'AP', 'currency' =>'KHR', 'weight' => 'KG_CM'); $value['KI'] = array('region' => 'AP', 'currency' =>'AUD', 'weight' => 'KG_CM'); $value['KM'] = array('region' => 'AP', 'currency' =>'KMF', 'weight' => 'KG_CM'); $value['KN'] = array('region' => 'AM', 'currency' =>'XCD', 'weight' => 'LB_IN'); $value['KP'] = array('region' => 'AP', 'currency' =>'KPW', 'weight' => 'LB_IN'); $value['KR'] = array('region' => 'AP', 'currency' =>'KRW', 'weight' => 'KG_CM'); $value['KV'] = array('region' => 'AM', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['KW'] = array('region' => 'AP', 'currency' =>'KWD', 'weight' => 'KG_CM'); $value['KY'] = array('region' => 'AM', 'currency' =>'KYD', 'weight' => 'KG_CM'); $value['KZ'] = array('region' => 'AP', 'currency' =>'KZF', 'weight' => 'LB_IN'); $value['LA'] = array('region' => 'AP', 'currency' =>'LAK', 'weight' => 'KG_CM'); $value['LB'] = array('region' => 'AP', 'currency' =>'USD', 'weight' => 'KG_CM'); $value['LC'] = array('region' => 'AM', 'currency' =>'XCD', 'weight' => 'KG_CM'); $value['LI'] = array('region' => 'AM', 'currency' =>'CHF', 'weight' => 'LB_IN'); $value['LK'] = array('region' => 'AP', 'currency' =>'LKR', 'weight' => 'KG_CM'); $value['LR'] = array('region' => 'AP', 'currency' =>'LRD', 'weight' => 'KG_CM'); $value['LS'] = array('region' => 'AP', 'currency' =>'LSL', 'weight' => 'KG_CM'); $value['LT'] = array('region' => 'EU', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['LU'] = array('region' => 'EU', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['LV'] = array('region' => 'EU', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['LY'] = array('region' => 'AP', 'currency' =>'LYD', 'weight' => 'KG_CM'); $value['MA'] = array('region' => 'AP', 'currency' =>'MAD', 'weight' => 'KG_CM'); $value['MC'] = array('region' => 'AM', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['MD'] = array('region' => 'AP', 'currency' =>'MDL', 'weight' => 'KG_CM'); $value['ME'] = array('region' => 'AM', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['MG'] = array('region' => 'AP', 'currency' =>'MGA', 'weight' => 'KG_CM'); $value['MH'] = array('region' => 'AM', 'currency' =>'USD', 'weight' => 'LB_IN'); $value['MK'] = array('region' => 'AP', 'currency' =>'MKD', 'weight' => 'KG_CM'); $value['ML'] = array('region' => 'AP', 'currency' =>'COF', 'weight' => 'KG_CM'); $value['MM'] = array('region' => 'AP', 'currency' =>'USD', 'weight' => 'KG_CM'); $value['MN'] = array('region' => 'AP', 'currency' =>'MNT', 'weight' => 'KG_CM'); $value['MO'] = array('region' => 'AP', 'currency' =>'MOP', 'weight' => 'KG_CM'); $value['MP'] = array('region' => 'AM', 'currency' =>'USD', 'weight' => 'LB_IN'); $value['MQ'] = array('region' => 'AM', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['MR'] = array('region' => 'AP', 'currency' =>'MRO', 'weight' => 'KG_CM'); $value['MS'] = array('region' => 'AM', 'currency' =>'XCD', 'weight' => 'LB_IN'); $value['MT'] = array('region' => 'AP', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['MU'] = array('region' => 'AP', 'currency' =>'MUR', 'weight' => 'KG_CM'); $value['MV'] = array('region' => 'AP', 'currency' =>'MVR', 'weight' => 'KG_CM'); $value['MW'] = array('region' => 'AP', 'currency' =>'MWK', 'weight' => 'KG_CM'); $value['MX'] = array('region' => 'AM', 'currency' =>'MXN', 'weight' => 'KG_CM'); $value['MY'] = array('region' => 'AP', 'currency' =>'MYR', 'weight' => 'KG_CM'); $value['MZ'] = array('region' => 'AP', 'currency' =>'MZN', 'weight' => 'KG_CM'); $value['NA'] = array('region' => 'AP', 'currency' =>'NAD', 'weight' => 'KG_CM'); $value['NC'] = array('region' => 'AP', 'currency' =>'XPF', 'weight' => 'KG_CM'); $value['NE'] = array('region' => 'AP', 'currency' =>'XOF', 'weight' => 'KG_CM'); $value['NG'] = array('region' => 'AP', 'currency' =>'NGN', 'weight' => 'KG_CM'); $value['NI'] = array('region' => 'AM', 'currency' =>'NIO', 'weight' => 'KG_CM'); $value['NL'] = array('region' => 'EU', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['NO'] = array('region' => 'EU', 'currency' =>'NOK', 'weight' => 'KG_CM'); $value['NP'] = array('region' => 'AP', 'currency' =>'NPR', 'weight' => 'KG_CM'); $value['NR'] = array('region' => 'AP', 'currency' =>'AUD', 'weight' => 'KG_CM'); $value['NU'] = array('region' => 'AP', 'currency' =>'NZD', 'weight' => 'KG_CM'); $value['NZ'] = array('region' => 'AP', 'currency' =>'NZD', 'weight' => 'KG_CM'); $value['OM'] = array('region' => 'AP', 'currency' =>'OMR', 'weight' => 'KG_CM'); $value['PA'] = array('region' => 'AM', 'currency' =>'USD', 'weight' => 'KG_CM'); $value['PE'] = array('region' => 'AM', 'currency' =>'PEN', 'weight' => 'KG_CM'); $value['PF'] = array('region' => 'AP', 'currency' =>'XPF', 'weight' => 'KG_CM'); $value['PG'] = array('region' => 'AP', 'currency' =>'PGK', 'weight' => 'KG_CM'); $value['PH'] = array('region' => 'AP', 'currency' =>'PHP', 'weight' => 'KG_CM'); $value['PK'] = array('region' => 'AP', 'currency' =>'PKR', 'weight' => 'KG_CM'); $value['PL'] = array('region' => 'EU', 'currency' =>'PLN', 'weight' => 'KG_CM'); $value['PR'] = array('region' => 'AM', 'currency' =>'USD', 'weight' => 'LB_IN'); $value['PT'] = array('region' => 'EU', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['PW'] = array('region' => 'AM', 'currency' =>'USD', 'weight' => 'KG_CM'); $value['PY'] = array('region' => 'AM', 'currency' =>'PYG', 'weight' => 'KG_CM'); $value['QA'] = array('region' => 'AP', 'currency' =>'QAR', 'weight' => 'KG_CM'); $value['RE'] = array('region' => 'AP', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['RO'] = array('region' => 'EU', 'currency' =>'RON', 'weight' => 'KG_CM'); $value['RS'] = array('region' => 'AP', 'currency' =>'RSD', 'weight' => 'KG_CM'); $value['RU'] = array('region' => 'AP', 'currency' =>'RUB', 'weight' => 'KG_CM'); $value['RW'] = array('region' => 'AP', 'currency' =>'RWF', 'weight' => 'KG_CM'); $value['SA'] = array('region' => 'AP', 'currency' =>'SAR', 'weight' => 'KG_CM'); $value['SB'] = array('region' => 'AP', 'currency' =>'SBD', 'weight' => 'KG_CM'); $value['SC'] = array('region' => 'AP', 'currency' =>'SCR', 'weight' => 'KG_CM'); $value['SD'] = array('region' => 'AP', 'currency' =>'SDG', 'weight' => 'KG_CM'); $value['SE'] = array('region' => 'EU', 'currency' =>'SEK', 'weight' => 'KG_CM'); $value['SG'] = array('region' => 'AP', 'currency' =>'SGD', 'weight' => 'KG_CM'); $value['SH'] = array('region' => 'AP', 'currency' =>'SHP', 'weight' => 'KG_CM'); $value['SI'] = array('region' => 'EU', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['SK'] = array('region' => 'EU', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['SL'] = array('region' => 'AP', 'currency' =>'SLL', 'weight' => 'KG_CM'); $value['SM'] = array('region' => 'EU', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['SN'] = array('region' => 'AP', 'currency' =>'XOF', 'weight' => 'KG_CM'); $value['SO'] = array('region' => 'AM', 'currency' =>'SOS', 'weight' => 'KG_CM'); $value['SR'] = array('region' => 'AM', 'currency' =>'SRD', 'weight' => 'KG_CM'); $value['SS'] = array('region' => 'AP', 'currency' =>'SSP', 'weight' => 'KG_CM'); $value['ST'] = array('region' => 'AP', 'currency' =>'STD', 'weight' => 'KG_CM'); $value['SV'] = array('region' => 'AM', 'currency' =>'USD', 'weight' => 'KG_CM'); $value['SY'] = array('region' => 'AP', 'currency' =>'SYP', 'weight' => 'KG_CM'); $value['SZ'] = array('region' => 'AP', 'currency' =>'SZL', 'weight' => 'KG_CM'); $value['TC'] = array('region' => 'AM', 'currency' =>'USD', 'weight' => 'LB_IN'); $value['TD'] = array('region' => 'AP', 'currency' =>'XAF', 'weight' => 'KG_CM'); $value['TG'] = array('region' => 'AP', 'currency' =>'XOF', 'weight' => 'KG_CM'); $value['TH'] = array('region' => 'AP', 'currency' =>'THB', 'weight' => 'KG_CM'); $value['TJ'] = array('region' => 'AP', 'currency' =>'TJS', 'weight' => 'KG_CM'); $value['TL'] = array('region' => 'AP', 'currency' =>'USD', 'weight' => 'KG_CM'); $value['TN'] = array('region' => 'AP', 'currency' =>'TND', 'weight' => 'KG_CM'); $value['TO'] = array('region' => 'AP', 'currency' =>'TOP', 'weight' => 'KG_CM'); $value['TR'] = array('region' => 'AP', 'currency' =>'TRY', 'weight' => 'KG_CM'); $value['TT'] = array('region' => 'AM', 'currency' =>'TTD', 'weight' => 'LB_IN'); $value['TV'] = array('region' => 'AP', 'currency' =>'AUD', 'weight' => 'KG_CM'); $value['TW'] = array('region' => 'AP', 'currency' =>'TWD', 'weight' => 'KG_CM'); $value['TZ'] = array('region' => 'AP', 'currency' =>'TZS', 'weight' => 'KG_CM'); $value['UA'] = array('region' => 'AP', 'currency' =>'UAH', 'weight' => 'KG_CM'); $value['UG'] = array('region' => 'AP', 'currency' =>'USD', 'weight' => 'KG_CM'); $value['US'] = array('region' => 'AM', 'currency' =>'USD', 'weight' => 'LB_IN'); $value['UY'] = array('region' => 'AM', 'currency' =>'UYU', 'weight' => 'KG_CM'); $value['UZ'] = array('region' => 'AP', 'currency' =>'UZS', 'weight' => 'KG_CM'); $value['VC'] = array('region' => 'AM', 'currency' =>'XCD', 'weight' => 'LB_IN'); $value['VE'] = array('region' => 'AM', 'currency' =>'VEF', 'weight' => 'KG_CM'); $value['VG'] = array('region' => 'AM', 'currency' =>'USD', 'weight' => 'LB_IN'); $value['VI'] = array('region' => 'AM', 'currency' =>'USD', 'weight' => 'LB_IN'); $value['VN'] = array('region' => 'AP', 'currency' =>'VND', 'weight' => 'KG_CM'); $value['VU'] = array('region' => 'AP', 'currency' =>'VUV', 'weight' => 'KG_CM'); $value['WS'] = array('region' => 'AP', 'currency' =>'WST', 'weight' => 'KG_CM'); $value['XB'] = array('region' => 'AM', 'currency' =>'EUR', 'weight' => 'LB_IN'); $value['XC'] = array('region' => 'AM', 'currency' =>'EUR', 'weight' => 'LB_IN'); $value['XE'] = array('region' => 'AM', 'currency' =>'ANG', 'weight' => 'LB_IN'); $value['XM'] = array('region' => 'AM', 'currency' =>'EUR', 'weight' => 'LB_IN'); $value['XN'] = array('region' => 'AM', 'currency' =>'XCD', 'weight' => 'LB_IN'); $value['XS'] = array('region' => 'AP', 'currency' =>'SIS', 'weight' => 'KG_CM'); $value['XY'] = array('region' => 'AM', 'currency' =>'ANG', 'weight' => 'LB_IN'); $value['YE'] = array('region' => 'AP', 'currency' =>'YER', 'weight' => 'KG_CM'); $value['YT'] = array('region' => 'AP', 'currency' =>'EUR', 'weight' => 'KG_CM'); $value['ZA'] = array('region' => 'AP', 'currency' =>'ZAR', 'weight' => 'KG_CM'); $value['ZM'] = array('region' => 'AP', 'currency' =>'ZMW', 'weight' => 'KG_CM'); $value['ZW'] = array('region' => 'AP', 'currency' =>'USD', 'weight' => 'KG_CM'); $orgin_postalcode_or_city = $this->a2z_get_zipcode_or_city($general_settings['a2z_dhlexpress_country'], $general_settings['a2z_dhlexpress_city'], $general_settings['a2z_dhlexpress_zip']); $destination_postcode_city = $this->a2z_get_zipcode_or_city($pack_aft_hook['destination']['country'], $pack_aft_hook['destination']['city'], $pack_aft_hook['destination']['postcode']); $mesage_time = date('c'); $message_date = date('Y-m-d'); $general_settings['a2z_dhlexpress_currency'] = isset($value[(isset($general_settings['a2z_dhlexpress_country']) ? $general_settings['a2z_dhlexpress_country'] : 'A2Z')]) ? $value[$general_settings['a2z_dhlexpress_country']]['currency'] : ''; $general_settings['a2z_dhlexpress_weight_unit'] = isset($value[(isset($general_settings['a2z_dhlexpress_country']) ? $general_settings['a2z_dhlexpress_country'] : 'A2Z')]) ? $value[$general_settings['a2z_dhlexpress_country']]['weight'] : ''; $weight_unit = $dim_unit = ''; if(!empty($general_settings['a2z_dhlexpress_weight_unit']) && $general_settings['a2z_dhlexpress_weight_unit'] == 'KG_CM') { $weight_unit = 'KG'; $dim_unit = 'CM'; } else { $weight_unit = 'LB'; $dim_unit = 'IN'; } $pieces = ""; $index = 0; if ($pack_aft_hook) { foreach ($pack_aft_hook['contents'] as $parcel) { $quantity = $parcel['quantity']; for($i=0;$i<$quantity; $i++) { $product = $parcel['data']->get_data(); $index = $index + 1; $pieces .= '' . $index . ''; $pieces .= 'BOX'; if( !empty($product['height']) && !empty($product['length']) && !empty($product['width']) ){ $pieces .= '' . $product['height'] . ''; $pieces .= '' . $product['length'] . ''; $pieces .= '' . $product['width'] . ''; } $total_weight =(string) $product['weight']; $total_weight = str_replace(',','.',$total_weight); if($total_weight<0.001){ $total_weight = 0.001; }else{ $total_weight = round((float)$total_weight,3); } $pieces .= '' . $total_weight . ''; } } } $fetch_accountrates = (isset($general_settings['a2z_dhlexpress_account_rates']) && $general_settings['a2z_dhlexpress_account_rates'] == "yes") ? "" . $general_settings['a2z_dhlexpress_acc_no'] . "" : ""; $dutiable = ($pack_aft_hook['destination']['country'] == $general_settings['a2z_dhlexpress_country'] ) ? "N" : "Y"; $dutiable_content = ($dutiable == "Y") ? "".$general_settings['a2z_dhlexpress_currency']."".$pack_aft_hook['cart_subtotal']."" : ""; $insurance_details = (isset($general_settings['a2z_dhlexpress_insure']) && $general_settings['a2z_dhlexpress_insure'] =='yes') ? "IIXCH" : ""; //insurance type $xmlRequest = file_get_contents(dirname(__FILE__).'/xml/rate.xml'); $xmlRequest = str_replace('{mesage_time}',$mesage_time,$xmlRequest); $xmlRequest = str_replace('{siteid}',$general_settings['a2z_dhlexpress_site_id'],$xmlRequest); $xmlRequest = str_replace('{pwd}',$general_settings['a2z_dhlexpress_site_pwd'],$xmlRequest); $xmlRequest = str_replace('{base_co}',$general_settings['a2z_dhlexpress_country'],$xmlRequest); $xmlRequest = str_replace('{org_pos}',$orgin_postalcode_or_city,$xmlRequest); $xmlRequest = str_replace('{mail_date}',$message_date,$xmlRequest); $xmlRequest = str_replace('{dim_unit}',$dim_unit,$xmlRequest); $xmlRequest = str_replace('{weight_unit}',$weight_unit,$xmlRequest); $xmlRequest = str_replace('{pieces}',$pieces,$xmlRequest); $xmlRequest = str_replace('{fetch_accountrates}',$fetch_accountrates,$xmlRequest); $xmlRequest = str_replace('{is_dutiable}',$dutiable,$xmlRequest); $xmlRequest = str_replace('{additional_insurance_details}','',$xmlRequest); $xmlRequest = str_replace('{insurance_details}',$insurance_details,$xmlRequest); $xmlRequest = str_replace('{customerAddressIso}',$pack_aft_hook['destination']['country'],$xmlRequest); $xmlRequest = str_replace('{destination_postcode_city}',$destination_postcode_city,$xmlRequest); $xmlRequest = str_replace('{dutiable_content}',$dutiable_content,$xmlRequest); $request_url = (isset($general_settings['a2z_dhlexpress_test']) && $general_settings['a2z_dhlexpress_test'] != 'yes') ? 'https://xmlpi-ea.dhl.com/XMLShippingServlet?isUTF8Support=true' : 'https://xmlpitest-ea.dhl.com/XMLShippingServlet?isUTF8Support=true'; $result = wp_remote_post($request_url, array( 'method' => 'POST', 'timeout' => 70, 'sslverify' => 0, 'body' => $xmlRequest ) ); libxml_use_internal_errors(true); if(!empty($result)) { $xml = simplexml_load_string(utf8_encode($result['body'])); } if(isset($general_settings['a2z_dhlexpress_developer_rate']) && $general_settings['a2z_dhlexpress_developer_rate'] == 'yes') { echo "
";
				echo "

Request


"; print_r(htmlspecialchars($xmlRequest)); echo "

Response


"; print_r($xml); die(); } if ($xml && !empty($xml->GetQuoteResponse->BkgDetails->QtdShp)) { foreach ($xml->GetQuoteResponse->BkgDetails->QtdShp as $quote) { $rate_code = ((string) $quote->GlobalProductCode); $rate_cost = (float)((string) $quote->ShippingCharge); $carriers_available = isset($general_settings['a2z_dhlexpress_carrier']) && is_array($general_settings['a2z_dhlexpress_carrier']) ? $general_settings['a2z_dhlexpress_carrier'] : array(); $carriers_name_available = isset($general_settings['a2z_dhlexpress_carrier_name']) && is_array($general_settings['a2z_dhlexpress_carrier']) ? $general_settings['a2z_dhlexpress_carrier_name'] : array(); if(array_key_exists($rate_code,$carriers_available)) if(array_key_exists($rate_code,$carriers_available)) { $delivery_time = new DateInterval($quote->DeliveryTime); $delivery_time = $delivery_time->format('%h:%I'); $delivery_date_time = date("M-d", strtotime($quote->DeliveryDate)).' '.$delivery_time; $rate_name = strval( (string) $quote->ProductShortName); $name = isset($carriers_name_available[$rate_code]) && !empty($carriers_name_available[$rate_code]) ? $carriers_name_available[$rate_code] : $rate_name; $rate_cost = apply_filters('a2z_dhlexpress_rate_cost',$rate_cost,$rate_code); // This is where you'll add your rates $rate = array( 'id' => 'a2z'.$rate_code, 'label' => $name, 'cost' => $rate_cost, 'meta_data' => array('a2z_dhl_delivery_time'=>$delivery_date_time) ); // Register the rate $this->add_rate( $rate ); } } } } private function a2z_get_zipcode_or_city($country, $city, $postcode) { $no_postcode_country = array('AE', 'AF', 'AG', 'AI', 'AL', 'AN', 'AO', 'AW', 'BB', 'BF', 'BH', 'BI', 'BJ', 'BM', 'BO', 'BS', 'BT', 'BW', 'BZ', 'CD', 'CF', 'CG', 'CI', 'CK', 'CL', 'CM', 'CO', 'CR', 'CV', 'DJ', 'DM', 'DO', 'EC', 'EG', 'ER', 'ET', 'FJ', 'FK', 'GA', 'GD', 'GH', 'GI', 'GM', 'GN', 'GQ', 'GT', 'GW', 'GY', 'HK', 'HN', 'HT', 'IE', 'IQ', 'IR', 'JM', 'JO', 'KE', 'KH', 'KI', 'KM', 'KN', 'KP', 'KW', 'KY', 'LA', 'LB', 'LC', 'LK', 'LR', 'LS', 'LY', 'ML', 'MM', 'MO', 'MR', 'MS', 'MT', 'MU', 'MW', 'MZ', 'NA', 'NE', 'NG', 'NI', 'NP', 'NR', 'NU', 'OM', 'PA', 'PE', 'PF', 'PY', 'QA', 'RW', 'SA', 'SB', 'SC', 'SD', 'SL', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SY', 'TC', 'TD', 'TG', 'TL', 'TO', 'TT', 'TV', 'TZ', 'UG', 'UY', 'VC', 'VE', 'VG', 'VN', 'VU', 'WS', 'XA', 'XB', 'XC', 'XE', 'XL', 'XM', 'XN', 'XS', 'YE', 'ZM', 'ZW'); $postcode_city = !in_array( $country, $no_postcode_country ) ? $postcode_city = "{$postcode}" : ''; if( !empty($city) ){ $postcode_city .= "{$city}"; } return $postcode_city; } /** * Initialise Gateway Settings Form Fields */ public function init_form_fields() { $this->form_fields = array('a2z_dhlexpress' => array('type'=>'a2z_dhlexpress')); } public function generate_a2z_dhlexpress_html() { include( 'views/a2z_dhlexpress_settings_view.php' ); } } }