Cómo Restringir Ubicaciones de Envío en WooCommerce

Si tienes una tienda en línea usando WooCommerce y necesitas limitar las ubicaciones de envío a ciertas ciudades, estás en el lugar correcto. En este artículo, te mostraré cómo hacerlo de manera sencilla, centrándonos en el departamento de Antioquia y permitiendo solo las ciudades de Medellín y Envigado.

Paso 1: Filtrar los Estados/Departamentos Permitidos

Primero, necesitamos asegurarnos de que solo aparezca Antioquia en la lista de departamentos al momento de realizar un pedido. Para lograr esto, usaremos el filtro woocommerce_states.

// Filtrar los estados/departamentos permitidos
add_filter( 'woocommerce_states', 'custom_woocommerce_states' );

function custom_woocommerce_states( $states ) {
    // Solo permitimos Antioquia
    $states['CO'] = array(
        'ANT' => 'Antioquia'
    );
    return $states;
}

Aquí, estamos modificando la lista de estados de Colombia para que solo muestre Antioquia. ¡Así de fácil!

Paso 2: Filtrar las Ciudades Permitidas en el Checkout

Ahora que tenemos Antioquia como única opción, vamos a especificar qué ciudades pueden seleccionarse en el checkout: solo Medellín y Envigado. Para esto, utilizaremos el filtro woocommerce_default_address_fields.

// Filtrar las ciudades permitidas en el checkout
add_filter( 'woocommerce_default_address_fields', 'custom_override_default_address_fields' );

function custom_override_default_address_fields( $address_fields ) {
    // Cambiamos el campo de ciudad a un selector
    $address_fields['city']['type'] = 'select';
    $address_fields['city']['options'] = array(
        ''          => 'Seleccione una ciudad',
        'Medellín'  => 'Medellín',
        'Envigado'  => 'Envigado'
    );
    return $address_fields;
}

Con este código, transformamos el campo de ciudad en un menú desplegable donde solo aparecen las ciudades que hemos definido. ¡Es una excelente manera de evitar confusiones!

Explicación

  1. Filtrar los Estados/Departamentos:
    • La función add_filter permite modificar la lista de estados que WooCommerce muestra. En nuestro caso, hemos hecho que solo Antioquia esté disponible.
    • La función custom_woocommerce_states es la que realiza la magia, limitando las opciones a lo que realmente nos interesa.
  2. Filtrar las Ciudades en el Checkout:
    • Nuevamente usamos add_filter, pero esta vez para los campos de dirección.
    • La función custom_override_default_address_fields se encarga de cambiar el campo de ciudad a un selector y de definir las opciones disponibles.

Compartir esta información