Иногда база данных стран в 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 и настроить соответствующие регионы для этой страны.