Я не кодировщик, я знаю только то, что нашел в Google.
Перу требуется 3 уровня информации о выставлении счетов / доставке: Departamento (ГОСУДАРСТВО), Pronvincia (CITY) и Distrito (можно использовать ПОЧТОВЫЙ КОД в качестве базы?).
Здесь мы не используем почтовый индекс. Вместо этого мы используем названия DISTRICT, у которых есть почтовый индекс, сопоставленный с каждым районом, но знать их нечасто. В основном мы используем названия районов: http://www.geodir.co/recursos/codigo-postal-mtc-peru.html
- Сначала я определил свои СОСТОЯНИЯ в файле функций моей дочерней темы:
add_filter( 'woocommerce_states', 'custom_woocommerce_states' );
function custom_woocommerce_states( $states ) {
$states['PE'] = array(
'LIM' => 'Lima',
'CAL' => 'El Callao',
'AMA' => 'Amazonas',
'ANC' => 'Ancash',
'APU' => 'Apurimac',
'ARE' => 'Arequipa',
'AYA' => 'Ayacucho',
'CAJ' => 'Cajamarca',
'CUS' => 'Cusco',
'HUV' => 'Huancavelica',
'HUC' => 'Huánuco',
'ICA' => 'Ica',
'JUN' => 'Junín',
'LAL' => 'La Libertad',
'LAM' => 'Lambayeque',
'LOR' => 'Loreto',
'MDD' => 'Madre de Dios',
'MOQ' => 'Moquegua',
'PAS' => 'Pasco',
'PIU' => 'Piura',
'PUN' => 'Puno',
'SAM' => 'San Martín',
'TAC' => 'Tacna',
'TUM' => 'Tumbes',
'UCA' => 'Ucayali',
);
return $states;
}
Я установил следующий плагин (
https://es.wordpress.org/plugins/ry-wc-city-select/) и создал следующий код, чтобы сделать мои ГОРОДА в виде раскрывающегося списка, который зависит от СОСТОЯНИЯ:
add_filter( 'ry_wc_city_select_cities', 'my_cities' );
function my_cities( $cities ) {
$cities['PE'] = array(
'LIM' => array(
'Lima',
'Barranca',
'Cajatambo',
'Canta',
'Cañete',
'Huaral',
'Huarochiri',
'Huaura',
'Oyón',
'Yauyos'
),
'CAL' => array(
'Callao',
),
'AMA' => array(
'Bagua',
'Bongara',
'Chachapoyas',
'Condorcanqui',
'Luya',
'Rodriguez de Mendoza',
'Utcubamba'
),
'ANC' => array(
'Aija',
'Antonio Raymondi',
'Asunción',
'Bolognesi',
'Carhuaz',
'Carlos Fermín Fitzcarrald',
'Casma',
'Corongo',
'Huaraz',
'Huari',
'Huarmey',
'Huaylas',
'Mariscal Luzuriaga',
'Ocros',
'Pallasca',
'Pomabamba',
'Recuay',
'Santa',
'Sihuas',
'Yungay'
),
'APU' => array(
'Abancay',
'Andahuaylas',
'Antabamba',
'Aymaraes',
'Chincheros',
'Cotabambas',
'Grau'
),
'ARE' => array(
'Arequipa',
'Camana',
'Caraveli',
'Castilla',
'Caylloma',
'Condesuyos',
'Islay',
'La Unión'
),
'AYA' => array(
'Cangallo',
'Huamanga',
'Huanta',
'Hunca Sancos',
'La Mar',
'Lucanas',
'Parinacochas',
'Paucar del Sara Sara',
'Sucre',
'Víctor Fajardo',
'Vilcas Huamán'
),
'CAJ' => array(
'Cajabamba',
'Cajamarca',
'Celendín',
'Chota',
'Contumaza',
'Cutervo',
'Hualgayoc',
'Jaen',
'San Ignacio',
'San Marcos',
'San Miguel',
'San Pablo',
'Santa Cruz'
),
'CUS' => array(
'Acomayo',
'Anta',
'Calca',
'Canas',
'Canchis',
'Chumbivilcas',
'Cusco',
'Espinar',
'La Convención',
'Paruro',
'Paucartambo',
'Quispicanchi',
'Urubamba'
),
'HUV' => array(
'Acobamba',
'Angaraes',
'Castrovirreyna',
'Churcampa',
'Huancavelica',
'Huaytara',
'Tayacaja'
),
'HUC' => array(
'Ambo',
'Dos de Mayo',
'Huacaybamba',
'Huamalies',
'Huanuco',
'Lauricocha',
'Leoncio Prado',
'Marañon',
'Pachitea',
'Puerto Inca',
'Yarowilca'
),
'ICA' => array(
'Chincha',
'Ica',
'Nazca',
'Palpa',
'Pisco'
),
'JUN' => array(
'Chanchamayo',
'Chupaca',
'Concepción',
'Huancayo',
'Jauja',
'Junín',
'Satipo',
'Tarma',
'Yauli'
),
'LAL' => array(
'Ascope',
'Bolivar',
'Chepen',
'Gran Chimu',
'Julcan',
'Otuzco',
'Pacasmayo',
'Pataz',
'Sanchez Carrión',
'Santiago de Chucho',
'Trujillo',
'Viru'
),
'LAM' => array(
'Chiclayo',
'Ferreñafe',
'Lambayeque'
),
'LOR' => array(
'Alto Amazonas',
'Datem del Marañón',
'Loreto',
'Mariscal Ramón Castilla',
'Maynas',
'Requena',
'Ucayali'
),
'MDD' => array(
'Manu',
'Tahuamanu',
'Tambopata'
),
'MOQ' => array(
'General Sanchez Cerro',
'Ilo',
'Mariscal Nieto'
),
'PAS' => array(
'Daniel Alcides Carrión',
'Oxapampa',
'Pasco'
),
'PIU' => array(
'Ayabaca',
'Huancabamba',
'Morropon',
'Paita',
'Piura',
'Sechura',
'Sullana',
'Talara'
),
'PUN' => array(
'Azangaro',
'Carabaya',
'Chucuito',
'El Collao',
'Huancane',
'Lampa',
'Melgar',
'Moho',
'Puno',
'San Antonio de Putina',
'San Román',
'Sandia',
'Yunguyo'
),
'SAM' => array(
'Bellavista',
'El Dorado',
'Huallaga',
'Lamas',
'Mariscal Cáceres',
'Moyobamba',
'PIcota',
'Rioja',
'San Martín',
'Tocache'
),
'TAC' => array(
'Candarave',
'Jorge Basadre',
'Tacna',
'Tarata'
),
'TUM' => array(
'Contralmirante Villar',
'Tumbes',
'Zarumilla'
),
'UCA' => array(
'Atalaya',
'Coronel Portillo',
'Padre Abad',
'Purus'
)
);
return $cities;
}
Я бы хотел сделать РАЙОНЫ зависимыми от ГОРОДА. Итак, моя идея состояла в том, чтобы использовать поле POST CODE как DISTRICT и создать раскрывающийся список, зависящий от CITIES, но нашел только следующий код, который делает stati c POST CODES как DISTRICTS:
add_filter( 'woocommerce_default_address_fields' , 'customize_postcode_fields' );
function customize_postcode_fields( $adresses_fields ) {
$adresses_fields['postcode']['type'] = 'select';
$adresses_fields['postcode']['options'] = array(
'' => __('Select your postcode', 'woocommerce'),
'15023' => 'Ancón',
'15479' => 'Ate',
'15049' => 'Barranco'
);
return $adresses_fields;
}
Определенные здесь ПОЧТОВЫЕ КОДЫ также определены в ЗОНАХ ДОСТАВКИ, поэтому я могу назначить стоимость доставки для каждого отдельного ПОЧТОВОГО КОДА (РАЙОН в моем случае):
См. Зону доставки настройка
Посмотреть результат оформления заказа
Можно ли сделать почтовый индекс зависимым от городов?
Есть ли лучший способ заставить это случиться?