Passed
Push — master ( 607b2f...f897ad )
by Brian
04:05
created

wpinv_get_address_formats()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 40
Code Lines 38

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 38
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 40
rs 9.312
1
<?php
2
/**
3
 * Contains functions related to Invoicing plugin.
4
 *
5
 * @since 1.0.0
6
 * @package Invoicing
7
 */
8
 
9
// MUST have WordPress.
10
if ( !defined( 'WPINC' ) ) {
11
    exit( 'Do NOT access this file directly: ' . basename( __FILE__ ) );
12
}
13
14
15
function wpinv_get_default_country() {
16
	$country = wpinv_get_option( 'default_country', 'UK' );
17
18
	return apply_filters( 'wpinv_default_country', $country );
19
}
20
21
function wpinv_is_base_country( $country ) {
22
    $base_country = wpinv_get_default_country();
23
    
24
    if ( $base_country === 'UK' ) {
25
        $base_country = 'GB';
26
    }
27
    if ( $country == 'UK' ) {
28
        $country = 'GB';
29
    }
30
31
    return ( $country && $country === $base_country ) ? true : false;
32
}
33
34
function wpinv_country_name( $country_code = '' ) { 
35
    $countries = wpinv_get_country_list();
36
    $country_code = $country_code == 'UK' ? 'GB' : $country_code;
37
    $country = isset( $countries[$country_code] ) ? $countries[$country_code] : $country_code;
38
39
    return apply_filters( 'wpinv_country_name', $country, $country_code );
40
}
41
42
function wpinv_get_default_state() {
43
	$state = wpinv_get_option( 'default_state', false );
44
45
	return apply_filters( 'wpinv_default_state', $state );
46
}
47
48
function wpinv_state_name( $state_code = '', $country_code = '' ) {
49
    $state = $state_code;
50
    
51
    if ( !empty( $country_code ) ) {
52
        $states = wpinv_get_country_states( $country_code );
53
        
54
        $state = !empty( $states ) && isset( $states[$state_code] ) ? $states[$state_code] : $state;
55
    }
56
57
    return apply_filters( 'wpinv_state_name', $state, $state_code, $country_code );
58
}
59
60
function wpinv_store_address() {
61
    $address = wpinv_get_option( 'store_address', '' );
62
63
    return apply_filters( 'wpinv_store_address', $address );
64
}
65
66
function wpinv_get_user_address( $user_id = 0, $with_default = true ) {
67
    global $wpi_userID;
68
    
69
    if( empty( $user_id ) ) {
70
        $user_id = !empty( $wpi_userID ) ? $wpi_userID : get_current_user_id();
71
    }
72
    
73
    $address_fields = array(
74
        ///'user_id',
75
        'first_name',
76
        'last_name',
77
        'company',
78
        'vat_number',
79
        ///'email',
80
        'phone',
81
        'address',
82
        'city',
83
        'state',
84
        'country',
85
        'zip',
86
    );
87
    
88
    $user_info = get_userdata( $user_id );
89
    
90
    $address = array();
91
    $address['user_id'] = $user_id;
92
    $address['email'] = !empty( $user_info ) ? $user_info->user_email : '';
93
    foreach ( $address_fields as $field ) {
94
        $address[$field] = get_user_meta( $user_id, '_wpinv_' . $field, true );
95
    }
96
97
    if ( !empty( $user_info ) ) {
98
        if( empty( $address['first_name'] ) )
99
            $address['first_name'] = $user_info->first_name;
100
        
101
        if( empty( $address['last_name'] ) )
102
            $address['last_name'] = $user_info->last_name;
103
    }
104
    
105
    $address['name'] = trim( trim( $address['first_name'] . ' ' . $address['last_name'] ), "," );
106
    
107
    if( empty( $address['state'] ) && $with_default )
108
        $address['state'] = wpinv_get_default_state();
109
110
    if( empty( $address['country'] ) && $with_default )
111
        $address['country'] = wpinv_get_default_country();
112
113
114
    return $address;
115
}
116
117
function wpinv_get_country_list( $first_empty = false ) {
118
	$countries = array(
119
		'US' => __('United States', 'invoicing'),
120
		'CA' => __('Canada', 'invoicing'),
121
		'GB' => __('United Kingdom', 'invoicing'),
122
		'AF' => __('Afghanistan', 'invoicing'),
123
		'AX' => __('Aland Islands', 'invoicing'),
124
		'AL' => __('Albania', 'invoicing'),
125
		'DZ' => __('Algeria', 'invoicing'),
126
		'AS' => __('American Samoa', 'invoicing'),
127
		'AD' => __('Andorra', 'invoicing'),
128
		'AO' => __('Angola', 'invoicing'),
129
		'AI' => __('Anguilla', 'invoicing'),
130
		'AQ' => __('Antarctica', 'invoicing'),
131
		'AG' => __('Antigua and Barbuda', 'invoicing'),
132
		'AR' => __('Argentina', 'invoicing'),
133
		'AM' => __('Armenia', 'invoicing'),
134
		'AW' => __('Aruba', 'invoicing'),
135
		'AU' => __('Australia', 'invoicing'),
136
		'AT' => __('Austria', 'invoicing'),
137
		'AZ' => __('Azerbaijan', 'invoicing'),
138
		'BS' => __('Bahamas', 'invoicing'),
139
		'BH' => __('Bahrain', 'invoicing'),
140
		'BD' => __('Bangladesh', 'invoicing'),
141
		'BB' => __('Barbados', 'invoicing'),
142
		'BY' => __('Belarus', 'invoicing'),
143
		'BE' => __('Belgium', 'invoicing'),
144
		'BZ' => __('Belize', 'invoicing'),
145
		'BJ' => __('Benin', 'invoicing'),
146
		'BM' => __('Bermuda', 'invoicing'),
147
		'BT' => __('Bhutan', 'invoicing'),
148
		'BO' => __('Bolivia', 'invoicing'),
149
		'BQ' => __('Bonaire, Saint Eustatius and Saba', 'invoicing'),
150
		'BA' => __('Bosnia and Herzegovina', 'invoicing'),
151
		'BW' => __('Botswana', 'invoicing'),
152
		'BV' => __('Bouvet Island', 'invoicing'),
153
		'BR' => __('Brazil', 'invoicing'),
154
		'IO' => __('British Indian Ocean Territory', 'invoicing'),
155
		'BN' => __('Brunei Darrussalam', 'invoicing'),
156
		'BG' => __('Bulgaria', 'invoicing'),
157
		'BF' => __('Burkina Faso', 'invoicing'),
158
		'BI' => __('Burundi', 'invoicing'),
159
		'KH' => __('Cambodia', 'invoicing'),
160
		'CM' => __('Cameroon', 'invoicing'),
161
		'CV' => __('Cape Verde', 'invoicing'),
162
		'KY' => __('Cayman Islands', 'invoicing'),
163
		'CF' => __('Central African Republic', 'invoicing'),
164
		'TD' => __('Chad', 'invoicing'),
165
		'CL' => __('Chile', 'invoicing'),
166
		'CN' => __('China', 'invoicing'),
167
		'CX' => __('Christmas Island', 'invoicing'),
168
		'CC' => __('Cocos Islands', 'invoicing'),
169
		'CO' => __('Colombia', 'invoicing'),
170
		'KM' => __('Comoros', 'invoicing'),
171
		'CD' => __('Congo, Democratic People\'s Republic', 'invoicing'),
172
		'CG' => __('Congo, Republic of', 'invoicing'),
173
		'CK' => __('Cook Islands', 'invoicing'),
174
		'CR' => __('Costa Rica', 'invoicing'),
175
		'CI' => __('Cote d\'Ivoire', 'invoicing'),
176
		'HR' => __('Croatia/Hrvatska', 'invoicing'),
177
		'CU' => __('Cuba', 'invoicing'),
178
		'CW' => __('Cura&Ccedil;ao', 'invoicing'),
179
		'CY' => __('Cyprus', 'invoicing'),
180
		'CZ' => __('Czech Republic', 'invoicing'),
181
		'DK' => __('Denmark', 'invoicing'),
182
		'DJ' => __('Djibouti', 'invoicing'),
183
		'DM' => __('Dominica', 'invoicing'),
184
		'DO' => __('Dominican Republic', 'invoicing'),
185
		'TP' => __('East Timor', 'invoicing'),
186
		'EC' => __('Ecuador', 'invoicing'),
187
		'EG' => __('Egypt', 'invoicing'),
188
		'GQ' => __('Equatorial Guinea', 'invoicing'),
189
		'SV' => __('El Salvador', 'invoicing'),
190
		'ER' => __('Eritrea', 'invoicing'),
191
		'EE' => __('Estonia', 'invoicing'),
192
		'ET' => __('Ethiopia', 'invoicing'),
193
		'FK' => __('Falkland Islands', 'invoicing'),
194
		'FO' => __('Faroe Islands', 'invoicing'),
195
		'FJ' => __('Fiji', 'invoicing'),
196
		'FI' => __('Finland', 'invoicing'),
197
		'FR' => __('France', 'invoicing'),
198
		'GF' => __('French Guiana', 'invoicing'),
199
		'PF' => __('French Polynesia', 'invoicing'),
200
		'TF' => __('French Southern Territories', 'invoicing'),
201
		'GA' => __('Gabon', 'invoicing'),
202
		'GM' => __('Gambia', 'invoicing'),
203
		'GE' => __('Georgia', 'invoicing'),
204
		'DE' => __('Germany', 'invoicing'),
205
		'GR' => __('Greece', 'invoicing'),
206
		'GH' => __('Ghana', 'invoicing'),
207
		'GI' => __('Gibraltar', 'invoicing'),
208
		'GL' => __('Greenland', 'invoicing'),
209
		'GD' => __('Grenada', 'invoicing'),
210
		'GP' => __('Guadeloupe', 'invoicing'),
211
		'GU' => __('Guam', 'invoicing'),
212
		'GT' => __('Guatemala', 'invoicing'),
213
		'GG' => __('Guernsey', 'invoicing'),
214
		'GN' => __('Guinea', 'invoicing'),
215
		'GW' => __('Guinea-Bissau', 'invoicing'),
216
		'GY' => __('Guyana', 'invoicing'),
217
		'HT' => __('Haiti', 'invoicing'),
218
		'HM' => __('Heard and McDonald Islands', 'invoicing'),
219
		'VA' => __('Holy See (City Vatican State)', 'invoicing'),
220
		'HN' => __('Honduras', 'invoicing'),
221
		'HK' => __('Hong Kong', 'invoicing'),
222
		'HU' => __('Hungary', 'invoicing'),
223
		'IS' => __('Iceland', 'invoicing'),
224
		'IN' => __('India', 'invoicing'),
225
		'ID' => __('Indonesia', 'invoicing'),
226
		'IR' => __('Iran', 'invoicing'),
227
		'IQ' => __('Iraq', 'invoicing'),
228
		'IE' => __('Ireland', 'invoicing'),
229
		'IM' => __('Isle of Man', 'invoicing'),
230
		'IL' => __('Israel', 'invoicing'),
231
		'IT' => __('Italy', 'invoicing'),
232
		'JM' => __('Jamaica', 'invoicing'),
233
		'JP' => __('Japan', 'invoicing'),
234
		'JE' => __('Jersey', 'invoicing'),
235
		'JO' => __('Jordan', 'invoicing'),
236
		'KZ' => __('Kazakhstan', 'invoicing'),
237
		'KE' => __('Kenya', 'invoicing'),
238
		'KI' => __('Kiribati', 'invoicing'),
239
		'KW' => __('Kuwait', 'invoicing'),
240
		'KG' => __('Kyrgyzstan', 'invoicing'),
241
		'LA' => __('Lao People\'s Democratic Republic', 'invoicing'),
242
		'LV' => __('Latvia', 'invoicing'),
243
		'LB' => __('Lebanon', 'invoicing'),
244
		'LS' => __('Lesotho', 'invoicing'),
245
		'LR' => __('Liberia', 'invoicing'),
246
		'LY' => __('Libyan Arab Jamahiriya', 'invoicing'),
247
		'LI' => __('Liechtenstein', 'invoicing'),
248
		'LT' => __('Lithuania', 'invoicing'),
249
		'LU' => __('Luxembourg', 'invoicing'),
250
		'MO' => __('Macau', 'invoicing'),
251
		'MK' => __('Macedonia', 'invoicing'),
252
		'MG' => __('Madagascar', 'invoicing'),
253
		'MW' => __('Malawi', 'invoicing'),
254
		'MY' => __('Malaysia', 'invoicing'),
255
		'MV' => __('Maldives', 'invoicing'),
256
		'ML' => __('Mali', 'invoicing'),
257
		'MT' => __('Malta', 'invoicing'),
258
		'MH' => __('Marshall Islands', 'invoicing'),
259
		'MQ' => __('Martinique', 'invoicing'),
260
		'MR' => __('Mauritania', 'invoicing'),
261
		'MU' => __('Mauritius', 'invoicing'),
262
		'YT' => __('Mayotte', 'invoicing'),
263
		'MX' => __('Mexico', 'invoicing'),
264
		'FM' => __('Micronesia', 'invoicing'),
265
		'MD' => __('Moldova, Republic of', 'invoicing'),
266
		'MC' => __('Monaco', 'invoicing'),
267
		'MN' => __('Mongolia', 'invoicing'),
268
		'ME' => __('Montenegro', 'invoicing'),
269
		'MS' => __('Montserrat', 'invoicing'),
270
		'MA' => __('Morocco', 'invoicing'),
271
		'MZ' => __('Mozambique', 'invoicing'),
272
		'MM' => __('Myanmar', 'invoicing'),
273
		'NA' => __('Namibia', 'invoicing'),
274
		'NR' => __('Nauru', 'invoicing'),
275
		'NP' => __('Nepal', 'invoicing'),
276
		'NL' => __('Netherlands', 'invoicing'),
277
		'AN' => __('Netherlands Antilles', 'invoicing'),
278
		'NC' => __('New Caledonia', 'invoicing'),
279
		'NZ' => __('New Zealand', 'invoicing'),
280
		'NI' => __('Nicaragua', 'invoicing'),
281
		'NE' => __('Niger', 'invoicing'),
282
		'NG' => __('Nigeria', 'invoicing'),
283
		'NU' => __('Niue', 'invoicing'),
284
		'NF' => __('Norfolk Island', 'invoicing'),
285
		'KP' => __('North Korea', 'invoicing'),
286
		'MP' => __('Northern Mariana Islands', 'invoicing'),
287
		'NO' => __('Norway', 'invoicing'),
288
		'OM' => __('Oman', 'invoicing'),
289
		'PK' => __('Pakistan', 'invoicing'),
290
		'PW' => __('Palau', 'invoicing'),
291
		'PS' => __('Palestinian Territories', 'invoicing'),
292
		'PA' => __('Panama', 'invoicing'),
293
		'PG' => __('Papua New Guinea', 'invoicing'),
294
		'PY' => __('Paraguay', 'invoicing'),
295
		'PE' => __('Peru', 'invoicing'),
296
		'PH' => __('Phillipines', 'invoicing'),
297
		'PN' => __('Pitcairn Island', 'invoicing'),
298
		'PL' => __('Poland', 'invoicing'),
299
		'PT' => __('Portugal', 'invoicing'),
300
		'PR' => __('Puerto Rico', 'invoicing'),
301
		'QA' => __('Qatar', 'invoicing'),
302
		'XK' => __('Republic of Kosovo', 'invoicing'),
303
		'RE' => __('Reunion Island', 'invoicing'),
304
		'RO' => __('Romania', 'invoicing'),
305
		'RU' => __('Russian Federation', 'invoicing'),
306
		'RW' => __('Rwanda', 'invoicing'),
307
		'BL' => __('Saint Barth&eacute;lemy', 'invoicing'),
308
		'SH' => __('Saint Helena', 'invoicing'),
309
		'KN' => __('Saint Kitts and Nevis', 'invoicing'),
310
		'LC' => __('Saint Lucia', 'invoicing'),
311
		'MF' => __('Saint Martin (French)', 'invoicing'),
312
		'SX' => __('Saint Martin (Dutch)', 'invoicing'),
313
		'PM' => __('Saint Pierre and Miquelon', 'invoicing'),
314
		'VC' => __('Saint Vincent and the Grenadines', 'invoicing'),
315
		'SM' => __('San Marino', 'invoicing'),
316
		'ST' => __('S&atilde;o Tom&eacute; and Pr&iacute;ncipe', 'invoicing'),
317
		'SA' => __('Saudi Arabia', 'invoicing'),
318
		'SN' => __('Senegal', 'invoicing'),
319
		'RS' => __('Serbia', 'invoicing'),
320
		'SC' => __('Seychelles', 'invoicing'),
321
		'SL' => __('Sierra Leone', 'invoicing'),
322
		'SG' => __('Singapore', 'invoicing'),
323
		'SK' => __('Slovak Republic', 'invoicing'),
324
		'SI' => __('Slovenia', 'invoicing'),
325
		'SB' => __('Solomon Islands', 'invoicing'),
326
		'SO' => __('Somalia', 'invoicing'),
327
		'ZA' => __('South Africa', 'invoicing'),
328
		'GS' => __('South Georgia', 'invoicing'),
329
		'KR' => __('South Korea', 'invoicing'),
330
		'SS' => __('South Sudan', 'invoicing'),
331
		'ES' => __('Spain', 'invoicing'),
332
		'LK' => __('Sri Lanka', 'invoicing'),
333
		'SD' => __('Sudan', 'invoicing'),
334
		'SR' => __('Suriname', 'invoicing'),
335
		'SJ' => __('Svalbard and Jan Mayen Islands', 'invoicing'),
336
		'SZ' => __('Swaziland', 'invoicing'),
337
		'SE' => __('Sweden', 'invoicing'),
338
		'CH' => __('Switzerland', 'invoicing'),
339
		'SY' => __('Syrian Arab Republic', 'invoicing'),
340
		'TW' => __('Taiwan', 'invoicing'),
341
		'TJ' => __('Tajikistan', 'invoicing'),
342
		'TZ' => __('Tanzania', 'invoicing'),
343
		'TH' => __('Thailand', 'invoicing'),
344
		'TL' => __('Timor-Leste', 'invoicing'),
345
		'TG' => __('Togo', 'invoicing'),
346
		'TK' => __('Tokelau', 'invoicing'),
347
		'TO' => __('Tonga', 'invoicing'),
348
		'TT' => __('Trinidad and Tobago', 'invoicing'),
349
		'TN' => __('Tunisia', 'invoicing'),
350
		'TR' => __('Turkey', 'invoicing'),
351
		'TM' => __('Turkmenistan', 'invoicing'),
352
		'TC' => __('Turks and Caicos Islands', 'invoicing'),
353
		'TV' => __('Tuvalu', 'invoicing'),
354
		'UG' => __('Uganda', 'invoicing'),
355
		'UA' => __('Ukraine', 'invoicing'),
356
		'AE' => __('United Arab Emirates', 'invoicing'),
357
		'UY' => __('Uruguay', 'invoicing'),
358
		'UM' => __('US Minor Outlying Islands', 'invoicing'),
359
		'UZ' => __('Uzbekistan', 'invoicing'),
360
		'VU' => __('Vanuatu', 'invoicing'),
361
		'VE' => __('Venezuela', 'invoicing'),
362
		'VN' => __('Vietnam', 'invoicing'),
363
		'VG' => __('Virgin Islands (British)', 'invoicing'),
364
		'VI' => __('Virgin Islands (USA)', 'invoicing'),
365
		'WF' => __('Wallis and Futuna Islands', 'invoicing'),
366
		'EH' => __('Western Sahara', 'invoicing'),
367
		'WS' => __('Western Samoa', 'invoicing'),
368
		'YE' => __('Yemen', 'invoicing'),
369
		'ZM' => __('Zambia', 'invoicing'),
370
		'ZW' => __('Zimbabwe', 'invoicing'),
371
	);
372
    
373
    if ( $first_empty ) {
374
        $countries = array_merge( array( '' => '' ), $countries );
375
    }
376
    
377
    $countries = apply_filters( 'wpinv_countries', $countries );
378
    
379
    asort($countries);
380
381
    return $countries;
382
}
383
384
function wpinv_get_country_states( $country = null, $first_empty = false ) {
385
    if ( empty( $country ) ) {
386
        $country = wpinv_get_default_country();
387
    }
388
389
    switch( $country ) {
390
        case 'US' :
391
            $states = wpinv_get_us_states_list();
392
            break;
393
        case 'CA' :
394
            $states = wpinv_get_canada_states_list();
395
            break;
396
        case 'AU' :
397
            $states = wpinv_get_australia_states_list();
398
            break;
399
        case 'BD' :
400
            $states = wpinv_get_bangladesh_states_list();
401
            break;
402
        case 'BG' :
403
            $states = wpinv_get_bulgaria_states_list();
404
            break;
405
        case 'BR' :
406
            $states = wpinv_get_brazil_states_list();
407
            break;
408
        case 'CN' :
409
            $states = wpinv_get_china_states_list();
410
            break;
411
        case 'HK' :
412
            $states = wpinv_get_hong_kong_states_list();
413
            break;
414
        case 'HU' :
415
            $states = wpinv_get_hungary_states_list();
416
            break;
417
        case 'ID' :
418
            $states = wpinv_get_indonesia_states_list();
419
            break;
420
        case 'IN' :
421
            $states = wpinv_get_india_states_list();
422
            break;
423
        case 'IR' :
424
            $states = wpinv_get_iran_states_list();
425
            break;
426
        case 'IT' :
427
            $states = wpinv_get_italy_states_list();
428
            break;
429
        case 'JP' :
430
            $states = wpinv_get_japan_states_list();
431
            break;
432
        case 'MX' :
433
            $states = wpinv_get_mexico_states_list();
434
            break;
435
        case 'MY' :
436
            $states = wpinv_get_malaysia_states_list();
437
            break;
438
        case 'NP' :
439
            $states = wpinv_get_nepal_states_list();
440
            break;
441
        case 'NZ' :
442
            $states = wpinv_get_new_zealand_states_list();
443
            break;
444
        case 'PE' :
445
            $states = wpinv_get_peru_states_list();
446
            break;
447
        case 'TH' :
448
            $states = wpinv_get_thailand_states_list();
449
            break;
450
        case 'TR' :
451
            $states = wpinv_get_turkey_states_list();
452
            break;
453
        case 'ZA' :
454
            $states = wpinv_get_south_africa_states_list();
455
            break;
456
        case 'ES' :
457
            $states = wpinv_get_spain_states_list();
458
            break;
459
        default :
460
            $states = array();
461
            break;
462
    }
463
    
464
    if ( !empty( $states ) && $first_empty ) {
465
        $states = array_merge( array( '' => '' ), $states );
466
    }
467
    
468
    $states = apply_filters( 'wpinv_country_states', $states, $country );
469
    
470
    asort($states);
471
472
    return $states;
473
}
474
475
function wpinv_get_us_states_list() {
476
    $states = array(
477
        'AL' => __( 'Alabama', 'invoicing' ),
478
        'AK' => __( 'Alaska', 'invoicing' ),
479
        'AZ' => __( 'Arizona', 'invoicing' ),
480
        'AR' => __( 'Arkansas', 'invoicing' ),
481
        'CA' => __( 'California', 'invoicing' ),
482
        'CO' => __( 'Colorado', 'invoicing' ),
483
        'CT' => __( 'Connecticut', 'invoicing' ),
484
        'DE' => __( 'Delaware', 'invoicing' ),
485
        'DC' => __( 'District of Columbia', 'invoicing' ),
486
        'FL' => __( 'Florida', 'invoicing' ),
487
        'GA' => __( 'Georgia', 'invoicing' ),
488
        'HI' => __( 'Hawaii', 'invoicing' ),
489
        'ID' => __( 'Idaho', 'invoicing' ),
490
        'IL' => __( 'Illinois', 'invoicing' ),
491
        'IN' => __( 'Indiana', 'invoicing' ),
492
        'IA' => __( 'Iowa', 'invoicing' ),
493
        'KS' => __( 'Kansas', 'invoicing' ),
494
        'KY' => __( 'Kentucky', 'invoicing' ),
495
        'LA' => __( 'Louisiana', 'invoicing' ),
496
        'ME' => __( 'Maine', 'invoicing' ),
497
        'MD' => __( 'Maryland', 'invoicing' ),
498
        'MA' => __( 'Massachusetts', 'invoicing' ),
499
        'MI' => __( 'Michigan', 'invoicing' ),
500
        'MN' => __( 'Minnesota', 'invoicing' ),
501
        'MS' => __( 'Mississippi', 'invoicing' ),
502
        'MO' => __( 'Missouri', 'invoicing' ),
503
        'MT' => __( 'Montana', 'invoicing' ),
504
        'NE' => __( 'Nebraska', 'invoicing' ),
505
        'NV' => __( 'Nevada', 'invoicing' ),
506
        'NH' => __( 'New Hampshire', 'invoicing' ),
507
        'NJ' => __( 'New Jersey', 'invoicing' ),
508
        'NM' => __( 'New Mexico', 'invoicing' ),
509
        'NY' => __( 'New York', 'invoicing' ),
510
        'NC' => __( 'North Carolina', 'invoicing' ),
511
        'ND' => __( 'North Dakota', 'invoicing' ),
512
        'OH' => __( 'Ohio', 'invoicing' ),
513
        'OK' => __( 'Oklahoma', 'invoicing' ),
514
        'OR' => __( 'Oregon', 'invoicing' ),
515
        'PA' => __( 'Pennsylvania', 'invoicing' ),
516
        'RI' => __( 'Rhode Island', 'invoicing' ),
517
        'SC' => __( 'South Carolina', 'invoicing' ),
518
        'SD' => __( 'South Dakota', 'invoicing' ),
519
        'TN' => __( 'Tennessee', 'invoicing' ),
520
        'TX' => __( 'Texas', 'invoicing' ),
521
        'UT' => __( 'Utah', 'invoicing' ),
522
        'VT' => __( 'Vermont', 'invoicing' ),
523
        'VA' => __( 'Virginia', 'invoicing' ),
524
        'WA' => __( 'Washington', 'invoicing' ),
525
        'WV' => __( 'West Virginia', 'invoicing' ),
526
        'WI' => __( 'Wisconsin', 'invoicing' ),
527
        'WY' => __( 'Wyoming', 'invoicing' ),
528
        'AS' => __( 'American Samoa', 'invoicing' ),
529
        'CZ' => __( 'Canal Zone', 'invoicing' ),
530
        'CM' => __( 'Commonwealth of the Northern Mariana Islands', 'invoicing' ),
531
        'FM' => __( 'Federated States of Micronesia', 'invoicing' ),
532
        'GU' => __( 'Guam', 'invoicing' ),
533
        'MH' => __( 'Marshall Islands', 'invoicing' ),
534
        'MP' => __( 'Northern Mariana Islands', 'invoicing' ),
535
        'PW' => __( 'Palau', 'invoicing' ),
536
        'PI' => __( 'Philippine Islands', 'invoicing' ),
537
        'PR' => __( 'Puerto Rico', 'invoicing' ),
538
        'TT' => __( 'Trust Territory of the Pacific Islands', 'invoicing' ),
539
        'VI' => __( 'Virgin Islands', 'invoicing' ),
540
        'AA' => __( 'Armed Forces - Americas', 'invoicing' ),
541
        'AE' => __( 'Armed Forces - Europe, Canada, Middle East, Africa', 'invoicing' ),
542
        'AP' => __( 'Armed Forces - Pacific', 'invoicing' )
543
    );
544
545
    return apply_filters( 'wpinv_us_states', $states );
546
}
547
548
function wpinv_get_canada_states_list() {
549
    $states = array(
550
        'AB' => __( 'Alberta', 'invoicing' ),
551
        'BC' => __( 'British Columbia', 'invoicing' ),
552
        'MB' => __( 'Manitoba', 'invoicing' ),
553
        'NB' => __( 'New Brunswick', 'invoicing' ),
554
        'NL' => __( 'Newfoundland and Labrador', 'invoicing' ),
555
        'NS' => __( 'Nova Scotia', 'invoicing' ),
556
        'NT' => __( 'Northwest Territories', 'invoicing' ),
557
        'NU' => __( 'Nunavut', 'invoicing' ),
558
        'ON' => __( 'Ontario', 'invoicing' ),
559
        'PE' => __( 'Prince Edward Island', 'invoicing' ),
560
        'QC' => __( 'Quebec', 'invoicing' ),
561
        'SK' => __( 'Saskatchewan', 'invoicing' ),
562
        'YT' => __( 'Yukon', 'invoicing' )
563
    );
564
565
    return apply_filters( 'wpinv_canada_provinces', $states );
566
}
567
568
function wpinv_get_australia_states_list() {
569
    $states = array(
570
        'ACT' => __( 'Australian Capital Territory', 'invoicing' ),
571
        'NSW' => __( 'New South Wales', 'invoicing' ),
572
        'NT'  => __( 'Northern Territory', 'invoicing' ),
573
        'QLD' => __( 'Queensland', 'invoicing' ),
574
        'SA'  => __( 'South Australia', 'invoicing' ),
575
        'TAS' => __( 'Tasmania', 'invoicing' ),
576
        'VIC' => __( 'Victoria', 'invoicing' ),
577
        'WA'  => __( 'Western Australia', 'invoicing' )
578
    );
579
580
    return apply_filters( 'wpinv_australia_states', $states );
581
}
582
583
function wpinv_get_bangladesh_states_list() {
584
    $states = array(
585
        'BAG' => __( 'Bagerhat', 'invoicing' ),
586
        'BAN' => __( 'Bandarban', 'invoicing' ),
587
        'BAR' => __( 'Barguna', 'invoicing' ),
588
        'BARI'=> __( 'Barisal', 'invoicing' ),
589
        'BHO' => __( 'Bhola', 'invoicing' ),
590
        'BOG' => __( 'Bogra', 'invoicing' ),
591
        'BRA' => __( 'Brahmanbaria', 'invoicing' ),
592
        'CHA' => __( 'Chandpur', 'invoicing' ),
593
        'CHI' => __( 'Chittagong', 'invoicing' ),
594
        'CHU' => __( 'Chuadanga', 'invoicing' ),
595
        'COM' => __( 'Comilla', 'invoicing' ),
596
        'COX' => __( 'Cox\'s Bazar', 'invoicing' ),
597
        'DHA' => __( 'Dhaka', 'invoicing' ),
598
        'DIN' => __( 'Dinajpur', 'invoicing' ),
599
        'FAR' => __( 'Faridpur', 'invoicing' ),
600
        'FEN' => __( 'Feni', 'invoicing' ),
601
        'GAI' => __( 'Gaibandha', 'invoicing' ),
602
        'GAZI'=> __( 'Gazipur', 'invoicing' ),
603
        'GOP' => __( 'Gopalganj', 'invoicing' ),
604
        'HAB' => __( 'Habiganj', 'invoicing' ),
605
        'JAM' => __( 'Jamalpur', 'invoicing' ),
606
        'JES' => __( 'Jessore', 'invoicing' ),
607
        'JHA' => __( 'Jhalokati', 'invoicing' ),
608
        'JHE' => __( 'Jhenaidah', 'invoicing' ),
609
        'JOY' => __( 'Joypurhat', 'invoicing' ),
610
        'KHA' => __( 'Khagrachhari', 'invoicing' ),
611
        'KHU' => __( 'Khulna', 'invoicing' ),
612
        'KIS' => __( 'Kishoreganj', 'invoicing' ),
613
        'KUR' => __( 'Kurigram', 'invoicing' ),
614
        'KUS' => __( 'Kushtia', 'invoicing' ),
615
        'LAK' => __( 'Lakshmipur', 'invoicing' ),
616
        'LAL' => __( 'Lalmonirhat', 'invoicing' ),
617
        'MAD' => __( 'Madaripur', 'invoicing' ),
618
        'MAG' => __( 'Magura', 'invoicing' ),
619
        'MAN' => __( 'Manikganj', 'invoicing' ),
620
        'MEH' => __( 'Meherpur', 'invoicing' ),
621
        'MOU' => __( 'Moulvibazar', 'invoicing' ),
622
        'MUN' => __( 'Munshiganj', 'invoicing' ),
623
        'MYM' => __( 'Mymensingh', 'invoicing' ),
624
        'NAO' => __( 'Naogaon', 'invoicing' ),
625
        'NAR' => __( 'Narail', 'invoicing' ),
626
        'NARG'=> __( 'Narayanganj', 'invoicing' ),
627
        'NARD'=> __( 'Narsingdi', 'invoicing' ),
628
        'NAT' => __( 'Natore', 'invoicing' ),
629
        'NAW' => __( 'Nawabganj', 'invoicing' ),
630
        'NET' => __( 'Netrakona', 'invoicing' ),
631
        'NIL' => __( 'Nilphamari', 'invoicing' ),
632
        'NOA' => __( 'Noakhali', 'invoicing' ),
633
        'PAB' => __( 'Pabna', 'invoicing' ),
634
        'PAN' => __( 'Panchagarh', 'invoicing' ),
635
        'PAT' => __( 'Patuakhali', 'invoicing' ),
636
        'PIR' => __( 'Pirojpur', 'invoicing' ),
637
        'RAJB'=> __( 'Rajbari', 'invoicing' ),
638
        'RAJ' => __( 'Rajshahi', 'invoicing' ),
639
        'RAN' => __( 'Rangamati', 'invoicing' ),
640
        'RANP'=> __( 'Rangpur', 'invoicing' ),
641
        'SAT' => __( 'Satkhira', 'invoicing' ),
642
        'SHA' => __( 'Shariatpur', 'invoicing' ),
643
        'SHE' => __( 'Sherpur', 'invoicing' ),
644
        'SIR' => __( 'Sirajganj', 'invoicing' ),
645
        'SUN' => __( 'Sunamganj', 'invoicing' ),
646
        'SYL' => __( 'Sylhet', 'invoicing' ),
647
        'TAN' => __( 'Tangail', 'invoicing' ),
648
        'THA' => __( 'Thakurgaon', 'invoicing' )
649
    );
650
651
    return apply_filters( 'wpinv_bangladesh_states', $states );
652
}
653
654
function wpinv_get_brazil_states_list() {
655
    $states = array(
656
        'AC' => __( 'Acre', 'invoicing' ),
657
        'AL' => __( 'Alagoas', 'invoicing' ),
658
        'AP' => __( 'Amap&aacute;', 'invoicing' ),
659
        'AM' => __( 'Amazonas', 'invoicing' ),
660
        'BA' => __( 'Bahia', 'invoicing' ),
661
        'CE' => __( 'Cear&aacute;', 'invoicing' ),
662
        'DF' => __( 'Distrito Federal', 'invoicing' ),
663
        'ES' => __( 'Esp&iacute;rito Santo', 'invoicing' ),
664
        'GO' => __( 'Goi&aacute;s', 'invoicing' ),
665
        'MA' => __( 'Maranh&atilde;o', 'invoicing' ),
666
        'MT' => __( 'Mato Grosso', 'invoicing' ),
667
        'MS' => __( 'Mato Grosso do Sul', 'invoicing' ),
668
        'MG' => __( 'Minas Gerais', 'invoicing' ),
669
        'PA' => __( 'Par&aacute;', 'invoicing' ),
670
        'PB' => __( 'Para&iacute;ba', 'invoicing' ),
671
        'PR' => __( 'Paran&aacute;', 'invoicing' ),
672
        'PE' => __( 'Pernambuco', 'invoicing' ),
673
        'PI' => __( 'Piau&iacute;', 'invoicing' ),
674
        'RJ' => __( 'Rio de Janeiro', 'invoicing' ),
675
        'RN' => __( 'Rio Grande do Norte', 'invoicing' ),
676
        'RS' => __( 'Rio Grande do Sul', 'invoicing' ),
677
        'RO' => __( 'Rond&ocirc;nia', 'invoicing' ),
678
        'RR' => __( 'Roraima', 'invoicing' ),
679
        'SC' => __( 'Santa Catarina', 'invoicing' ),
680
        'SP' => __( 'S&atilde;o Paulo', 'invoicing' ),
681
        'SE' => __( 'Sergipe', 'invoicing' ),
682
        'TO' => __( 'Tocantins', 'invoicing' )
683
    );
684
685
    return apply_filters( 'wpinv_brazil_states', $states );
686
}
687
688
function wpinv_get_bulgaria_states_list() {
689
    $states = array(
690
        'BG-01' => __( 'Blagoevgrad', 'invoicing' ),
691
        'BG-02' => __( 'Burgas', 'invoicing' ),
692
        'BG-08' => __( 'Dobrich', 'invoicing' ),
693
        'BG-07' => __( 'Gabrovo', 'invoicing' ),
694
        'BG-26' => __( 'Haskovo', 'invoicing' ),
695
        'BG-09' => __( 'Kardzhali', 'invoicing' ),
696
        'BG-10' => __( 'Kyustendil', 'invoicing' ),
697
        'BG-11' => __( 'Lovech', 'invoicing' ),
698
        'BG-12' => __( 'Montana', 'invoicing' ),
699
        'BG-13' => __( 'Pazardzhik', 'invoicing' ),
700
        'BG-14' => __( 'Pernik', 'invoicing' ),
701
        'BG-15' => __( 'Pleven', 'invoicing' ),
702
        'BG-16' => __( 'Plovdiv', 'invoicing' ),
703
        'BG-17' => __( 'Razgrad', 'invoicing' ),
704
        'BG-18' => __( 'Ruse', 'invoicing' ),
705
        'BG-27' => __( 'Shumen', 'invoicing' ),
706
        'BG-19' => __( 'Silistra', 'invoicing' ),
707
        'BG-20' => __( 'Sliven', 'invoicing' ),
708
        'BG-21' => __( 'Smolyan', 'invoicing' ),
709
        'BG-23' => __( 'Sofia', 'invoicing' ),
710
        'BG-22' => __( 'Sofia-Grad', 'invoicing' ),
711
        'BG-24' => __( 'Stara Zagora', 'invoicing' ),
712
        'BG-25' => __( 'Targovishte', 'invoicing' ),
713
        'BG-03' => __( 'Varna', 'invoicing' ),
714
        'BG-04' => __( 'Veliko Tarnovo', 'invoicing' ),
715
        'BG-05' => __( 'Vidin', 'invoicing' ),
716
        'BG-06' => __( 'Vratsa', 'invoicing' ),
717
        'BG-28' => __( 'Yambol', 'invoicing' )
718
    );
719
720
    return apply_filters( 'wpinv_bulgaria_states', $states );
721
}
722
723
function wpinv_get_hong_kong_states_list() {
724
    $states = array(
725
        'HONG KONG'       => __( 'Hong Kong Island', 'invoicing' ),
726
        'KOWLOON'         => __( 'Kowloon', 'invoicing' ),
727
        'NEW TERRITORIES' => __( 'New Territories', 'invoicing' )
728
    );
729
730
    return apply_filters( 'wpinv_hong_kong_states', $states );
731
}
732
733
function wpinv_get_hungary_states_list() {
734
    $states = array(
735
        'BK' => __( 'Bács-Kiskun', 'invoicing' ),
736
        'BE' => __( 'Békés', 'invoicing' ),
737
        'BA' => __( 'Baranya', 'invoicing' ),
738
        'BZ' => __( 'Borsod-Abaúj-Zemplén', 'invoicing' ),
739
        'BU' => __( 'Budapest', 'invoicing' ),
740
        'CS' => __( 'Csongrád', 'invoicing' ),
741
        'FE' => __( 'Fejér', 'invoicing' ),
742
        'GS' => __( 'Győr-Moson-Sopron', 'invoicing' ),
743
        'HB' => __( 'Hajdú-Bihar', 'invoicing' ),
744
        'HE' => __( 'Heves', 'invoicing' ),
745
        'JN' => __( 'Jász-Nagykun-Szolnok', 'invoicing' ),
746
        'KE' => __( 'Komárom-Esztergom', 'invoicing' ),
747
        'NO' => __( 'Nógrád', 'invoicing' ),
748
        'PE' => __( 'Pest', 'invoicing' ),
749
        'SO' => __( 'Somogy', 'invoicing' ),
750
        'SZ' => __( 'Szabolcs-Szatmár-Bereg', 'invoicing' ),
751
        'TO' => __( 'Tolna', 'invoicing' ),
752
        'VA' => __( 'Vas', 'invoicing' ),
753
        'VE' => __( 'Veszprém', 'invoicing' ),
754
        'ZA' => __( 'Zala', 'invoicing' )
755
    );
756
757
    return apply_filters( 'wpinv_hungary_states', $states );
758
}
759
760
function wpinv_get_japan_states_list() {
761
    $states = array(
762
        'JP01' => __( 'Hokkaido', 'invoicing' ),
763
        'JP02' => __( 'Aomori', 'invoicing' ),
764
        'JP03' => __( 'Iwate', 'invoicing' ),
765
        'JP04' => __( 'Miyagi', 'invoicing' ),
766
        'JP05' => __( 'Akita', 'invoicing' ),
767
        'JP06' => __( 'Yamagata', 'invoicing' ),
768
        'JP07' => __( 'Fukushima', 'invoicing' ),
769
        'JP08' => __( 'Ibaraki', 'invoicing' ),
770
        'JP09' => __( 'Tochigi', 'invoicing' ),
771
        'JP10' => __( 'Gunma', 'invoicing' ),
772
        'JP11' => __( 'Saitama', 'invoicing' ),
773
        'JP12' => __( 'Chiba', 'invoicing' ),
774
        'JP13' => __( 'Tokyo', 'invoicing' ),
775
        'JP14' => __( 'Kanagawa', 'invoicing' ),
776
        'JP15' => __( 'Niigata', 'invoicing' ),
777
        'JP16' => __( 'Toyama', 'invoicing' ),
778
        'JP17' => __( 'Ishikawa', 'invoicing' ),
779
        'JP18' => __( 'Fukui', 'invoicing' ),
780
        'JP19' => __( 'Yamanashi', 'invoicing' ),
781
        'JP20' => __( 'Nagano', 'invoicing' ),
782
        'JP21' => __( 'Gifu', 'invoicing' ),
783
        'JP22' => __( 'Shizuoka', 'invoicing' ),
784
        'JP23' => __( 'Aichi', 'invoicing' ),
785
        'JP24' => __( 'Mie', 'invoicing' ),
786
        'JP25' => __( 'Shiga', 'invoicing' ),
787
        'JP26' => __( 'Kyouto', 'invoicing' ),
788
        'JP27' => __( 'Osaka', 'invoicing' ),
789
        'JP28' => __( 'Hyougo', 'invoicing' ),
790
        'JP29' => __( 'Nara', 'invoicing' ),
791
        'JP30' => __( 'Wakayama', 'invoicing' ),
792
        'JP31' => __( 'Tottori', 'invoicing' ),
793
        'JP32' => __( 'Shimane', 'invoicing' ),
794
        'JP33' => __( 'Okayama', 'invoicing' ),
795
        'JP34' => __( 'Hiroshima', 'invoicing' ),
796
        'JP35' => __( 'Yamaguchi', 'invoicing' ),
797
        'JP36' => __( 'Tokushima', 'invoicing' ),
798
        'JP37' => __( 'Kagawa', 'invoicing' ),
799
        'JP38' => __( 'Ehime', 'invoicing' ),
800
        'JP39' => __( 'Kochi', 'invoicing' ),
801
        'JP40' => __( 'Fukuoka', 'invoicing' ),
802
        'JP41' => __( 'Saga', 'invoicing' ),
803
        'JP42' => __( 'Nagasaki', 'invoicing' ),
804
        'JP43' => __( 'Kumamoto', 'invoicing' ),
805
        'JP44' => __( 'Oita', 'invoicing' ),
806
        'JP45' => __( 'Miyazaki', 'invoicing' ),
807
        'JP46' => __( 'Kagoshima', 'invoicing' ),
808
        'JP47' => __( 'Okinawa', 'invoicing' )
809
    );
810
811
    return apply_filters( 'wpinv_japan_states', $states );
812
}
813
814
function wpinv_get_china_states_list() {
815
    $states = array(
816
        'CN1'  => __( 'Yunnan / &#20113;&#21335;', 'invoicing' ),
817
        'CN2'  => __( 'Beijing / &#21271;&#20140;', 'invoicing' ),
818
        'CN3'  => __( 'Tianjin / &#22825;&#27941;', 'invoicing' ),
819
        'CN4'  => __( 'Hebei / &#27827;&#21271;', 'invoicing' ),
820
        'CN5'  => __( 'Shanxi / &#23665;&#35199;', 'invoicing' ),
821
        'CN6'  => __( 'Inner Mongolia / &#20839;&#33945;&#21476;', 'invoicing' ),
822
        'CN7'  => __( 'Liaoning / &#36797;&#23425;', 'invoicing' ),
823
        'CN8'  => __( 'Jilin / &#21513;&#26519;', 'invoicing' ),
824
        'CN9'  => __( 'Heilongjiang / &#40657;&#40857;&#27743;', 'invoicing' ),
825
        'CN10' => __( 'Shanghai / &#19978;&#28023;', 'invoicing' ),
826
        'CN11' => __( 'Jiangsu / &#27743;&#33487;', 'invoicing' ),
827
        'CN12' => __( 'Zhejiang / &#27993;&#27743;', 'invoicing' ),
828
        'CN13' => __( 'Anhui / &#23433;&#24509;', 'invoicing' ),
829
        'CN14' => __( 'Fujian / &#31119;&#24314;', 'invoicing' ),
830
        'CN15' => __( 'Jiangxi / &#27743;&#35199;', 'invoicing' ),
831
        'CN16' => __( 'Shandong / &#23665;&#19996;', 'invoicing' ),
832
        'CN17' => __( 'Henan / &#27827;&#21335;', 'invoicing' ),
833
        'CN18' => __( 'Hubei / &#28246;&#21271;', 'invoicing' ),
834
        'CN19' => __( 'Hunan / &#28246;&#21335;', 'invoicing' ),
835
        'CN20' => __( 'Guangdong / &#24191;&#19996;', 'invoicing' ),
836
        'CN21' => __( 'Guangxi Zhuang / &#24191;&#35199;&#22766;&#26063;', 'invoicing' ),
837
        'CN22' => __( 'Hainan / &#28023;&#21335;', 'invoicing' ),
838
        'CN23' => __( 'Chongqing / &#37325;&#24198;', 'invoicing' ),
839
        'CN24' => __( 'Sichuan / &#22235;&#24029;', 'invoicing' ),
840
        'CN25' => __( 'Guizhou / &#36149;&#24030;', 'invoicing' ),
841
        'CN26' => __( 'Shaanxi / &#38485;&#35199;', 'invoicing' ),
842
        'CN27' => __( 'Gansu / &#29976;&#32899;', 'invoicing' ),
843
        'CN28' => __( 'Qinghai / &#38738;&#28023;', 'invoicing' ),
844
        'CN29' => __( 'Ningxia Hui / &#23425;&#22799;', 'invoicing' ),
845
        'CN30' => __( 'Macau / &#28595;&#38376;', 'invoicing' ),
846
        'CN31' => __( 'Tibet / &#35199;&#34255;', 'invoicing' ),
847
        'CN32' => __( 'Xinjiang / &#26032;&#30086;', 'invoicing' )
848
    );
849
850
    return apply_filters( 'wpinv_china_states', $states );
851
}
852
853
function wpinv_get_new_zealand_states_list() {
854
    $states = array(
855
        'AK' => __( 'Auckland', 'invoicing' ),
856
        'BP' => __( 'Bay of Plenty', 'invoicing' ),
857
        'CT' => __( 'Canterbury', 'invoicing' ),
858
        'HB' => __( 'Hawke&rsquo;s Bay', 'invoicing' ),
859
        'MW' => __( 'Manawatu-Wanganui', 'invoicing' ),
860
        'MB' => __( 'Marlborough', 'invoicing' ),
861
        'NS' => __( 'Nelson', 'invoicing' ),
862
        'NL' => __( 'Northland', 'invoicing' ),
863
        'OT' => __( 'Otago', 'invoicing' ),
864
        'SL' => __( 'Southland', 'invoicing' ),
865
        'TK' => __( 'Taranaki', 'invoicing' ),
866
        'TM' => __( 'Tasman', 'invoicing' ),
867
        'WA' => __( 'Waikato', 'invoicing' ),
868
        'WR' => __( 'Wairarapa', 'invoicing' ),
869
        'WE' => __( 'Wellington', 'invoicing' ),
870
        'WC' => __( 'West Coast', 'invoicing' )
871
    );
872
873
    return apply_filters( 'wpinv_new_zealand_states', $states );
874
}
875
876
function wpinv_get_peru_states_list() {
877
    $states = array(
878
        'CAL' => __( 'El Callao', 'invoicing' ),
879
        'LMA' => __( 'Municipalidad Metropolitana de Lima', 'invoicing' ),
880
        'AMA' => __( 'Amazonas', 'invoicing' ),
881
        'ANC' => __( 'Ancash', 'invoicing' ),
882
        'APU' => __( 'Apur&iacute;mac', 'invoicing' ),
883
        'ARE' => __( 'Arequipa', 'invoicing' ),
884
        'AYA' => __( 'Ayacucho', 'invoicing' ),
885
        'CAJ' => __( 'Cajamarca', 'invoicing' ),
886
        'CUS' => __( 'Cusco', 'invoicing' ),
887
        'HUV' => __( 'Huancavelica', 'invoicing' ),
888
        'HUC' => __( 'Hu&aacute;nuco', 'invoicing' ),
889
        'ICA' => __( 'Ica', 'invoicing' ),
890
        'JUN' => __( 'Jun&iacute;n', 'invoicing' ),
891
        'LAL' => __( 'La Libertad', 'invoicing' ),
892
        'LAM' => __( 'Lambayeque', 'invoicing' ),
893
        'LIM' => __( 'Lima', 'invoicing' ),
894
        'LOR' => __( 'Loreto', 'invoicing' ),
895
        'MDD' => __( 'Madre de Dios', 'invoicing' ),
896
        'MOQ' => __( 'Moquegua', 'invoicing' ),
897
        'PAS' => __( 'Pasco', 'invoicing' ),
898
        'PIU' => __( 'Piura', 'invoicing' ),
899
        'PUN' => __( 'Puno', 'invoicing' ),
900
        'SAM' => __( 'San Mart&iacute;n', 'invoicing' ),
901
        'TAC' => __( 'Tacna', 'invoicing' ),
902
        'TUM' => __( 'Tumbes', 'invoicing' ),
903
        'UCA' => __( 'Ucayali', 'invoicing' )
904
    );
905
906
    return apply_filters( 'wpinv_peru_states', $states );
907
}
908
909
function wpinv_get_indonesia_states_list() {
910
    $states  = array(
911
        'AC' => __( 'Daerah Istimewa Aceh', 'invoicing' ),
912
        'SU' => __( 'Sumatera Utara', 'invoicing' ),
913
        'SB' => __( 'Sumatera Barat', 'invoicing' ),
914
        'RI' => __( 'Riau', 'invoicing' ),
915
        'KR' => __( 'Kepulauan Riau', 'invoicing' ),
916
        'JA' => __( 'Jambi', 'invoicing' ),
917
        'SS' => __( 'Sumatera Selatan', 'invoicing' ),
918
        'BB' => __( 'Bangka Belitung', 'invoicing' ),
919
        'BE' => __( 'Bengkulu', 'invoicing' ),
920
        'LA' => __( 'Lampung', 'invoicing' ),
921
        'JK' => __( 'DKI Jakarta', 'invoicing' ),
922
        'JB' => __( 'Jawa Barat', 'invoicing' ),
923
        'BT' => __( 'Banten', 'invoicing' ),
924
        'JT' => __( 'Jawa Tengah', 'invoicing' ),
925
        'JI' => __( 'Jawa Timur', 'invoicing' ),
926
        'YO' => __( 'Daerah Istimewa Yogyakarta', 'invoicing' ),
927
        'BA' => __( 'Bali', 'invoicing' ),
928
        'NB' => __( 'Nusa Tenggara Barat', 'invoicing' ),
929
        'NT' => __( 'Nusa Tenggara Timur', 'invoicing' ),
930
        'KB' => __( 'Kalimantan Barat', 'invoicing' ),
931
        'KT' => __( 'Kalimantan Tengah', 'invoicing' ),
932
        'KI' => __( 'Kalimantan Timur', 'invoicing' ),
933
        'KS' => __( 'Kalimantan Selatan', 'invoicing' ),
934
        'KU' => __( 'Kalimantan Utara', 'invoicing' ),
935
        'SA' => __( 'Sulawesi Utara', 'invoicing' ),
936
        'ST' => __( 'Sulawesi Tengah', 'invoicing' ),
937
        'SG' => __( 'Sulawesi Tenggara', 'invoicing' ),
938
        'SR' => __( 'Sulawesi Barat', 'invoicing' ),
939
        'SN' => __( 'Sulawesi Selatan', 'invoicing' ),
940
        'GO' => __( 'Gorontalo', 'invoicing' ),
941
        'MA' => __( 'Maluku', 'invoicing' ),
942
        'MU' => __( 'Maluku Utara', 'invoicing' ),
943
        'PA' => __( 'Papua', 'invoicing' ),
944
        'PB' => __( 'Papua Barat', 'invoicing' )
945
    );
946
947
    return apply_filters( 'wpinv_indonesia_states', $states );
948
}
949
950
function wpinv_get_india_states_list() {
951
    $states = array(
952
        'AP' => __( 'Andhra Pradesh', 'invoicing' ),
953
        'AR' => __( 'Arunachal Pradesh', 'invoicing' ),
954
        'AS' => __( 'Assam', 'invoicing' ),
955
        'BR' => __( 'Bihar', 'invoicing' ),
956
        'CT' => __( 'Chhattisgarh', 'invoicing' ),
957
        'GA' => __( 'Goa', 'invoicing' ),
958
        'GJ' => __( 'Gujarat', 'invoicing' ),
959
        'HR' => __( 'Haryana', 'invoicing' ),
960
        'HP' => __( 'Himachal Pradesh', 'invoicing' ),
961
        'JK' => __( 'Jammu and Kashmir', 'invoicing' ),
962
        'JH' => __( 'Jharkhand', 'invoicing' ),
963
        'KA' => __( 'Karnataka', 'invoicing' ),
964
        'KL' => __( 'Kerala', 'invoicing' ),
965
        'MP' => __( 'Madhya Pradesh', 'invoicing' ),
966
        'MH' => __( 'Maharashtra', 'invoicing' ),
967
        'MN' => __( 'Manipur', 'invoicing' ),
968
        'ML' => __( 'Meghalaya', 'invoicing' ),
969
        'MZ' => __( 'Mizoram', 'invoicing' ),
970
        'NL' => __( 'Nagaland', 'invoicing' ),
971
        'OR' => __( 'Orissa', 'invoicing' ),
972
        'PB' => __( 'Punjab', 'invoicing' ),
973
        'RJ' => __( 'Rajasthan', 'invoicing' ),
974
        'SK' => __( 'Sikkim', 'invoicing' ),
975
        'TN' => __( 'Tamil Nadu', 'invoicing' ),
976
        'TG' => __( 'Telangana', 'invoicing' ),
977
        'TR' => __( 'Tripura', 'invoicing' ),
978
        'UT' => __( 'Uttarakhand', 'invoicing' ),
979
        'UP' => __( 'Uttar Pradesh', 'invoicing' ),
980
        'WB' => __( 'West Bengal', 'invoicing' ),
981
        'AN' => __( 'Andaman and Nicobar Islands', 'invoicing' ),
982
        'CH' => __( 'Chandigarh', 'invoicing' ),
983
        'DN' => __( 'Dadar and Nagar Haveli', 'invoicing' ),
984
        'DD' => __( 'Daman and Diu', 'invoicing' ),
985
        'DL' => __( 'Delhi', 'invoicing' ),
986
        'LD' => __( 'Lakshadweep', 'invoicing' ),
987
        'PY' => __( 'Pondicherry (Puducherry)', 'invoicing' )
988
    );
989
990
    return apply_filters( 'wpinv_india_states', $states );
991
}
992
993
function wpinv_get_iran_states_list() {
994
    $states = array(
995
        'KHZ' => __( 'Khuzestan', 'invoicing' ),
996
        'THR' => __( 'Tehran', 'invoicing' ),
997
        'ILM' => __( 'Ilaam', 'invoicing' ),
998
        'BHR' => __( 'Bushehr', 'invoicing' ),
999
        'ADL' => __( 'Ardabil', 'invoicing' ),
1000
        'ESF' => __( 'Isfahan', 'invoicing' ),
1001
        'YZD' => __( 'Yazd', 'invoicing' ),
1002
        'KRH' => __( 'Kermanshah', 'invoicing' ),
1003
        'KRN' => __( 'Kerman', 'invoicing' ),
1004
        'HDN' => __( 'Hamadan', 'invoicing' ),
1005
        'GZN' => __( 'Ghazvin', 'invoicing' ),
1006
        'ZJN' => __( 'Zanjan', 'invoicing' ),
1007
        'LRS' => __( 'Luristan', 'invoicing' ),
1008
        'ABZ' => __( 'Alborz', 'invoicing' ),
1009
        'EAZ' => __( 'East Azerbaijan', 'invoicing' ),
1010
        'WAZ' => __( 'West Azerbaijan', 'invoicing' ),
1011
        'CHB' => __( 'Chaharmahal and Bakhtiari', 'invoicing' ),
1012
        'SKH' => __( 'South Khorasan', 'invoicing' ),
1013
        'RKH' => __( 'Razavi Khorasan', 'invoicing' ),
1014
        'NKH' => __( 'North Khorasan', 'invoicing' ),
1015
        'SMN' => __( 'Semnan', 'invoicing' ),
1016
        'FRS' => __( 'Fars', 'invoicing' ),
1017
        'QHM' => __( 'Qom', 'invoicing' ),
1018
        'KRD' => __( 'Kurdistan', 'invoicing' ),
1019
        'KBD' => __( 'Kohgiluyeh and BoyerAhmad', 'invoicing' ),
1020
        'GLS' => __( 'Golestan', 'invoicing' ),
1021
        'GIL' => __( 'Gilan', 'invoicing' ),
1022
        'MZN' => __( 'Mazandaran', 'invoicing' ),
1023
        'MKZ' => __( 'Markazi', 'invoicing' ),
1024
        'HRZ' => __( 'Hormozgan', 'invoicing' ),
1025
        'SBN' => __( 'Sistan and Baluchestan', 'invoicing' )
1026
    );
1027
1028
    return apply_filters( 'wpinv_iran_states', $states );
1029
}
1030
1031
function wpinv_get_italy_states_list() {
1032
    $states = array(
1033
        'AG' => __( 'Agrigento', 'invoicing' ),
1034
        'AL' => __( 'Alessandria', 'invoicing' ),
1035
        'AN' => __( 'Ancona', 'invoicing' ),
1036
        'AO' => __( 'Aosta', 'invoicing' ),
1037
        'AR' => __( 'Arezzo', 'invoicing' ),
1038
        'AP' => __( 'Ascoli Piceno', 'invoicing' ),
1039
        'AT' => __( 'Asti', 'invoicing' ),
1040
        'AV' => __( 'Avellino', 'invoicing' ),
1041
        'BA' => __( 'Bari', 'invoicing' ),
1042
        'BT' => __( 'Barletta-Andria-Trani', 'invoicing' ),
1043
        'BL' => __( 'Belluno', 'invoicing' ),
1044
        'BN' => __( 'Benevento', 'invoicing' ),
1045
        'BG' => __( 'Bergamo', 'invoicing' ),
1046
        'BI' => __( 'Biella', 'invoicing' ),
1047
        'BO' => __( 'Bologna', 'invoicing' ),
1048
        'BZ' => __( 'Bolzano', 'invoicing' ),
1049
        'BS' => __( 'Brescia', 'invoicing' ),
1050
        'BR' => __( 'Brindisi', 'invoicing' ),
1051
        'CA' => __( 'Cagliari', 'invoicing' ),
1052
        'CL' => __( 'Caltanissetta', 'invoicing' ),
1053
        'CB' => __( 'Campobasso', 'invoicing' ),
1054
        'CI' => __( 'Caltanissetta', 'invoicing' ),
1055
        'CE' => __( 'Caserta', 'invoicing' ),
1056
        'CT' => __( 'Catania', 'invoicing' ),
1057
        'CZ' => __( 'Catanzaro', 'invoicing' ),
1058
        'CH' => __( 'Chieti', 'invoicing' ),
1059
        'CO' => __( 'Como', 'invoicing' ),
1060
        'CS' => __( 'Cosenza', 'invoicing' ),
1061
        'CR' => __( 'Cremona', 'invoicing' ),
1062
        'KR' => __( 'Crotone', 'invoicing' ),
1063
        'CN' => __( 'Cuneo', 'invoicing' ),
1064
        'EN' => __( 'Enna', 'invoicing' ),
1065
        'FM' => __( 'Fermo', 'invoicing' ),
1066
        'FE' => __( 'Ferrara', 'invoicing' ),
1067
        'FI' => __( 'Firenze', 'invoicing' ),
1068
        'FG' => __( 'Foggia', 'invoicing' ),
1069
        'FC' => __( 'Forli-Cesena', 'invoicing' ),
1070
        'FR' => __( 'Frosinone', 'invoicing' ),
1071
        'GE' => __( 'Genova', 'invoicing' ),
1072
        'GO' => __( 'Gorizia', 'invoicing' ),
1073
        'GR' => __( 'Grosseto', 'invoicing' ),
1074
        'IM' => __( 'Imperia', 'invoicing' ),
1075
        'IS' => __( 'Isernia', 'invoicing' ),
1076
        'SP' => __( 'La Spezia', 'invoicing' ),
1077
        'AQ' => __( 'L&apos;Aquila', 'invoicing' ),
1078
        'LT' => __( 'Latina', 'invoicing' ),
1079
        'LE' => __( 'Lecce', 'invoicing' ),
1080
        'LC' => __( 'Lecco', 'invoicing' ),
1081
        'LI' => __( 'Livorno', 'invoicing' ),
1082
        'LO' => __( 'Lodi', 'invoicing' ),
1083
        'LU' => __( 'Lucca', 'invoicing' ),
1084
        'MC' => __( 'Macerata', 'invoicing' ),
1085
        'MN' => __( 'Mantova', 'invoicing' ),
1086
        'MS' => __( 'Massa-Carrara', 'invoicing' ),
1087
        'MT' => __( 'Matera', 'invoicing' ),
1088
        'ME' => __( 'Messina', 'invoicing' ),
1089
        'MI' => __( 'Milano', 'invoicing' ),
1090
        'MO' => __( 'Modena', 'invoicing' ),
1091
        'MB' => __( 'Monza e della Brianza', 'invoicing' ),
1092
        'NA' => __( 'Napoli', 'invoicing' ),
1093
        'NO' => __( 'Novara', 'invoicing' ),
1094
        'NU' => __( 'Nuoro', 'invoicing' ),
1095
        'OT' => __( 'Olbia-Tempio', 'invoicing' ),
1096
        'OR' => __( 'Oristano', 'invoicing' ),
1097
        'PD' => __( 'Padova', 'invoicing' ),
1098
        'PA' => __( 'Palermo', 'invoicing' ),
1099
        'PR' => __( 'Parma', 'invoicing' ),
1100
        'PV' => __( 'Pavia', 'invoicing' ),
1101
        'PG' => __( 'Perugia', 'invoicing' ),
1102
        'PU' => __( 'Pesaro e Urbino', 'invoicing' ),
1103
        'PE' => __( 'Pescara', 'invoicing' ),
1104
        'PC' => __( 'Piacenza', 'invoicing' ),
1105
        'PI' => __( 'Pisa', 'invoicing' ),
1106
        'PT' => __( 'Pistoia', 'invoicing' ),
1107
        'PN' => __( 'Pordenone', 'invoicing' ),
1108
        'PZ' => __( 'Potenza', 'invoicing' ),
1109
        'PO' => __( 'Prato', 'invoicing' ),
1110
        'RG' => __( 'Ragusa', 'invoicing' ),
1111
        'RA' => __( 'Ravenna', 'invoicing' ),
1112
        'RC' => __( 'Reggio Calabria', 'invoicing' ),
1113
        'RE' => __( 'Reggio Emilia', 'invoicing' ),
1114
        'RI' => __( 'Rieti', 'invoicing' ),
1115
        'RN' => __( 'Rimini', 'invoicing' ),
1116
        'RM' => __( 'Roma', 'invoicing' ),
1117
        'RO' => __( 'Rovigo', 'invoicing' ),
1118
        'SA' => __( 'Salerno', 'invoicing' ),
1119
        'VS' => __( 'Medio Campidano', 'invoicing' ),
1120
        'SS' => __( 'Sassari', 'invoicing' ),
1121
        'SV' => __( 'Savona', 'invoicing' ),
1122
        'SI' => __( 'Siena', 'invoicing' ),
1123
        'SR' => __( 'Siracusa', 'invoicing' ),
1124
        'SO' => __( 'Sondrio', 'invoicing' ),
1125
        'TA' => __( 'Taranto', 'invoicing' ),
1126
        'TE' => __( 'Teramo', 'invoicing' ),
1127
        'TR' => __( 'Terni', 'invoicing' ),
1128
        'TO' => __( 'Torino', 'invoicing' ),
1129
        'OG' => __( 'Ogliastra', 'invoicing' ),
1130
        'TP' => __( 'Trapani', 'invoicing' ),
1131
        'TN' => __( 'Trento', 'invoicing' ),
1132
        'TV' => __( 'Treviso', 'invoicing' ),
1133
        'TS' => __( 'Trieste', 'invoicing' ),
1134
        'UD' => __( 'Udine', 'invoicing' ),
1135
        'VA' => __( 'Varesa', 'invoicing' ),
1136
        'VE' => __( 'Venezia', 'invoicing' ),
1137
        'VB' => __( 'Verbano-Cusio-Ossola', 'invoicing' ),
1138
        'VC' => __( 'Vercelli', 'invoicing' ),
1139
        'VR' => __( 'Verona', 'invoicing' ),
1140
        'VV' => __( 'Vibo Valentia', 'invoicing' ),
1141
        'VI' => __( 'Vicenza', 'invoicing' ),
1142
        'VT' => __( 'Viterbo', 'invoicing' )
1143
    );
1144
1145
    return apply_filters( 'wpinv_italy_states', $states );
1146
}
1147
1148
function wpinv_get_malaysia_states_list() {
1149
    $states = array(
1150
        'JHR' => __( 'Johor', 'invoicing' ),
1151
        'KDH' => __( 'Kedah', 'invoicing' ),
1152
        'KTN' => __( 'Kelantan', 'invoicing' ),
1153
        'MLK' => __( 'Melaka', 'invoicing' ),
1154
        'NSN' => __( 'Negeri Sembilan', 'invoicing' ),
1155
        'PHG' => __( 'Pahang', 'invoicing' ),
1156
        'PRK' => __( 'Perak', 'invoicing' ),
1157
        'PLS' => __( 'Perlis', 'invoicing' ),
1158
        'PNG' => __( 'Pulau Pinang', 'invoicing' ),
1159
        'SBH' => __( 'Sabah', 'invoicing' ),
1160
        'SWK' => __( 'Sarawak', 'invoicing' ),
1161
        'SGR' => __( 'Selangor', 'invoicing' ),
1162
        'TRG' => __( 'Terengganu', 'invoicing' ),
1163
        'KUL' => __( 'W.P. Kuala Lumpur', 'invoicing' ),
1164
        'LBN' => __( 'W.P. Labuan', 'invoicing' ),
1165
        'PJY' => __( 'W.P. Putrajaya', 'invoicing' )
1166
    );
1167
1168
    return apply_filters( 'wpinv_malaysia_states', $states );
1169
}
1170
1171
function wpinv_get_mexico_states_list() {
1172
    $states = array(
1173
        'DIF' => __( 'Distrito Federal', 'invoicing' ),
1174
        'JAL' => __( 'Jalisco', 'invoicing' ),
1175
        'NLE' => __( 'Nuevo Le&oacute;n', 'invoicing' ),
1176
        'AGU' => __( 'Aguascalientes', 'invoicing' ),
1177
        'BCN' => __( 'Baja California Norte', 'invoicing' ),
1178
        'BCS' => __( 'Baja California Sur', 'invoicing' ),
1179
        'CAM' => __( 'Campeche', 'invoicing' ),
1180
        'CHP' => __( 'Chiapas', 'invoicing' ),
1181
        'CHH' => __( 'Chihuahua', 'invoicing' ),
1182
        'COA' => __( 'Coahuila', 'invoicing' ),
1183
        'COL' => __( 'Colima', 'invoicing' ),
1184
        'DUR' => __( 'Durango', 'invoicing' ),
1185
        'GUA' => __( 'Guanajuato', 'invoicing' ),
1186
        'GRO' => __( 'Guerrero', 'invoicing' ),
1187
        'HID' => __( 'Hidalgo', 'invoicing' ),
1188
        'MEX' => __( 'Edo. de M&eacute;xico', 'invoicing' ),
1189
        'MIC' => __( 'Michoac&aacute;n', 'invoicing' ),
1190
        'MOR' => __( 'Morelos', 'invoicing' ),
1191
        'NAY' => __( 'Nayarit', 'invoicing' ),
1192
        'OAX' => __( 'Oaxaca', 'invoicing' ),
1193
        'PUE' => __( 'Puebla', 'invoicing' ),
1194
        'QUE' => __( 'Quer&eacute;taro', 'invoicing' ),
1195
        'ROO' => __( 'Quintana Roo', 'invoicing' ),
1196
        'SLP' => __( 'San Luis Potos&iacute;', 'invoicing' ),
1197
        'SIN' => __( 'Sinaloa', 'invoicing' ),
1198
        'SON' => __( 'Sonora', 'invoicing' ),
1199
        'TAB' => __( 'Tabasco', 'invoicing' ),
1200
        'TAM' => __( 'Tamaulipas', 'invoicing' ),
1201
        'TLA' => __( 'Tlaxcala', 'invoicing' ),
1202
        'VER' => __( 'Veracruz', 'invoicing' ),
1203
        'YUC' => __( 'Yucat&aacute;n', 'invoicing' ),
1204
        'ZAC' => __( 'Zacatecas', 'invoicing' )
1205
    );
1206
1207
    return apply_filters( 'wpinv_mexico_states', $states );
1208
}
1209
1210
function wpinv_get_nepal_states_list() {
1211
    $states = array(
1212
        'ILL' => __( 'Illam', 'invoicing' ),
1213
        'JHA' => __( 'Jhapa', 'invoicing' ),
1214
        'PAN' => __( 'Panchthar', 'invoicing' ),
1215
        'TAP' => __( 'Taplejung', 'invoicing' ),
1216
        'BHO' => __( 'Bhojpur', 'invoicing' ),
1217
        'DKA' => __( 'Dhankuta', 'invoicing' ),
1218
        'MOR' => __( 'Morang', 'invoicing' ),
1219
        'SUN' => __( 'Sunsari', 'invoicing' ),
1220
        'SAN' => __( 'Sankhuwa', 'invoicing' ),
1221
        'TER' => __( 'Terhathum', 'invoicing' ),
1222
        'KHO' => __( 'Khotang', 'invoicing' ),
1223
        'OKH' => __( 'Okhaldhunga', 'invoicing' ),
1224
        'SAP' => __( 'Saptari', 'invoicing' ),
1225
        'SIR' => __( 'Siraha', 'invoicing' ),
1226
        'SOL' => __( 'Solukhumbu', 'invoicing' ),
1227
        'UDA' => __( 'Udayapur', 'invoicing' ),
1228
        'DHA' => __( 'Dhanusa', 'invoicing' ),
1229
        'DLK' => __( 'Dolakha', 'invoicing' ),
1230
        'MOH' => __( 'Mohottari', 'invoicing' ),
1231
        'RAM' => __( 'Ramechha', 'invoicing' ),
1232
        'SAR' => __( 'Sarlahi', 'invoicing' ),
1233
        'SIN' => __( 'Sindhuli', 'invoicing' ),
1234
        'BHA' => __( 'Bhaktapur', 'invoicing' ),
1235
        'DHD' => __( 'Dhading', 'invoicing' ),
1236
        'KTM' => __( 'Kathmandu', 'invoicing' ),
1237
        'KAV' => __( 'Kavrepalanchowk', 'invoicing' ),
1238
        'LAL' => __( 'Lalitpur', 'invoicing' ),
1239
        'NUW' => __( 'Nuwakot', 'invoicing' ),
1240
        'RAS' => __( 'Rasuwa', 'invoicing' ),
1241
        'SPC' => __( 'Sindhupalchowk', 'invoicing' ),
1242
        'BAR' => __( 'Bara', 'invoicing' ),
1243
        'CHI' => __( 'Chitwan', 'invoicing' ),
1244
        'MAK' => __( 'Makwanpur', 'invoicing' ),
1245
        'PAR' => __( 'Parsa', 'invoicing' ),
1246
        'RAU' => __( 'Rautahat', 'invoicing' ),
1247
        'GOR' => __( 'Gorkha', 'invoicing' ),
1248
        'KAS' => __( 'Kaski', 'invoicing' ),
1249
        'LAM' => __( 'Lamjung', 'invoicing' ),
1250
        'MAN' => __( 'Manang', 'invoicing' ),
1251
        'SYN' => __( 'Syangja', 'invoicing' ),
1252
        'TAN' => __( 'Tanahun', 'invoicing' ),
1253
        'BAG' => __( 'Baglung', 'invoicing' ),
1254
        'PBT' => __( 'Parbat', 'invoicing' ),
1255
        'MUS' => __( 'Mustang', 'invoicing' ),
1256
        'MYG' => __( 'Myagdi', 'invoicing' ),
1257
        'AGR' => __( 'Agrghakanchi', 'invoicing' ),
1258
        'GUL' => __( 'Gulmi', 'invoicing' ),
1259
        'KAP' => __( 'Kapilbastu', 'invoicing' ),
1260
        'NAW' => __( 'Nawalparasi', 'invoicing' ),
1261
        'PAL' => __( 'Palpa', 'invoicing' ),
1262
        'RUP' => __( 'Rupandehi', 'invoicing' ),
1263
        'DAN' => __( 'Dang', 'invoicing' ),
1264
        'PYU' => __( 'Pyuthan', 'invoicing' ),
1265
        'ROL' => __( 'Rolpa', 'invoicing' ),
1266
        'RUK' => __( 'Rukum', 'invoicing' ),
1267
        'SAL' => __( 'Salyan', 'invoicing' ),
1268
        'BAN' => __( 'Banke', 'invoicing' ),
1269
        'BDA' => __( 'Bardiya', 'invoicing' ),
1270
        'DAI' => __( 'Dailekh', 'invoicing' ),
1271
        'JAJ' => __( 'Jajarkot', 'invoicing' ),
1272
        'SUR' => __( 'Surkhet', 'invoicing' ),
1273
        'DOL' => __( 'Dolpa', 'invoicing' ),
1274
        'HUM' => __( 'Humla', 'invoicing' ),
1275
        'JUM' => __( 'Jumla', 'invoicing' ),
1276
        'KAL' => __( 'Kalikot', 'invoicing' ),
1277
        'MUG' => __( 'Mugu', 'invoicing' ),
1278
        'ACH' => __( 'Achham', 'invoicing' ),
1279
        'BJH' => __( 'Bajhang', 'invoicing' ),
1280
        'BJU' => __( 'Bajura', 'invoicing' ),
1281
        'DOT' => __( 'Doti', 'invoicing' ),
1282
        'KAI' => __( 'Kailali', 'invoicing' ),
1283
        'BAI' => __( 'Baitadi', 'invoicing' ),
1284
        'DAD' => __( 'Dadeldhura', 'invoicing' ),
1285
        'DAR' => __( 'Darchula', 'invoicing' ),
1286
        'KAN' => __( 'Kanchanpur', 'invoicing' )
1287
    );
1288
1289
    return apply_filters( 'wpinv_nepal_states', $states );
1290
}
1291
1292
function wpinv_get_south_africa_states_list() {
1293
    $states = array(
1294
        'EC'  => __( 'Eastern Cape', 'invoicing' ),
1295
        'FS'  => __( 'Free State', 'invoicing' ),
1296
        'GP'  => __( 'Gauteng', 'invoicing' ),
1297
        'KZN' => __( 'KwaZulu-Natal', 'invoicing' ),
1298
        'LP'  => __( 'Limpopo', 'invoicing' ),
1299
        'MP'  => __( 'Mpumalanga', 'invoicing' ),
1300
        'NC'  => __( 'Northern Cape', 'invoicing' ),
1301
        'NW'  => __( 'North West', 'invoicing' ),
1302
        'WC'  => __( 'Western Cape', 'invoicing' )
1303
    );
1304
1305
    return apply_filters( 'wpinv_south_africa_states', $states );
1306
}
1307
1308
function wpinv_get_thailand_states_list() {
1309
    $states = array(
1310
        'TH-37' => __( 'Amnat Charoen (&#3629;&#3635;&#3609;&#3634;&#3592;&#3648;&#3592;&#3619;&#3636;&#3597;)', 'invoicing' ),
1311
        'TH-15' => __( 'Ang Thong (&#3629;&#3656;&#3634;&#3591;&#3607;&#3629;&#3591;)', 'invoicing' ),
1312
        'TH-14' => __( 'Ayutthaya (&#3614;&#3619;&#3632;&#3609;&#3588;&#3619;&#3624;&#3619;&#3637;&#3629;&#3618;&#3640;&#3608;&#3618;&#3634;)', 'invoicing' ),
1313
        'TH-10' => __( 'Bangkok (&#3585;&#3619;&#3640;&#3591;&#3648;&#3607;&#3614;&#3617;&#3627;&#3634;&#3609;&#3588;&#3619;)', 'invoicing' ),
1314
        'TH-38' => __( 'Bueng Kan (&#3610;&#3638;&#3591;&#3585;&#3634;&#3628;)', 'invoicing' ),
1315
        'TH-31' => __( 'Buri Ram (&#3610;&#3640;&#3619;&#3637;&#3619;&#3633;&#3617;&#3618;&#3660;)', 'invoicing' ),
1316
        'TH-24' => __( 'Chachoengsao (&#3593;&#3632;&#3648;&#3594;&#3636;&#3591;&#3648;&#3607;&#3619;&#3634;)', 'invoicing' ),
1317
        'TH-18' => __( 'Chai Nat (&#3594;&#3633;&#3618;&#3609;&#3634;&#3607;)', 'invoicing' ),
1318
        'TH-36' => __( 'Chaiyaphum (&#3594;&#3633;&#3618;&#3616;&#3641;&#3617;&#3636;)', 'invoicing' ),
1319
        'TH-22' => __( 'Chanthaburi (&#3592;&#3633;&#3609;&#3607;&#3610;&#3640;&#3619;&#3637;)', 'invoicing' ),
1320
        'TH-50' => __( 'Chiang Mai (&#3648;&#3594;&#3637;&#3618;&#3591;&#3651;&#3627;&#3617;&#3656;)', 'invoicing' ),
1321
        'TH-57' => __( 'Chiang Rai (&#3648;&#3594;&#3637;&#3618;&#3591;&#3619;&#3634;&#3618;)', 'invoicing' ),
1322
        'TH-20' => __( 'Chonburi (&#3594;&#3621;&#3610;&#3640;&#3619;&#3637;)', 'invoicing' ),
1323
        'TH-86' => __( 'Chumphon (&#3594;&#3640;&#3617;&#3614;&#3619;)', 'invoicing' ),
1324
        'TH-46' => __( 'Kalasin (&#3585;&#3634;&#3628;&#3626;&#3636;&#3609;&#3608;&#3640;&#3660;)', 'invoicing' ),
1325
        'TH-62' => __( 'Kamphaeng Phet (&#3585;&#3635;&#3649;&#3614;&#3591;&#3648;&#3614;&#3594;&#3619;)', 'invoicing' ),
1326
        'TH-71' => __( 'Kanchanaburi (&#3585;&#3634;&#3597;&#3592;&#3609;&#3610;&#3640;&#3619;&#3637;)', 'invoicing' ),
1327
        'TH-40' => __( 'Khon Kaen (&#3586;&#3629;&#3609;&#3649;&#3585;&#3656;&#3609;)', 'invoicing' ),
1328
        'TH-81' => __( 'Krabi (&#3585;&#3619;&#3632;&#3610;&#3637;&#3656;)', 'invoicing' ),
1329
        'TH-52' => __( 'Lampang (&#3621;&#3635;&#3611;&#3634;&#3591;)', 'invoicing' ),
1330
        'TH-51' => __( 'Lamphun (&#3621;&#3635;&#3614;&#3641;&#3609;)', 'invoicing' ),
1331
        'TH-42' => __( 'Loei (&#3648;&#3621;&#3618;)', 'invoicing' ),
1332
        'TH-16' => __( 'Lopburi (&#3621;&#3614;&#3610;&#3640;&#3619;&#3637;)', 'invoicing' ),
1333
        'TH-58' => __( 'Mae Hong Son (&#3649;&#3617;&#3656;&#3630;&#3656;&#3629;&#3591;&#3626;&#3629;&#3609;)', 'invoicing' ),
1334
        'TH-44' => __( 'Maha Sarakham (&#3617;&#3627;&#3634;&#3626;&#3634;&#3619;&#3588;&#3634;&#3617;)', 'invoicing' ),
1335
        'TH-49' => __( 'Mukdahan (&#3617;&#3640;&#3585;&#3604;&#3634;&#3627;&#3634;&#3619;)', 'invoicing' ),
1336
        'TH-26' => __( 'Nakhon Nayok (&#3609;&#3588;&#3619;&#3609;&#3634;&#3618;&#3585;)', 'invoicing' ),
1337
        'TH-73' => __( 'Nakhon Pathom (&#3609;&#3588;&#3619;&#3611;&#3600;&#3617;)', 'invoicing' ),
1338
        'TH-48' => __( 'Nakhon Phanom (&#3609;&#3588;&#3619;&#3614;&#3609;&#3617;)', 'invoicing' ),
1339
        'TH-30' => __( 'Nakhon Ratchasima (&#3609;&#3588;&#3619;&#3619;&#3634;&#3594;&#3626;&#3637;&#3617;&#3634;)', 'invoicing' ),
1340
        'TH-60' => __( 'Nakhon Sawan (&#3609;&#3588;&#3619;&#3626;&#3623;&#3619;&#3619;&#3588;&#3660;)', 'invoicing' ),
1341
        'TH-80' => __( 'Nakhon Si Thammarat (&#3609;&#3588;&#3619;&#3624;&#3619;&#3637;&#3608;&#3619;&#3619;&#3617;&#3619;&#3634;&#3594;)', 'invoicing' ),
1342
        'TH-55' => __( 'Nan (&#3609;&#3656;&#3634;&#3609;)', 'invoicing' ),
1343
        'TH-96' => __( 'Narathiwat (&#3609;&#3619;&#3634;&#3608;&#3636;&#3623;&#3634;&#3626;)', 'invoicing' ),
1344
        'TH-39' => __( 'Nong Bua Lam Phu (&#3627;&#3609;&#3629;&#3591;&#3610;&#3633;&#3623;&#3621;&#3635;&#3616;&#3641;)', 'invoicing' ),
1345
        'TH-43' => __( 'Nong Khai (&#3627;&#3609;&#3629;&#3591;&#3588;&#3634;&#3618;)', 'invoicing' ),
1346
        'TH-12' => __( 'Nonthaburi (&#3609;&#3609;&#3607;&#3610;&#3640;&#3619;&#3637;)', 'invoicing' ),
1347
        'TH-13' => __( 'Pathum Thani (&#3611;&#3607;&#3640;&#3617;&#3608;&#3634;&#3609;&#3637;)', 'invoicing' ),
1348
        'TH-94' => __( 'Pattani (&#3611;&#3633;&#3605;&#3605;&#3634;&#3609;&#3637;)', 'invoicing' ),
1349
        'TH-82' => __( 'Phang Nga (&#3614;&#3633;&#3591;&#3591;&#3634;)', 'invoicing' ),
1350
        'TH-93' => __( 'Phatthalung (&#3614;&#3633;&#3607;&#3621;&#3640;&#3591;)', 'invoicing' ),
1351
        'TH-56' => __( 'Phayao (&#3614;&#3632;&#3648;&#3618;&#3634;)', 'invoicing' ),
1352
        'TH-67' => __( 'Phetchabun (&#3648;&#3614;&#3594;&#3619;&#3610;&#3641;&#3619;&#3603;&#3660;)', 'invoicing' ),
1353
        'TH-76' => __( 'Phetchaburi (&#3648;&#3614;&#3594;&#3619;&#3610;&#3640;&#3619;&#3637;)', 'invoicing' ),
1354
        'TH-66' => __( 'Phichit (&#3614;&#3636;&#3592;&#3636;&#3605;&#3619;)', 'invoicing' ),
1355
        'TH-65' => __( 'Phitsanulok (&#3614;&#3636;&#3625;&#3603;&#3640;&#3650;&#3621;&#3585;)', 'invoicing' ),
1356
        'TH-54' => __( 'Phrae (&#3649;&#3614;&#3619;&#3656;)', 'invoicing' ),
1357
        'TH-83' => __( 'Phuket (&#3616;&#3641;&#3648;&#3585;&#3655;&#3605;)', 'invoicing' ),
1358
        'TH-25' => __( 'Prachin Buri (&#3611;&#3619;&#3634;&#3592;&#3637;&#3609;&#3610;&#3640;&#3619;&#3637;)', 'invoicing' ),
1359
        'TH-77' => __( 'Prachuap Khiri Khan (&#3611;&#3619;&#3632;&#3592;&#3623;&#3610;&#3588;&#3637;&#3619;&#3637;&#3586;&#3633;&#3609;&#3608;&#3660;)', 'invoicing' ),
1360
        'TH-85' => __( 'Ranong (&#3619;&#3632;&#3609;&#3629;&#3591;)', 'invoicing' ),
1361
        'TH-70' => __( 'Ratchaburi (&#3619;&#3634;&#3594;&#3610;&#3640;&#3619;&#3637;)', 'invoicing' ),
1362
        'TH-21' => __( 'Rayong (&#3619;&#3632;&#3618;&#3629;&#3591;)', 'invoicing' ),
1363
        'TH-45' => __( 'Roi Et (&#3619;&#3657;&#3629;&#3618;&#3648;&#3629;&#3655;&#3604;)', 'invoicing' ),
1364
        'TH-27' => __( 'Sa Kaeo (&#3626;&#3619;&#3632;&#3649;&#3585;&#3657;&#3623;)', 'invoicing' ),
1365
        'TH-47' => __( 'Sakon Nakhon (&#3626;&#3585;&#3621;&#3609;&#3588;&#3619;)', 'invoicing' ),
1366
        'TH-11' => __( 'Samut Prakan (&#3626;&#3617;&#3640;&#3607;&#3619;&#3611;&#3619;&#3634;&#3585;&#3634;&#3619;)', 'invoicing' ),
1367
        'TH-74' => __( 'Samut Sakhon (&#3626;&#3617;&#3640;&#3607;&#3619;&#3626;&#3634;&#3588;&#3619;)', 'invoicing' ),
1368
        'TH-75' => __( 'Samut Songkhram (&#3626;&#3617;&#3640;&#3607;&#3619;&#3626;&#3591;&#3588;&#3619;&#3634;&#3617;)', 'invoicing' ),
1369
        'TH-19' => __( 'Saraburi (&#3626;&#3619;&#3632;&#3610;&#3640;&#3619;&#3637;)', 'invoicing' ),
1370
        'TH-91' => __( 'Satun (&#3626;&#3605;&#3641;&#3621;)', 'invoicing' ),
1371
        'TH-17' => __( 'Sing Buri (&#3626;&#3636;&#3591;&#3627;&#3660;&#3610;&#3640;&#3619;&#3637;)', 'invoicing' ),
1372
        'TH-33' => __( 'Sisaket (&#3624;&#3619;&#3637;&#3626;&#3632;&#3648;&#3585;&#3625;)', 'invoicing' ),
1373
        'TH-90' => __( 'Songkhla (&#3626;&#3591;&#3586;&#3621;&#3634;)', 'invoicing' ),
1374
        'TH-64' => __( 'Sukhothai (&#3626;&#3640;&#3650;&#3586;&#3607;&#3633;&#3618;)', 'invoicing' ),
1375
        'TH-72' => __( 'Suphan Buri (&#3626;&#3640;&#3614;&#3619;&#3619;&#3603;&#3610;&#3640;&#3619;&#3637;)', 'invoicing' ),
1376
        'TH-84' => __( 'Surat Thani (&#3626;&#3640;&#3619;&#3634;&#3625;&#3598;&#3619;&#3660;&#3608;&#3634;&#3609;&#3637;)', 'invoicing' ),
1377
        'TH-32' => __( 'Surin (&#3626;&#3640;&#3619;&#3636;&#3609;&#3607;&#3619;&#3660;)', 'invoicing' ),
1378
        'TH-63' => __( 'Tak (&#3605;&#3634;&#3585;)', 'invoicing' ),
1379
        'TH-92' => __( 'Trang (&#3605;&#3619;&#3633;&#3591;)', 'invoicing' ),
1380
        'TH-23' => __( 'Trat (&#3605;&#3619;&#3634;&#3604;)', 'invoicing' ),
1381
        'TH-34' => __( 'Ubon Ratchathani (&#3629;&#3640;&#3610;&#3621;&#3619;&#3634;&#3594;&#3608;&#3634;&#3609;&#3637;)', 'invoicing' ),
1382
        'TH-41' => __( 'Udon Thani (&#3629;&#3640;&#3604;&#3619;&#3608;&#3634;&#3609;&#3637;)', 'invoicing' ),
1383
        'TH-61' => __( 'Uthai Thani (&#3629;&#3640;&#3607;&#3633;&#3618;&#3608;&#3634;&#3609;&#3637;)', 'invoicing' ),
1384
        'TH-53' => __( 'Uttaradit (&#3629;&#3640;&#3605;&#3619;&#3604;&#3636;&#3605;&#3606;&#3660;)', 'invoicing' ),
1385
        'TH-95' => __( 'Yala (&#3618;&#3632;&#3621;&#3634;)', 'invoicing' ),
1386
        'TH-35' => __( 'Yasothon (&#3618;&#3650;&#3626;&#3608;&#3619;)', 'invoicing' )
1387
    );
1388
1389
    return apply_filters( 'wpinv_thailand_states', $states );
1390
}
1391
1392
function wpinv_get_turkey_states_list() {
1393
    $states = array(
1394
        'TR01' => __( 'Adana', 'invoicing' ),
1395
        'TR02' => __( 'Ad&#305;yaman', 'invoicing' ),
1396
        'TR03' => __( 'Afyon', 'invoicing' ),
1397
        'TR04' => __( 'A&#287;r&#305;', 'invoicing' ),
1398
        'TR05' => __( 'Amasya', 'invoicing' ),
1399
        'TR06' => __( 'Ankara', 'invoicing' ),
1400
        'TR07' => __( 'Antalya', 'invoicing' ),
1401
        'TR08' => __( 'Artvin', 'invoicing' ),
1402
        'TR09' => __( 'Ayd&#305;n', 'invoicing' ),
1403
        'TR10' => __( 'Bal&#305;kesir', 'invoicing' ),
1404
        'TR11' => __( 'Bilecik', 'invoicing' ),
1405
        'TR12' => __( 'Bing&#246;l', 'invoicing' ),
1406
        'TR13' => __( 'Bitlis', 'invoicing' ),
1407
        'TR14' => __( 'Bolu', 'invoicing' ),
1408
        'TR15' => __( 'Burdur', 'invoicing' ),
1409
        'TR16' => __( 'Bursa', 'invoicing' ),
1410
        'TR17' => __( '&#199;anakkale', 'invoicing' ),
1411
        'TR18' => __( '&#199;ank&#305;kesir', 'invoicing' ),
1412
        'TR19' => __( '&#199;orum', 'invoicing' ),
1413
        'TR20' => __( 'Denizli', 'invoicing' ),
1414
        'TR21' => __( 'Diyarbak&#305;r', 'invoicing' ),
1415
        'TR22' => __( 'Edirne', 'invoicing' ),
1416
        'TR23' => __( 'Elaz&#305;&#287;', 'invoicing' ),
1417
        'TR24' => __( 'Erzincan', 'invoicing' ),
1418
        'TR25' => __( 'Erzurum', 'invoicing' ),
1419
        'TR26' => __( 'Eski&#351;ehir', 'invoicing' ),
1420
        'TR27' => __( 'Gaziantep', 'invoicing' ),
1421
        'TR28' => __( 'Giresun', 'invoicing' ),
1422
        'TR29' => __( 'G&#252;m&#252;&#351;hane', 'invoicing' ),
1423
        'TR30' => __( 'Hakkari', 'invoicing' ),
1424
        'TR31' => __( 'Hatay', 'invoicing' ),
1425
        'TR32' => __( 'Isparta', 'invoicing' ),
1426
        'TR33' => __( '&#304;&#231;el', 'invoicing' ),
1427
        'TR34' => __( '&#304;stanbul', 'invoicing' ),
1428
        'TR35' => __( '&#304;zmir', 'invoicing' ),
1429
        'TR36' => __( 'Kars', 'invoicing' ),
1430
        'TR37' => __( 'Kastamonu', 'invoicing' ),
1431
        'TR38' => __( 'Kayseri', 'invoicing' ),
1432
        'TR39' => __( 'K&#305;rklareli', 'invoicing' ),
1433
        'TR40' => __( 'K&#305;r&#351;ehir', 'invoicing' ),
1434
        'TR41' => __( 'Kocaeli', 'invoicing' ),
1435
        'TR42' => __( 'Konya', 'invoicing' ),
1436
        'TR43' => __( 'K&#252;tahya', 'invoicing' ),
1437
        'TR44' => __( 'Malatya', 'invoicing' ),
1438
        'TR45' => __( 'Manisa', 'invoicing' ),
1439
        'TR46' => __( 'Kahramanmara&#351;', 'invoicing' ),
1440
        'TR47' => __( 'Mardin', 'invoicing' ),
1441
        'TR48' => __( 'Mu&#287;la', 'invoicing' ),
1442
        'TR49' => __( 'Mu&#351;', 'invoicing' ),
1443
        'TR50' => __( 'Nev&#351;ehir', 'invoicing' ),
1444
        'TR51' => __( 'Ni&#287;de', 'invoicing' ),
1445
        'TR52' => __( 'Ordu', 'invoicing' ),
1446
        'TR53' => __( 'Rize', 'invoicing' ),
1447
        'TR54' => __( 'Sakarya', 'invoicing' ),
1448
        'TR55' => __( 'Samsun', 'invoicing' ),
1449
        'TR56' => __( 'Siirt', 'invoicing' ),
1450
        'TR57' => __( 'Sinop', 'invoicing' ),
1451
        'TR58' => __( 'Sivas', 'invoicing' ),
1452
        'TR59' => __( 'Tekirda&#287;', 'invoicing' ),
1453
        'TR60' => __( 'Tokat', 'invoicing' ),
1454
        'TR61' => __( 'Trabzon', 'invoicing' ),
1455
        'TR62' => __( 'Tunceli', 'invoicing' ),
1456
        'TR63' => __( '&#350;anl&#305;urfa', 'invoicing' ),
1457
        'TR64' => __( 'U&#351;ak', 'invoicing' ),
1458
        'TR65' => __( 'Van', 'invoicing' ),
1459
        'TR66' => __( 'Yozgat', 'invoicing' ),
1460
        'TR67' => __( 'Zonguldak', 'invoicing' ),
1461
        'TR68' => __( 'Aksaray', 'invoicing' ),
1462
        'TR69' => __( 'Bayburt', 'invoicing' ),
1463
        'TR70' => __( 'Karaman', 'invoicing' ),
1464
        'TR71' => __( 'K&#305;r&#305;kkale', 'invoicing' ),
1465
        'TR72' => __( 'Batman', 'invoicing' ),
1466
        'TR73' => __( '&#350;&#305;rnak', 'invoicing' ),
1467
        'TR74' => __( 'Bart&#305;n', 'invoicing' ),
1468
        'TR75' => __( 'Ardahan', 'invoicing' ),
1469
        'TR76' => __( 'I&#287;d&#305;r', 'invoicing' ),
1470
        'TR77' => __( 'Yalova', 'invoicing' ),
1471
        'TR78' => __( 'Karab&#252;k', 'invoicing' ),
1472
        'TR79' => __( 'Kilis', 'invoicing' ),
1473
        'TR80' => __( 'Osmaniye', 'invoicing' ),
1474
        'TR81' => __( 'D&#252;zce', 'invoicing' )
1475
    );
1476
1477
    return apply_filters( 'wpinv_turkey_states', $states );
1478
}
1479
1480
function wpinv_get_spain_states_list() {
1481
    $states = array(
1482
        'C'  => __( 'A Coru&ntilde;a', 'invoicing' ),
1483
        'VI' => __( 'Araba', 'invoicing' ),
1484
        'AB' => __( 'Albacete', 'invoicing' ),
1485
        'A'  => __( 'Alicante', 'invoicing' ),
1486
        'AL' => __( 'Almer&iacute;a', 'invoicing' ),
1487
        'O'  => __( 'Asturias', 'invoicing' ),
1488
        'AV' => __( '&Aacute;vila', 'invoicing' ),
1489
        'BA' => __( 'Badajoz', 'invoicing' ),
1490
        'PM' => __( 'Baleares', 'invoicing' ),
1491
        'B'  => __( 'Barcelona', 'invoicing' ),
1492
        'BU' => __( 'Burgos', 'invoicing' ),
1493
        'CC' => __( 'C&aacute;ceres', 'invoicing' ),
1494
        'CA' => __( 'C&aacute;diz', 'invoicing' ),
1495
        'S'  => __( 'Cantabria', 'invoicing' ),
1496
        'CS' => __( 'Castell&oacute;n', 'invoicing' ),
1497
        'CE' => __( 'Ceuta', 'invoicing' ),
1498
        'CR' => __( 'Ciudad Real', 'invoicing' ),
1499
        'CO' => __( 'C&oacute;rdoba', 'invoicing' ),
1500
        'CU' => __( 'Cuenca', 'invoicing' ),
1501
        'GI' => __( 'Girona', 'invoicing' ),
1502
        'GR' => __( 'Granada', 'invoicing' ),
1503
        'GU' => __( 'Guadalajara', 'invoicing' ),
1504
        'SS' => __( 'Gipuzkoa', 'invoicing' ),
1505
        'H'  => __( 'Huelva', 'invoicing' ),
1506
        'HU' => __( 'Huesca', 'invoicing' ),
1507
        'J'  => __( 'Ja&eacute;n', 'invoicing' ),
1508
        'LO' => __( 'La Rioja', 'invoicing' ),
1509
        'GC' => __( 'Las Palmas', 'invoicing' ),
1510
        'LE' => __( 'Le&oacute;n', 'invoicing' ),
1511
        'L'  => __( 'Lleida', 'invoicing' ),
1512
        'LU' => __( 'Lugo', 'invoicing' ),
1513
        'M'  => __( 'Madrid', 'invoicing' ),
1514
        'MA' => __( 'M&aacute;laga', 'invoicing' ),
1515
        'ML' => __( 'Melilla', 'invoicing' ),
1516
        'MU' => __( 'Murcia', 'invoicing' ),
1517
        'NA' => __( 'Navarra', 'invoicing' ),
1518
        'OR' => __( 'Ourense', 'invoicing' ),
1519
        'P'  => __( 'Palencia', 'invoicing' ),
1520
        'PO' => __( 'Pontevedra', 'invoicing' ),
1521
        'SA' => __( 'Salamanca', 'invoicing' ),
1522
        'TF' => __( 'Santa Cruz de Tenerife', 'invoicing' ),
1523
        'SG' => __( 'Segovia', 'invoicing' ),
1524
        'SE' => __( 'Sevilla', 'invoicing' ),
1525
        'SO' => __( 'Soria', 'invoicing' ),
1526
        'T'  => __( 'Tarragona', 'invoicing' ),
1527
        'TE' => __( 'Teruel', 'invoicing' ),
1528
        'TO' => __( 'Toledo', 'invoicing' ),
1529
        'V'  => __( 'Valencia', 'invoicing' ),
1530
        'VA' => __( 'Valladolid', 'invoicing' ),
1531
        'BI' => __( 'Bizkaia', 'invoicing' ),
1532
        'ZA' => __( 'Zamora', 'invoicing' ),
1533
        'Z'  => __( 'Zaragoza', 'invoicing' )
1534
    );
1535
1536
    return apply_filters( 'wpinv_spain_states', $states );
1537
}
1538
1539
function wpinv_get_states_field() {
1540
	if( empty( $_POST['country'] ) ) {
1541
		$_POST['country'] = wpinv_get_default_country();
1542
	}
1543
	$states = wpinv_get_country_states( sanitize_text_field( $_POST['country'] ) );
1544
1545
	if( !empty( $states ) ) {
1546
		$sanitized_field_name = sanitize_text_field( $_POST['field_name'] );
1547
        
1548
        $args = array(
1549
			'name'    => $sanitized_field_name,
1550
			'id'      => $sanitized_field_name,
1551
			'class'   => $sanitized_field_name . ' wpinv-select wpi_select2',
1552
			'options' => array_merge( array( '' => '' ), $states ),
1553
			'show_option_all'  => false,
1554
			'show_option_none' => false
1555
		);
1556
1557
		$response = wpinv_html_select( $args );
1558
1559
	} else {
1560
		$response = 'nostates';
1561
	}
1562
1563
	return $response;
1564
}
1565
1566
function wpinv_default_billing_country( $country = '', $user_id = 0 ) {
1567
    $country = !empty( $country ) ? $country : wpinv_get_default_country();
1568
    
1569
    return apply_filters( 'wpinv_default_billing_country', $country, $user_id );
1570
}
1571
1572
/**
1573
 * Returns country address formats.
1574
 *
1575
 * These define how addresses are formatted for display in various countries.
1576
 *
1577
 * @return array
1578
 */
