
Reemplazar los estados por barrios en WooCommerce para vender sólo en una región
En muchos casos, los eCommerce no necesitan vender a todo un país. Por ejemplo, negocios locales que solo hacen envíos dentro de una ciudad o zona específica. Un caso típico en Argentina sería una tienda online que solo entrega en la Ciudad Autónoma de Buenos Aires (CABA). En ese escenario, ofrecer un listado de provincias (como lo hace WooCommerce por defecto en el campo billing_state
) no tiene sentido y puede confundir al cliente.
¿Cuál es la solución?
La solución es simple: reemplazar el listado de provincias por un listado de barrios de CABA. De esa manera, WooCommerce seguirá utilizando el campo billing_state
, pero el contenido será mucho más relevante y claro para el cliente.
Esto lo lograremos con un único filtro de WooCommerce (woocommerce_states
) y una pequeña personalización del campo en el checkout para que diga «Barrio» en lugar de «Provincia».
Reemplazar los estados por barrios en Argentina (CABA)
Este código reemplaza los estados argentinos por los barrios de la Ciudad Autónoma de Buenos Aires:
<?php add_filter( 'woocommerce_states', 'customReplaceStatesWithCabaNeighborhoods' ); function customReplaceStatesWithCabaNeighborhoods( $states ) { $states['AR'] = [ 'agronomia' => 'Agronomía', 'almagro' => 'Almagro', 'balvanera' => 'Balvanera', 'barracas' => 'Barracas', 'belgrano' => 'Belgrano', 'boedo' => 'Boedo', 'caballito' => 'Caballito', 'chacarita' => 'Chacarita', 'coghlan' => 'Coghlan', 'colegiales' => 'Colegiales', 'constitucion' => 'Constitución', 'flores' => 'Flores', 'floresta' => 'Floresta', 'la_boca' => 'La Boca', 'monserrat' => 'Monserrat', 'monte_castro' => 'Monte Castro', 'nunez' => 'Núñez', 'palermo' => 'Palermo', 'parque_avellaneda'=> 'Parque Avellaneda', 'parque_chacabuco' => 'Parque Chacabuco', 'parque_chas' => 'Parque Chas', 'pompeya' => 'Nueva Pompeya', 'puerto_madero' => 'Puerto Madero', 'recoleta' => 'Recoleta', 'retiro' => 'Retiro', 'saavedra' => 'Saavedra', 'san_cristobal' => 'San Cristóbal', 'san_nicolas' => 'San Nicolás', 'san_telmo' => 'San Telmo', 'villa_crespo' => 'Villa Crespo', 'villa_devoto' => 'Villa Devoto', 'villa_lugano' => 'Villa Lugano', 'villa_urquiza' => 'Villa Urquiza', 'villa_del_parque' => 'Villa del Parque', ]; return $states; }
Personalizar el label del campo en el checkout
Ahora, vamos a cambiar el texto del campo billing_state
para que diga «Barrio» en lugar de «Provincia«:
<?php add_filter( 'woocommerce_checkout_fields', 'customRenameStateFieldToBarrio' ); function customRenameStateFieldToBarrio( $fields ) { $fields['billing']['billing_state']['label'] = 'Barrio'; return $fields; }
Con este pequeño cambio:
- WooCommerce seguirá usando el campo
billing_state
, lo cual asegura compatibilidad con los métodos de pago, envío y validaciones. - El cliente verá un desplegable con los barrios de CABA en lugar de provincias.
- La interfaz de checkout será más clara y precisa para negocios que sólo venden localmente.
Si tu tienda WooCommerce solo vende en una región específica como CABA, reemplazar los estados por barrios es una forma sencilla y eficaz de mejorar la experiencia del usuario. Además, este cambio mantiene la compatibilidad total con la lógica interna de WooCommerce, sin necesidad de crear campos personalizados ni alterar la base de datos.