Evitar vender a determinadas provincias con WooCommerce

Por temas de coste de envío y de aduanas, es frecuente que los clientes me pidan expresamente que no se pueda vender a determinados destinos. Normalmente la petición es algo así:

  • No vender a las islas Canarias, provincias de Gran Canaria y Tenerife
  • No vender a Ceuta y Melilla
  • No vender a los archipiélagos de Azores y/o Madeira

Y es que se puede hacer de forma más o menos sencilla que estos destinos no tengan envíos. Cuando ajustas las zonas de envío en WooCommerce, puedes crear en España una zona llamada península e islas Baleares y no creas zonas para Canarias, Ceuta y Melilla y claro, los clientes no pueden pedir que se le envíe allí.

Pero claro, como aparece en la lista, genera frustración y soporte extra, así que la idea es directamente evitar la venta a estos destinos. WooCommerce permite restringir la venta por destinos a países pero no a partes de países así que tenemos que tirar de código para resolver este tema fácilmente.

Modificar las provincias de un país en WooCommerce

En WooCommerce, los códigos de las provincias (o estados, dependiendo del país) siguen el estándar ISO 3166-2.

  • ISO 3166-1 define los códigos de los países, por ejemplo, ES para España o MX para México.
  • ISO 3166-2 define los códigos de subdivisiones dentro de cada país (por ejemplo, ES-M para Madrid en España, US-CA para California en EE.UU.
  • WooCommerce guarda en un array de dos dimensiones estos datos, la primera parte el país, la segunda la provincia con el código que representa a esta sin el código del país, por ejemplo, Ceuta sería $woocommerce_states[‘ES’][‘CE’]

WooCommerce usa estos códigos en su base de datos para gestionar regiones en direcciones de envío y facturación, así que si usamos el hook woocommerce_states, podemos hacer justo lo que hemos comentado.

Tan sencillo como esto:

add_filter ('woocommerce_states', function( $provincias ){
   unset( $provincias['ES']['CE'] );
   unset( $provincias['ES']['ML'] );
   unset( $provincias['ES']['TF'] );
   unset( $provincias['ES']['GC'] );
   unset( $provincias['PT']['MD'] );
   unset( $provincias['PT']['AC'] );
   return $provincias;
} );

Aquí eliminamos todos los puntos que hemos comentado arriba pero podríais elegir el subconjunto que queráis o si lo preferís otras provincias. Por cierto, si no tenéis por defecto los distritos de Portugal en vuestro sistema, que así es como se llama el equivalente a provincias, podéis instalar este plugin Portugal States (Distritos) for WooCommerce. La forma más sencilla de tenerlos disponibles a golpe de clic.

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (Ninguna valoración todavía)
Cargando…

Almacenamos las IPs desde la que se envían las valoraciones para evitar fraudes

0

Deja una respuesta

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

Carrito