1579
function wpinv_get_address_formats() {
1580
1581
		return apply_filters( 'wpinv_localisation_address_formats',
1582
			array(
1583
				'default' => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{state}}\n{{zip}}\n{{country}}",
1584
				'AU'      => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{state}} {{zip}}\n{{country}}",
1585
				'AT'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
1586
				'BE'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
1587
				'CA'      => "{{company}}\n{{name}}\n{{address}}\n{{city}} {{state_code}}&nbsp;&nbsp;{{zip}}\n{{country}}",
1588
				'CH'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
1589
				'CL'      => "{{company}}\n{{name}}\n{{address}}\n{{state}}\n{{zip}} {{city}}\n{{country}}",
1590
				'CN'      => "{{country}} {{zip}}\n{{state}}, {{city}}, {{address}}\n{{company}}\n{{name}}",
1591
				'CZ'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
1592
				'DE'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
1593
				'EE'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
1594
				'FI'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
1595
				'DK'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
1596
				'FR'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city_upper}}\n{{country}}",
1597
				'HK'      => "{{company}}\n{{first_name}} {{last_name_upper}}\n{{address}}\n{{city_upper}}\n{{state_upper}}\n{{country}}",
1598
				'HU'      => "{{name}}\n{{company}}\n{{city}}\n{{address}}\n{{zip}}\n{{country}}",
