Иногда база данных стран в WooCommerce оказывается неполной. В то время как команда WooCommerce обычно очень оперативно обновляет свой код и добавляет новые страны, иногда вам может потребоваться внести изменения самостоятельно и добавить новую страну на WooCommerce.
Давайте, например, рассмотрим Северную Ирландию. Она не является “страной“, однако большинство ирландских компаний доставляют товары именно в Северную Ирландию, а не в “Великобританию“. Поэтому добавление “Северной Ирландии” в выпадающие списки стран на странице оформления заказа может оказаться полезным.
В этом случае мы рассмотрим, как добавить новую страну, как убедиться, что эта страна отображается в качестве возможного варианта на странице оформления заказа (и в разделе управления зонами доставки), а также как назначить для нее свой список регионов. Ведь всякое бывает!
add_filter( 'woocommerce_countries', 'genius_add_country' );
function genius_add_country( $countries ) {
$new_country = array(
'XI' => 'Северная Ирландия',
);
return array_merge( $countries, $new_country );
}
add_filter( 'woocommerce_continents', 'genius_add_country_to_continent' );
function genius_add_country_to_continent( $continents ) {
$continents['EU']['countries'][] = 'XI';
return $continents;
}
add_filter( 'woocommerce_states', 'genius_add_country_states' );
function genius_add_country_states( $states ) {
$states['XI'] = array(
'AN' => 'Антрим',
'AR' => 'Арма',
'DY' => 'Лондондерри',
'DO' => 'Даун',
'FM' => 'Фермана',
'TR' => 'Тайрон',
);
return $states;
}
В приведенном выше примере мы используем хуки (фильтры) WooCommerce для добавления пользовательской страны, а также для настройки соответствующих регионов (штатов) для этой страны. Например, мы создаем новую страну с кодом “XI” и названием “Северная Ирландия”, а затем добавляем эту страну в континент “EU”. Кроме того, мы указываем пользовательский список регионов для Северной Ирландии, включающий Антрим, Арму, Лондондерри, Даун, Ферману и Тайрон.
Таким образом, с помощью приведенного кода вы сможете добавить новую страну для оплаты и доставки в WooCommerce и настроить соответствующие регионы для этой страны.
