421 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			421 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * Country Functions
 | |
|  *
 | |
|  * @package     EDD
 | |
|  * @subpackage  Functions
 | |
|  * @copyright   Copyright (c) 2018, Easy Digital Downloads, LLC
 | |
|  * @license     http://opensource.org/licenses/gpl-2.0.php GNU Public License
 | |
|  * @since       1.6
 | |
|  */
 | |
| 
 | |
| // Exit if accessed directly
 | |
| defined( 'ABSPATH' ) || exit;
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * Get Shop Base Country
 | |
|  *
 | |
|  * @since 1.6
 | |
|  * @return string $country The two letter country code for the shop's base country
 | |
|  */
 | |
| function edd_get_shop_country() {
 | |
| 	$country = edd_get_option( 'base_country', 'US' );
 | |
| 
 | |
| 	return apply_filters( 'edd_shop_country', $country );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Shop Base State
 | |
|  *
 | |
|  * @since 1.6
 | |
|  * @return string $state The shop's base state name
 | |
|  */
 | |
| function edd_get_shop_state() {
 | |
| 	$state = edd_get_option( 'base_state', false );
 | |
| 
 | |
| 	return apply_filters( 'edd_shop_state', $state );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Shop States
 | |
|  *
 | |
|  * @since 1.6
 | |
|  *
 | |
|  * @param string $country
 | |
|  * @return array A list of states for the selected country
 | |
|  */
 | |
| function edd_get_shop_states( $country = null ) {
 | |
| 	if ( empty( $country ) ) {
 | |
| 		$country = edd_get_shop_country();
 | |
| 	}
 | |
| 
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 	$states    = $countries->get_states( $country );
 | |
| 
 | |
| 	return apply_filters( 'edd_shop_states', $states, $country );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Country List
 | |
|  *
 | |
|  * @since 1.0
 | |
|  * @return array $countries A list of the available countries
 | |
|  */
 | |
| function edd_get_country_list() {
 | |
| 	return apply_filters( 'edd_countries', include EDD_PLUGIN_DIR . 'i18n/countries.php' );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get States List
 | |
|  *
 | |
|  * @since       1.2
 | |
|  * @return      array
 | |
|  */
 | |
| function edd_get_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_us_states', $countries->get_states( 'US' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Angola States
 | |
|  *
 | |
|  * @since 2.8.5
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_angola_provinces_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_angola_provinces', $countries->get_states( 'AO' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Provinces List
 | |
|  *
 | |
|  * @since       1.2
 | |
|  * @return      array
 | |
|  */
 | |
| function edd_get_provinces_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_canada_provinces', $countries->get_states( 'CA' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Australian States
 | |
|  *
 | |
|  * @since 1.6
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_australian_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_australian_states', $countries->get_states( 'AU' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Bangladeshi States (districts)
 | |
|  *
 | |
|  * @since 2.2.3
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_bangladeshi_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_bangladeshi_states', $countries->get_states( 'BD' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Brazil States
 | |
|  *
 | |
|  * @since 1.6
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_brazil_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_brazil_states', $countries->get_states( 'BR' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Bulgarian States
 | |
|  *
 | |
|  * @since 2.2.3
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_bulgarian_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_bulgarian_states', $countries->get_states( 'BG' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Hong Kong States
 | |
|  *
 | |
|  * @since 1.6
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_hong_kong_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_hong_kong_states', $countries->get_states( 'HK' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Hungary States
 | |
|  *
 | |
|  * @since 1.6
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_hungary_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_hungary_states', $countries->get_states( 'HU' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Japanese States
 | |
|  *
 | |
|  * @since 2.2.3
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_japanese_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_japanese_states', $countries->get_states( 'JP' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Chinese States
 | |
|  *
 | |
|  * @since 1.6
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_chinese_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_chinese_states', $countries->get_states( 'CN' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get United Kingdom States
 | |
|  *
 | |
|  * @since 2.9
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_united_kingdom_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_united_kingdom_states', $countries->get_states( 'GB' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get New Zealand States
 | |
|  *
 | |
|  * @since 1.6
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_new_zealand_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_new_zealand_states', $countries->get_states( 'NZ' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Peruvian States
 | |
|  *
 | |
|  * @since 2.2.3
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_peruvian_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_peruvian_states', $countries->get_states( 'PE' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Indonesian States
 | |
|  *
 | |
|  * @since 1.6
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_indonesian_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_indonesia_states', $countries->get_states( 'ID' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Indian States
 | |
|  *
 | |
|  * @since 1.6
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_indian_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_indian_states', $countries->get_states( 'IN' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Iranian States
 | |
|  *
 | |
|  * @since 2.2.3
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_iranian_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_iranian_states', $countries->get_states( 'IR' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Italian Provinces
 | |
|  *
 | |
|  * @since 2.2.3
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_italian_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_italian_states', $countries->get_states( 'IT' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Malaysian States
 | |
|  *
 | |
|  * @since 1.6
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_malaysian_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_malaysian_states', $countries->get_states( 'MY' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Mexican States
 | |
|  *
 | |
|  * @since 2.2.3
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_mexican_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_mexican_states', $countries->get_states( 'MX' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Nepalese States (Districts)
 | |
|  *
 | |
|  * @since 2.2.3
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_nepalese_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_nepalese_states', $countries->get_states( 'NP' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get South African States
 | |
|  *
 | |
|  * @since 1.6
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_south_african_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_south_african_states', $countries->get_states( 'ZA' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Thailand States
 | |
|  *
 | |
|  * @since 1.6
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_thailand_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_thailand_states', $countries->get_states( 'TH' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Turkey States
 | |
|  *
 | |
|  * @since 2.2.3
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_turkey_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_turkey_states', $countries->get_states( 'TR' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Spain States
 | |
|  *
 | |
|  * @since 2.2
 | |
|  * @return array $states A list of states
 | |
|  */
 | |
| function edd_get_spain_states_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	return apply_filters( 'edd_spain_states', $countries->get_states( 'ES' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Returns a list of Netherland's provinces.
 | |
|  *
 | |
|  * @since 3.0
 | |
|  * @return array $states A list of Netherland's provinces.
 | |
|  */
 | |
| function edd_get_netherlands_provinces_list() {
 | |
| 	$countries = new EDD\Utils\Countries();
 | |
| 
 | |
| 	/**
 | |
| 	 * Filters the list of Netherland's provinces.
 | |
| 	 *
 | |
| 	 * @since 3.0
 | |
| 	 *
 | |
| 	 * @param array $states A list of Netherland's provinces.
 | |
| 	 */
 | |
| 	return apply_filters( 'edd_netherlands_provinces', $countries->get_states( 'NL' ) );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Given a country code, return the country name
 | |
|  *
 | |
|  * @since 2.8.7
 | |
|  * @param string $country_code The ISO Code for the country
 | |
|  *
 | |
|  * @return string
 | |
|  */
 | |
| function edd_get_country_name( $country_code = '' ) {
 | |
| 	$country_list = edd_get_country_list();
 | |
| 	$country_name = isset( $country_list[ $country_code ] ) ? $country_list[ $country_code ] : $country_code;
 | |
| 
 | |
| 	return apply_filters( 'edd_get_country_name', $country_name, $country_code );
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Given a country and state code, return the state name
 | |
|  *
 | |
|  * @since 2.9
 | |
|  * @param string $country_code The ISO Code for the country
 | |
|  * @param string $state_code The ISO Code for the state
 | |
|  *
 | |
|  * @return string
 | |
|  */
 | |
| function edd_get_state_name( $country_code = '', $state_code = '' ) {
 | |
| 	if ( empty( $country_code ) ) {
 | |
| 		$country_code = edd_get_shop_country();
 | |
| 	}
 | |
| 	$countries  = new EDD\Utils\Countries();
 | |
| 	$state_name = $countries->get_state_name( $country_code, $state_code );
 | |
| 
 | |
| 	return apply_filters( 'edd_get_state_name', $state_name, $state_code );
 | |
| }
 |