1599
				'IN'      => "{{company}}\n{{name}}\n{{address}}\n{{city}} {{zip}}\n{{state}}, {{country}}",
1600
				'IS'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
1601
				'IT'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}}\n{{city}}\n{{state_upper}}\n{{country}}",
1602
				'JP'      => "{{zip}}\n{{state}} {{city}} {{address}}\n{{company}}\n{{last_name}} {{first_name}}\n{{country}}",
1603
				'TW'      => "{{company}}\n{{last_name}} {{first_name}}\n{{address}}\n{{state}}, {{city}} {{zip}}\n{{country}}",
1604
				'LI'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
1605
				'NL'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
1606
				'NZ'      => "{{name}}\n{{company}}\n{{address}}\n{{city}} {{zip}}\n{{country}}",
1607
				'NO'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
1608
				'PL'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
1609
				'PT'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
1610
				'SK'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
1611
				'RS'      => "{{name}}\n{{company}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
1612
				'SI'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
1613
				'ES'      => "{{name}}\n{{company}}\n{{address}}\n{{zip}} {{city}}\n{{state}}\n{{country}}",
1614
				'SE'      => "{{company}}\n{{name}}\n{{address}}\n{{zip}} {{city}}\n{{country}}",
1615
				'TR'      => "{{name}}\n{{company}}\n{{address}}\n{{zip}} {{city}} {{state}}\n{{country}}",
