A través del filtro woocommerce_states que devuelve un array de estados o provincias podemos modificar la lista a nuestro antojo, simplemente añadiendo unas líneas de código en nuestro plugin o el archivo functions.php de nuestro theme.

Para los ejemplos que voy a poner aquí vamos a suponer que en los ajustes de WooCommerce hemos seleccionado España como país para los envíos.

add_filter('woocommerce_states', 'my_custom_states');
 
function my_custom_states( $states ) {
 
   // aquí el código para modificar el array $states
   return $states;
}

Por ejemplo si no realizaramos envios a Canarias, podemos eliminar la opción Santa Cruz de Tenerife del array de provincias de esta manera:

add_filter('woocommerce_states', 'my_custom_states');
 
function my_custom_states( $states ) {
 
   unset($states['ES']['TF']);
   return $states;
}

Para excluir una lista de provincias:

add_filter('woocommerce_states', 'my_custom_states');
 
function my_custom_states( $states ) {
 
	$exclude = array('TF','BU','SG','ML','NA','OR');
 
	foreach( $exclude as $item ) {
		unset($states['ES'][$item]);
	}
 
	return $states;
}

O si sólo realizamos envíos a 3 provincias:

add_filter('woocommerce_states', 'my_custom_states');
 
function my_custom_states( $states ) {
 
   $states = array(
     'B'  => 'Barcelona',
     'MU' => 'Murcia',
     'SG' => 'Segovia'
   );
 
   return $states;
}

Puedes encontrar toda la lista de provincias y sus códigos dentro del plugin de WooCommerce, esta es la ruta a dicho archivo: woocommerce/i18n/states/ES.php (junto con el resto de archivos para los demás países)

Como modificar la lista de provincias para envios en WooCommerce
Etiquetado en:

12 pensamientos en “Como modificar la lista de provincias para envios en WooCommerce

  • agosto 8, 2015 a las 13:00
    Enlace permanente

    Hola Lucy,

    estoy siguiendo los pasos, pego el código que indicas tanto en functions.php como en el plugin pero me siguen apareciendo las provincias para seleccionar.

    Tengo la ultima versión de wocommerce y de wordpress.

    ¿Se te ocurre porque me puede estar pasando?

    Muchas gracias.

    Responder
    • agosto 8, 2015 a las 22:03
      Enlace permanente

      Hola Joaquin, ¿me puedes pasar el código exacto que estas poniendo para que pueda ver y probarlo? Gracias

    • agosto 10, 2015 a las 18:29
      Enlace permanente

      Hola Lucy,
      Gracias por contestar, ya lo he solucionado, estaba pegando el código en el functions.php de otra instalación.

  • Pingback: Como Quitar Provincias o Comunidades en Woocommerce

  • septiembre 24, 2015 a las 03:08
    Enlace permanente

    buenas noches… viejo un plugin para manejo de envio por departamento y peso todo por separado… y q sea gratis

    Responder
  • septiembre 25, 2015 a las 18:44
    Enlace permanente

    Hola Lucy,
    Ante todo gracias por los códigos. He probado el de excluir provincias y funciona perfecto. Sin embargo, y como en mi caso sólo deseo vender en una provincia, he copiado el último código, pero me devuelve una letra M en la casilla de las Provincias.
    Un saludo.

    Responder
  • diciembre 9, 2015 a las 11:16
    Enlace permanente

    Hola Lucy, me ha servido de ayuda tu artículo. Creo que te falta añadir Las Palmas de Gran Canaria al snippet donde hablas de excluir las canarias.
    unset($states[‘ES’][‘GC’]);

    Saludos!

    Responder
  • diciembre 9, 2015 a las 14:24
    Enlace permanente

    Estupendo artículo. Gracias, Lucy.
    Lo he implementado en mi sitio web.
    Como posibilidad de mejorar aun más aporto solo una sugerencia. Debe haber alguna forma de eliminar provincias en la dirección de envío, pero permitirlas en la dirección de facturación. En este caso le podríamos vender, y el cliente podría obtener factura con la dirección en donde tenga la dirección fiscal de su empresa, etc.

    Responder
  • marzo 27, 2016 a las 18:52
    Enlace permanente

    Por favor alguien me puede ayudar. He creado una tienda virtual y no se como excluir a ceuta, melilla, canarias y baleares… no podéis ayudar. es urgente

    Responder
  • Pingback: Configurar gastos de envío en Woocommerce según el peso

  • febrero 27, 2017 a las 06:29
    Enlace permanente

    Hola como puedo configurar el costo de envio, nosotros cobramos una misma tarifa a cualquier parte de la Republica Mexicana y quiero que ese importe se agregue al carrito cuando ya terminan de hacer de su compra, me pueden decir como hacerlo, gracias.

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *