No vender a Canarias con Woocommerce
Cuando realizamos una tienda online en WooCommerce nos topamos con el problema de vender o no a Canarias, Ceuta y Melilla debido a sus distintas imposiciones de impuestos y gastos de envíos, muchas veces preferimos no meternos en más jaleos y suprimir estas provincias de nuestra tienda online.
El problema surge que WooCommerce no tiene por defecto quitar estas provincias cuando un usuario se registra y permite que el usuario la elija.
Os ponemos aquí dos posibles soluciones para quitar estas provincias de la lista sin tocar directamente el «functions.php» y así nos libramos de los peligros o problemas que toquetear ahí sin muchos conocimientos pudieran surgir.
MÉTODO 1 RECOMENDADO: CON PLUGIN «CODE SNIPPETS» (https://es.wordpress.org/plugins/code-snippets/)
Este plugin nos permite modificar el PHP de la web sin tocar la página de «functions» con lo cual introduciremos un código que nos eliminará de la lista Tenerife, Gran Canarias, Ceuta y Melilla.
-Instalamos el plugin
– Nos vamos a «snippets» en la barra de administración y le damos a «añadir nuevo»
– Le damos un título e Introducimos el siguiente código:
function afr_limita_envios ($provincias) {
unset ($provincias [‘ES’] [‘TF’]);
unset ($provincias [‘ES’] [‘GC’]);
unset ($provincias [‘ES’] [‘CE’]);
unset ($provincias [‘ES’] [‘ML’]);
unset ($provincias [‘ES’] [‘PM’]);
return $provincias;
}
add_filter (‘woocommerce_states’, ‘afr_limita_envios’);
SELECCIONAR: EJECUTAR EL FRAGMENTO DE CÓDIGO EN TODAS PARTES
Después comprobamos que ya no nos sale en el selector de provincias no deseadas.
MÉTODO 2 (NO RECOMENDADO):
No recomendamos este método, ya que en el momento que actualicemos WordPress, plantilla, dejará de funcionar…
Modificando el archivo por FTP dónde se encuentran las provincias españolas y eliminando del listado aquellas que no nos interesan para que el usuario no pueda elegirla cuando se registre.
En la siguiente ruta:
wp-content/plugins/woocommerce/i18n/state , y modificamos el archivo ES.php
NOTA IMPORTANTE: CON ESTA SOLUCIÓN HAY QUE VOLVER A MODIFICAR ESTE ARCHIVO CADA VEZ QUE SE ACTUALICE WOOCOMMERCE.
El php original con las provincias Canarias, Ceuta y Melilla es el siguiente a día de hoy y versión WooCommerce 3.2.3 (hemos señalado en rojo lo que hay que eliminar)
/**
* Spain states
*
* @author WooThemes
* @category i18n
* @package WooCommerce/i18n
* @version 2.0.11
*/
global $states;
if ( ! defined( ‘ABSPATH’ ) ) {
exit;
}
$states[‘ES’] = array(
‘C’ => __( ‘A Coruña’, ‘woocommerce’ ),
‘VI’ => __( ‘Araba/Álava’, ‘woocommerce’ ),
‘AB’ => __( ‘Albacete’, ‘woocommerce’ ),
‘A’ => __( ‘Alicante’, ‘woocommerce’ ),
‘AL’ => __( ‘Almería’, ‘woocommerce’ ),
‘O’ => __( ‘Asturias’, ‘woocommerce’ ),
‘AV’ => __( ‘Ávila’, ‘woocommerce’ ),
‘BA’ => __( ‘Badajoz’, ‘woocommerce’ ),
‘PM’ => __( ‘Baleares’, ‘woocommerce’ ),
‘B’ => __( ‘Barcelona’, ‘woocommerce’ ),
‘BU’ => __( ‘Burgos’, ‘woocommerce’ ),
‘CC’ => __( ‘Cáceres’, ‘woocommerce’ ),
‘CA’ => __( ‘Cádiz’, ‘woocommerce’ ),
‘S’ => __( ‘Cantabria’, ‘woocommerce’ ),
‘CS’ => __( ‘Castellón’, ‘woocommerce’ ),
‘CE’ => __( ‘Ceuta’, ‘woocommerce’ ),
‘CR’ => __( ‘Ciudad Real’, ‘woocommerce’ ),
‘CO’ => __( ‘Córdoba’, ‘woocommerce’ ),
‘CU’ => __( ‘Cuenca’, ‘woocommerce’ ),
‘GI’ => __( ‘Girona’, ‘woocommerce’ ),
‘GR’ => __( ‘Granada’, ‘woocommerce’ ),
‘GU’ => __( ‘Guadalajara’, ‘woocommerce’ ),
‘SS’ => __( ‘Gipuzkoa’, ‘woocommerce’ ),
‘H’ => __( ‘Huelva’, ‘woocommerce’ ),
‘HU’ => __( ‘Huesca’, ‘woocommerce’ ),
‘J’ => __( ‘Jaén’, ‘woocommerce’ ),
‘LO’ => __( ‘La Rioja’, ‘woocommerce’ ),
‘GC’ => __( ‘Las Palmas’, ‘woocommerce’ ),
‘LE’ => __( ‘León’, ‘woocommerce’ ),
‘L’ => __( ‘Lleida’, ‘woocommerce’ ),
‘LU’ => __( ‘Lugo’, ‘woocommerce’ ),
‘M’ => __( ‘Madrid’, ‘woocommerce’ ),
‘MA’ => __( ‘Málaga’, ‘woocommerce’ ),
‘ML’ => __( ‘Melilla’, ‘woocommerce’ ),
‘MU’ => __( ‘Murcia’, ‘woocommerce’ ),
‘NA’ => __( ‘Navarra’, ‘woocommerce’ ),
‘OR’ => __( ‘Ourense’, ‘woocommerce’ ),
‘P’ => __( ‘Palencia’, ‘woocommerce’ ),
‘PO’ => __( ‘Pontevedra’, ‘woocommerce’ ),
‘SA’ => __( ‘Salamanca’, ‘woocommerce’ ),
‘TF’ => __( ‘Santa Cruz de Tenerife’, ‘woocommerce’ ),
‘SG’ => __( ‘Segovia’, ‘woocommerce’ ),
‘SE’ => __( ‘Sevilla’, ‘woocommerce’ ),
‘SO’ => __( ‘Soria’, ‘woocommerce’ ),
‘T’ => __( ‘Tarragona’, ‘woocommerce’ ),
‘TE’ => __( ‘Teruel’, ‘woocommerce’ ),
‘TO’ => __( ‘Toledo’, ‘woocommerce’ ),
‘V’ => __( ‘Valencia’, ‘woocommerce’ ),
‘VA’ => __( ‘Valladolid’, ‘woocommerce’ ),
‘BI’ => __( ‘Bizkaia’, ‘woocommerce’ ),
‘ZA’ => __( ‘Zamora’, ‘woocommerce’ ),
‘Z’ => __( ‘Zaragoza’, ‘woocommerce’ ),
);
Y a continuación como quedaría con las provincias eliminadas:
/**
* Spain states
*
* @author WooThemes
* @category i18n
* @package WooCommerce/i18n
* @version 2.0.11
*/
global $states;
if ( ! defined( ‘ABSPATH’ ) ) {
exit;
}
$states[‘ES’] = array(
‘C’ => __( ‘A Coruña’, ‘woocommerce’ ),
‘VI’ => __( ‘Araba/Álava’, ‘woocommerce’ ),
‘AB’ => __( ‘Albacete’, ‘woocommerce’ ),
‘A’ => __( ‘Alicante’, ‘woocommerce’ ),
‘AL’ => __( ‘Almería’, ‘woocommerce’ ),
‘O’ => __( ‘Asturias’, ‘woocommerce’ ),
‘AV’ => __( ‘Ávila’, ‘woocommerce’ ),
‘BA’ => __( ‘Badajoz’, ‘woocommerce’ ),
‘PM’ => __( ‘Baleares’, ‘woocommerce’ ),
‘B’ => __( ‘Barcelona’, ‘woocommerce’ ),
‘BU’ => __( ‘Burgos’, ‘woocommerce’ ),
‘CC’ => __( ‘Cáceres’, ‘woocommerce’ ),
‘CA’ => __( ‘Cádiz’, ‘woocommerce’ ),
‘S’ => __( ‘Cantabria’, ‘woocommerce’ ),
‘CS’ => __( ‘Castellón’, ‘woocommerce’ ),
‘CR’ => __( ‘Ciudad Real’, ‘woocommerce’ ),
‘CO’ => __( ‘Córdoba’, ‘woocommerce’ ),
‘CU’ => __( ‘Cuenca’, ‘woocommerce’ ),
‘GI’ => __( ‘Girona’, ‘woocommerce’ ),
‘GR’ => __( ‘Granada’, ‘woocommerce’ ),
‘GU’ => __( ‘Guadalajara’, ‘woocommerce’ ),
‘SS’ => __( ‘Gipuzkoa’, ‘woocommerce’ ),
‘H’ => __( ‘Huelva’, ‘woocommerce’ ),
‘HU’ => __( ‘Huesca’, ‘woocommerce’ ),
‘J’ => __( ‘Jaén’, ‘woocommerce’ ),
‘LO’ => __( ‘La Rioja’, ‘woocommerce’ ),
‘LE’ => __( ‘León’, ‘woocommerce’ ),
‘L’ => __( ‘Lleida’, ‘woocommerce’ ),
‘LU’ => __( ‘Lugo’, ‘woocommerce’ ),
‘M’ => __( ‘Madrid’, ‘woocommerce’ ),
‘MA’ => __( ‘Málaga’, ‘woocommerce’ ),
‘MU’ => __( ‘Murcia’, ‘woocommerce’ ),
‘NA’ => __( ‘Navarra’, ‘woocommerce’ ),
‘OR’ => __( ‘Ourense’, ‘woocommerce’ ),
‘P’ => __( ‘Palencia’, ‘woocommerce’ ),
‘PO’ => __( ‘Pontevedra’, ‘woocommerce’ ),
‘SA’ => __( ‘Salamanca’, ‘woocommerce’ ),
‘SG’ => __( ‘Segovia’, ‘woocommerce’ ),
‘SE’ => __( ‘Sevilla’, ‘woocommerce’ ),
‘SO’ => __( ‘Soria’, ‘woocommerce’ ),
‘T’ => __( ‘Tarragona’, ‘woocommerce’ ),
‘TE’ => __( ‘Teruel’, ‘woocommerce’ ),
‘TO’ => __( ‘Toledo’, ‘woocommerce’ ),
‘V’ => __( ‘Valencia’, ‘woocommerce’ ),
‘VA’ => __( ‘Valladolid’, ‘woocommerce’ ),
‘BI’ => __( ‘Bizkaia’, ‘woocommerce’ ),
‘ZA’ => __( ‘Zamora’, ‘woocommerce’ ),
‘Z’ => __( ‘Zaragoza’, ‘woocommerce’ ),
);
Una vez modificado el archivo el usuario no podrá elegir las provincias de Canarias, Ceuta o Melilla cuando se vaya a registrar:
4 comentarios
Comments are closed.
Nuestras redes sociales
Busca en nuestro Blog
Web optimizada para Seo: ¿Saldré en los primeros puestos de Google?
Muchas empresas nos venden la web optimizada para Seo, lo cual está muy bien, pues es un gran trabajo muy necesario e imprescindible para posicionar la web en Google, ¿pero significa esto que [...]
Estafas en internet. Cuidado con dnscorp.org/godomainweb.org – estafadores
Si tienes registrado un dominio y un día recibes un mensaje a través del formulario de tu página web de "dnscorp.org", que te dice, en inglés, que si no pagas en un enlace [...]
Justificar textos en wordpress 2020
¿Cómo justificar textos en wordpress? Razones por las que Wordpress no justifica textos Justificar textos en WordPress según indican los propios expertos en WordPress, suele ser perjudicial para la lectura de los textos, debido [...]
Cómo traducir Avada theme, traducción del blog y opciones del tema
Cómo traducir Avada Theme WordPress Actualización 2025. Gracias a las mejoras que han realizado los programadores de Avada actualmente las traducciones del tema son automáticas. No hay que utilizar el tutorial de abajo, [...]
Cómo modificar contact form 7 con xampp
Cómo modificar contact form 7 con xampp para que envie correos. A veces nos encontramos con servidores dónde la función php mail no está habilitada, esto generalmente sucede en servidores gratuitos. Con este [...]
PROBLEMAS CONTACT FORM 7
PROBLEMAS CONTACT FORM 7 Problemas Contact form 7, contact form 7 no funciona, posibles soluciones Contact form 7 es un formulario de contacto para wordpress gratuito que generalmente funciona a las mil maravillas. ¿Qué [...]
Cómo reducir fotos para web con Photoshop
Para subir las fotos en los posts la mayoría de personas lo hacen sin tener en cuenta su peso o tamaño. A la hora de subir fotos a una web nos encontramos con el [...]
Web autoadministrable-problemas mal uso
WEB AUTOADMINISTRABLE: ACERCA DE SU MANTENIMIENTO Y BAJADAS DE PUESTOS EN GOOGLE. Muchas veces nos encontramos con clientes que buscan una web autoadministrable para luego no tener gastos anuales en el mantenimiento web. ¿Pero [...]





Buenas,
con el plugin no funciona ninguno,
Saludos
Hola Juan puedes probar de nuevo con el siguiente código:
function afr_limita_envios ($provincias) {
unset ($provincias [‘ES’] [‘TF’]);
unset ($provincias [‘ES’] [‘GC’]);
unset ($provincias [‘ES’] [‘CE’]);
unset ($provincias [‘ES’] [‘ML’]);
return $provincias;
}
add_filter (‘woocommerce_states’, ‘afr_limita_envios’);
y seleccionar abajo: «ejecutar el fragmento de código en todas partes»
Esperamos que te funcione un saludo.
Hola, he probado con el plugin de insertar códigos y no me funciona, siguen apareciendo las provincias.
Hola, Sandra, puedes probar añadiendo este otro snippet o codigo
add_filter(‘woocommerce_states’, ‘eliminar_provincias’);
function eliminar_provincias( $provincias ) {
unset($provincias[‘ES’][‘TF’]);
unset($provincias[‘ES’][‘GC’]);
unset($provincias[‘ES’][‘CE’]);
unset($provincias[‘ES’][‘ML’]);
return $provincias;
}
Y otra opción es la siguiente
add_filter(‘woocommerce_states’, ‘eliminar_provincias’);
function eliminar_provincias( $provincias ) {
$exclude = array(‘TF’,’GC’,’CE’,’ML’);
foreach( $exclude as $item ) {
unset($provincias[‘ES’][$item]);
}
return $provincias;
}
Ya nos cuentas… Gracias por leernos.