1616
				'UG'      => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{state}}, {{country}}",
1617
				'US'      => "{{name}}\n{{company}}\n{{address}}\n{{city}}, {{state_code}} {{zip}}\n{{country}}",
1618
				'VN'      => "{{name}}\n{{company}}\n{{address}}\n{{city}}\n{{country}}",
1619
			)
1620
		);
1621
}
1622
1623
/**
1624
 * Retrieves the address format to use on Invoices.
1625
 * 
1626
 * @since 1.0.13
1627
 * @see `wpinv_get_invoice_address_replacements`
1628
 * @return string
1629
 */
1630
function wpinv_get_full_address_format( $country = false) {
1631
1632
    if( empty( $country ) ) {
1633
        $country = wpinv_get_default_country();
1634
    }
1635
1636
    // Get all formats.
1637
	$formats = wpinv_get_address_formats();
1638
1639
	// Get format for the specified country.
1640
	$format = ( $country && isset( $formats[ $country ] ) ) ? $formats[ $country ] : $formats['default'];
1641
    
1642
    /**
1643
	 * Filters the address format to use on Invoices.
1644
     * 
1645
     * New lines will be replaced by a `br` element. Double new lines will be replaced by a paragraph. HTML tags are allowed.
1646
	 *
1647
	 * @since 1.0.13
1648
	 *
1649
	 * @param string $format  The address format to use.
1650
     * @param string $country The country who's address format is being retrieved.
1651
	 */
1652
    return apply_filters( 'wpinv_get_full_address_format', $format, $country );
1653
}
1654
1655
/**
1656
 * Retrieves the address format replacements to use on Invoices.
1657
 * 
1658
 * @since 1.0.13
1659
 * @see `wpinv_get_full_address_format`
1660
 * @param array $billing_details customer's billing details
1661
 * @return array
1662
 */
