FixesWeb design

Add Canary Islands to Woocommerce

How to add the Canary Islands to Woocommerce for shipping

The Canary Islands are an autonomous community of Spain (they make their own laws), but they belong to Spain and do speak Spanish. Getting websites to configure postage/shipping to these islands is tough as they are not included in Woocommerce out of the box.

We found a few solutions that would add the Canary Islands to Woocommerce as a country, which incidentally did not work as we think because the posts are old and WordPress and Woocommerce have updated since then.

The best way we found is to add the regions to your WordPress theme’s functions.php file. Please don’t add this code to your parent theme’s functions.php file as this will be deleted if you update it.

This can be copied to use for the Canary Islands or you can modify the country code and regions to use for other countries.

add_filter( 'woocommerce_states', 'custom_woocommerce_states' ); 
function custom_woocommerce_states( $states ) {
$states['ES'] = array(

'ES1' => 'A Coruna',
'ES2' => 'Araba/Alava',
'ES3' => 'Albacete',
'ES4' => 'Alicante',
'ES5' => 'Almeria',
'ES6' => 'Asturias',
'ES7' => 'Avila',
'ES8' => 'Badajoz',
'ES9' => 'Baleares',
'ES10' => 'Barcelona',
'ES11' => 'Burgos',
'ES12' => 'Caceres',
'ES13' => 'Cadiz',
'ES14' => 'Cantabria',
'ES15' => 'Castellon',
'ES16' => 'Ceuta',
'ES17' => 'Ciudad Real',
'ES18' => 'Cordoba',
'ES19' => 'Cuenca',
'ES20' => 'El Hierro',
'ES21' => 'Fuerteventura',
'ES22' => 'Girona',
'ES23' => 'Gran Canaria',
'ES24' => 'Granada',
'ES25' => 'Guadalajara',
'ES26' => 'Gipuzkoa',
'ES27' => 'Huelva',
'ES28' => 'Huesca',
'ES29' => 'Ibiza',
'ES30' => 'Jaen',
'ES31' => 'La Gomera',
'ES32' => 'La Palma',
'ES33' => 'La Rioja',
'ES34' => 'Lanzarote',
'ES35' => 'Leon',
'ES36' => 'Lleida',
'ES37' => 'Lugo',
'ES38' => 'Madrid',
'ES39' => 'Majorca',
'ES40' => 'Malaga',
'ES41' => 'Melilla',
'ES42' => 'Menorca',
'ES43' => 'Murcia',
'ES44' => 'Navarra',
'ES45' => 'Ourense',
'ES46' => 'Palencia',
'ES47' => 'Pontevedra',
'ES48' => 'Salamanca',
'ES49' => 'Santa Cruz de Tenerife',
'ES50' => 'SegoviaSG',
'ES51' => 'Sevilla',
'ES52' => 'Soria',
'ES53' => 'Tarragona',
'ES54' => 'Tenerife',
'ES55' => 'Teruel',
'ES56' => 'Toledo',
'ES57' => 'Valencia',
'ES58' => 'Valladolid',
'ES59' => 'Bizkaia',
'ES60' => 'Zamora',
'ES61' => 'Zaragoza'

);

return $states;
}

Need a price for a new website instantly

Try our website cost calculator for free and get a price emailed to you.