¿Cómo eliminar provincias del listado de WooCommerce?

  • WooCommerce - Blog

¿Cómo eliminar provincias del listado de WooCommerce?

Recientemente un cliente nos solicitó que en su tienda virtual sólo se pudiera comprar en la península y no quería que se pudiera comprar ni en Ceuta, ni en Melilla, ni en Canarias, ni en Islas Baleares.

La solución que él nos proponía era eliminar las provincias del listado de provincias disponible en /wp-content/plugings/woocommerce/i18n/states/ES.php, concretamente eliminando las líneas 21, 28, 40, 46 y 53, pero claro esta solución sólo sería válida hasta la próxima actualización de WooCommerce, por lo que la descartamos al instante.

¿Cómo lo solucionamos?

La solución más sencilla consiste en crear una función PHP en el archivo functions.php de nuestro tema hijo o padre que se encargue de eliminar las cinco provincias solicitadas de nuestro listado de provincias disponibles en los formularios de facturación y envío de WooCommerce. Concretamente le creamos esta pequeña función PHP:

function eliminar_provincias( $provincias ) {
	unset( $provincias['ES']['ES-TF'] );
	unset( $provincias['ES']['ES-GC'] );
	unset( $provincias['ES']['ES-CE'] );
	unset( $provincias['ES']['ES-ML'] );
	unset( $provincias['ES']['ES-PM'] );

	return $provincias;
}
add_filter( 'woocommerce_states', 'eliminar_provincias' );

Gracias a este pequeño código PHP conseguimos hacer desaparecer las provincias de Ceuta, Melilla, Las Palmas, Santa Cruz de Tenerife y, por ende, evitar que ningún cliente que habitase en esas provincias pudiera realizar una compra en la tienda online de nuestro cliente.

Esperamos que os resulte útil esta solución para vuestros actuales o futuros proyectos.

2 Comentarios

  1. Marcelo Pedra viernes, 20 de mayo de 2016 en 15:12- Responder

    Hola muy interesante el dato. Y si quisiera eliminar todas las provincias, por decir así? Alcanzaría con que la función simplemente ejecute esto?
    unset( $provincias[‘ES’] );
    La idea de eso sería eliminar todas las provincias de mi país para luego insertar en el array versiones custom con nombres de las ciudades específicas a las que el cliente quiere poder venderle.
    Saludos!

    • Art Project Group viernes, 20 de mayo de 2016 en 15:45- Responder

      Teóricamente debería funcionarte así, aunque nunca lo hemos probado.

      Si vas a crear un array personalizado recuerda que para que sea funcional en WooCommerce debes poner como índice (key) el código ISO del país seguido de lo que quieras, por ejemplo ES-001, ES-nombre o ES-ISO, también se puede hacer sin guión de por medio.

      Un saludo.

Deje un comentario

Comparte esto con un amigo