1663
function wpinv_get_invoice_address_replacements( $billing_details ) {
1664
1665
    $default_args = array(
1666
        'address'           => '',
1667
        'city'              => '',
1668
        'state'             => '',
1669
        'country'           => '',
1670
        'zip'               => '',
1671
        'first_name'        => '',
1672
		'last_name'         => '',
1673
		'company'           => '',
1674
    );
1675
1676
    $args    = array_map( 'trim', wp_parse_args( $billing_details, $default_args ) );
1677
    $state   = $args['state'];
1678
    $country = $args['country'];
1679
    
1680
    // Handle full country name.
1681
    $full_country = empty( $country ) ? $country : wpinv_country_name( $country );
1682
    
1683
    // Handle full state name.
1684
    $full_state   = ( $country && $state ) ?  wpinv_state_name( $state, $country ) : $state;
1685
1686
    $args['postcode']    = $args['zip'];
1687
    $args['name']        = $args['first_name'] . ' ' . $args['last_name'];
1688
    $args['state']       = $full_state;
1689
    $args['state_code']  = $state;
1690
    $args['country']     = $full_country;
1691
    $args['country_code']= $country;
1692
1693
    /**
1694
	 * Filters the address format replacements to use on Invoices.
1695
     * 
1696
	 *
1697
	 * @since 1.0.13
1698
	 *
1699
	 * @param array $replacements  The address replacements to use.
1700
     * @param array $billing_details  The billing details to use.
1701
	 */
1702
    $replacements = apply_filters( 'wpinv_get_invoice_address_replacements', $args, $billing_details );
1703
1704
    $return = array();
1705
1706
    foreach( $replacements as $key => $value ) {
1707
        $value  = is_scalar( $value ) ? trim( sanitize_text_field( $value ) ) : '';
1708
        $return['{{' . $key . '}}'] = $value;
1709
        $return['{{' . $key . '_upper}}'] = wpinv_utf8_strtoupper( $value );
1710
    }
1711
1712
    return $return;
1713
1714
}
1715
1716
/**
1717
 * Trim white space and commas off a line.
1718
 *
1719
 * @param  string $line Line.
1720
 * @since 1.0.14
1721
 * @return string
1722
 */
1723
function wpinv_trim_formatted_address_line( $line ) {
1724
	return trim( $line, ', ' );
1725
}