WordPress Hosting

woocommerce multiples direcciones envio

Cómo añadir múltiples direcciones de envío en WooCommerce

Vamos a hablar de una de esas cosas que te hace rascarte la cabeza y preguntarte «¿en serio?».

WooCommerce es el líder mundial en plataformas de comercio electrónico, con más del 30% de cuota de mercado global. Está instalado en millones de tiendas online. Pero tiene una carencia que cualquier usuario de Amazon, eBay o prácticamente cualquier marketplace del mundo da por hecha: no permite guardar y usar múltiples direcciones de envío de forma nativa.

Sí, has leído bien. La plataforma de tiendas online más popular del planeta te obliga a introducir manualmente la dirección cada vez que quieres enviar a un sitio diferente, o peor aún, hacer pedidos separados si quieres enviar productos a distintas ubicaciones. Esto no tiene ningún sentido.

¿Por qué es tan importante tener múltiples direcciones de envío?

Déjame ponerte en situación con casos reales que seguro te suenan:

  • El regalo de Navidad: Estás comprando regalos para tu familia. Mamá vive en Valencia, tu hermano en Barcelona, y tu mejor amigo en Sevilla. Tendrías que hacer tres pedidos separados, pagando tres veces los gastos de envío y perdiendo un tiempo precioso. Absurdo, ¿verdad?
  • El empresario con varias sedes: Tienes una empresa con oficinas en Madrid, Barcelona y Bilbao. Necesitas enviar material de oficina a las tres ubicaciones. ¿De verdad tienes que hacer tres compras diferentes?
  • El comprador habitual: Simplemente quieres tener guardada tu dirección de casa, la del trabajo, y la de tus padres para cuando les compras algo. Es lo mínimo que cualquier tienda online debería ofrecer.

Esto no son casos raros ni extremos. Son situaciones del día a día de cualquier tienda profesional. Y sin embargo, WooCommerce decidió no incluir esta funcionalidad básica de serie.

¿Por qué WooCommerce no lo incluye por defecto?

Es una pregunta que lleva años rondando en foros y grupos de desarrolladores. La respuesta oficial es que WooCommerce está diseñado como una plataforma base, ligera y extensible, y que cada tienda debe personalizar sus funcionalidades según sus necesidades específicas.

Traducción: «No lo hemos hecho porque así vendemos más plugins premium»

Lo cierto es que esta filosofía tiene sentido en muchos aspectos, pero cuando hablamos de funcionalidades básicas que prácticamente cualquier ecommerce profesional necesita, la excusa se cae por su propio peso. Plataformas como Shopify, Magento o PrestaShop sí lo incluyen de serie. Incluso marketplaces chinos lo tienen implementado desde hace años.

Afortunadamente, aunque WooCommerce no lo incluya nativamente, el ecosistema de plugins ha solucionado este problema de múltiples formas. Veamos las mejores opciones disponibles.

Las 3 mejores soluciones para añadir múltiples direcciones en WooCommerce

tutorial ofrecer multiples direcciones envio woocommerce

He probado y analizado las principales soluciones del mercado, y estas son las tres que realmente destacan por su fiabilidad, funcionalidad y soporte:

Multiple Shipping Addresses for WooCommerce (Freemium)

Precio: Gratuito (con versión PRO desde 39 €/año)

Sin duda, la solución más popular y accesible del mercado. ThemeHigh ha creado un plugin que equilibra perfectamente funcionalidad y facilidad de uso, con una versión gratuita muy completa y una PRO que añade características avanzadas.

Características de la versión gratuita:

  • Guardar múltiples direcciones de facturación y envío
  • Gestionar direcciones desde la página «Mi cuenta»
  • Seleccionar direcciones guardadas en el checkout
  • Añadir nuevas direcciones directamente en el checkout
  • Establecer direcciones predeterminadas
  • Enviar hasta 3 productos a diferentes ubicaciones en un mismo pedido
  • Dos modos de visualización: popup o dropdown
  • Compatible con WooCommerce 9.0+

Características adicionales de la versión PRO:

  • Direcciones ilimitadas (sin límite de 3)
  • Autocompletado de direcciones con Google Maps API
  • Multi-envío para productos variables
  • Envío múltiple para usuarios invitados (con límite de tiempo configurable)
  • Excluir productos o categorías específicas del multi-envío
  • Personalización completa de textos y estilos
  • Formatos de dirección personalizados por país
  • Notificaciones de email por dirección de envío
  • Estados de pedido separados por dirección
  • Compatibilidad con Checkout Field Editor
  • Backup e importación de configuración

¿Para quién es ideal? Perfecto para tiendas pequeñas y medianas que quieran empezar con la versión gratuita y escalar a PRO cuando lo necesiten. La curva de aprendizaje es mínima y el soporte es excelente.

YITH Multiple Addresses Shipping for WooCommerce (Premium)

Precio: 69 €/año

YITH es una de las marcas más reconocidas del ecosistema WooCommerce, y su plugin de múltiples direcciones está a la altura de su reputación. Es una solución premium sin versión gratuita, pero ofrece características muy potentes.

Características principales:

  • Direcciones ilimitadas de envío
  • Enviar cada producto del carrito a una dirección diferente
  • Asignar cantidades específicas a cada dirección
  • Gestión de direcciones desde ventana modal en checkout
  • Excluir productos, categorías o etiquetas del multi-envío
  • Posición configurable del selector de direcciones (arriba/abajo del checkout)
  • Gestión de estado de envío por dirección
  • Compatible con WPML (multiidioma)
  • Actualizaciones y soporte durante 1 año
  • Garantía de devolución de 30 días

¿Para quién es ideal? Para tiendas profesionales que necesitan una solución robusta desde el primer día y valoran el respaldo de una marca consolidada. Si tu tienda mueve volumen medio-alto, la inversión merece la pena.

WooCommerce Multiple Customer Addresses (Premium «oficial» en WooCommerce.com)

Precio: 59 €/año

La solución oficial de WooCommerce.com. Aunque llega tarde al problema que deberían haber resuelto desde el principio, es una opción sólida con la ventaja de estar desarrollada por el mismo equipo que mantiene WooCommerce.

Características principales:

  • Direcciones ilimitadas de facturación y envío
  • Guardar y gestionar direcciones desde «Mi cuenta»
  • Función de envío a múltiples direcciones
  • Dos diseños de checkout: inline o popup
  • Restricciones por roles de usuario
  • Límite máximo de direcciones configurable
  • Campo de email de envío opcional
  • Personalización de textos y encabezados
  • CSS personalizado para estilos
  • Soporte oficial de WooCommerce

¿Para quién es ideal? Para tiendas que priorizan la compatibilidad y el soporte oficial. Si ya usas otras extensiones de WooCommerce.com, esta opción te garantiza que todo funcionará sin conflictos.

Comparativa rápida

Característica ThemeHigh FREE ThemeHigh PRO YITH WooCommerce.com
Precio Gratis 39 €/año 69 €/año 59 €/año
Direcciones guardadas Ilimitadas Ilimitadas Ilimitadas Ilimitadas
Multi-envío (productos a diferentes direcciones) Hasta 3 ubicaciones Ilimitado Ilimitado
Autocompletado Google Maps No No No
Multi-envío para invitados No No
Mejor para Tiendas pequeñas Todo tipo de tiendas Tiendas profesionales Usuarios WooCommerce.com

Mi recomendación según tu situación

  • Si estás empezando o tienes una tienda pequeña: ve directo al plugin gratis de ThemeHigh. Te permitirá ofrecer la funcionalidad básica sin gastar un euro, y cuando tu tienda crezca, puedes actualizar a PRO por menos de 40 € al año.
  • Si tienes una tienda mediana con ventas regulares: el de pago de ThemeHigh es tu mejor opción. Tiene la mejor relación calidad-precio del mercado, incluyendo funcionalidades que otros cobran más caro.
  • Si tienes una tienda grande o muy profesional: tanto el plugin de YITH como la solución oficial de WooCommerce son excelentes opciones. Y tiraría por YITH si valoras funcionalidades específicas como exclusión de productos, o el de WooCommerce.com si ya usas varias de sus extensiones.

Tutorial: Multiple Shipping Addresses (versión gratuita)

Vamos a configurar la solución más popular en su versión gratuita.

Paso 1: Instalación del plugin

Desde tu escritorio de WordPress:

  1. Ve a Plugins → Añadir nuevo
  2. En el buscador, escribe Multiple Shipping Addresses WooCommerce
  3. Localiza el plugin de ThemeHigh (tiene más de 2.000 instalaciones activas)
  4. Haz clic en Instalar ahora
  5. Una vez instalado, haz clic en Activar

Paso 2: Ajustes generales

Una vez activado el plugin, aparecerá un nuevo menú en WooCommerce:

  1. Ve a WooCommerce → Gestionar direcciones
  2. Verás la pestaña Ajustes generales, donde configurarás las opciones principales

Opciones de direcciones de facturación:

  • Activar las direcciones múltiples para la facturación: Activa esta opción si quieres que los clientes puedan guardar múltiples direcciones de facturación
  • Tipo de visualización: Elige entre desplegable o ventana emergente (yo creo que es mejor ventana)
  • Estilo de visualización: Elige entre botón o enlace (te recomiendo botón)

Opciones de direcciones de envío:

  • Activar las direcciones múltiples para el envío: Activa esta opción (es lo que realmente necesitas)
  • Tipo de visualización: Elige entre desplegable o ventana emergente (yo creo que es mejor ventana)
  • Estilo de visualización: Elige entre botón o enlace (te recomiendo botón)

Envío múltiple:

  • Permitir que los productos de un pedido se envíen a diferentes ubicaciones: Activa esta opción, el plugin no tiene casi sentido sin ella.
  • Envío múltiple para productos variables: Idem.

Guarda los cambios.

Paso 3: Activar el multi-envío (productos a diferentes direcciones)

Esta es la función estrella que permite enviar diferentes productos del carrito a distintas ubicaciones en un mismo pedido.

  1. En la misma página de Gestionar direcciones, busca la opción:
    Permitir que los productos de un pedido se envíen a diferentes ubicaciones
    Márcala para activar el multi-envío
  2. También verás la siguiente opción:
    Envío múltiple para productos variables:
    Actívala, no tiene sentido no hacerlo.

Nota importante: En la versión gratuita, los clientes podrán enviar productos a un máximo de 3 direcciones diferentes por pedido. En la versión PRO esta limitación desaparece.

woocommerce multiple addresses

Cómo lo verán tus clientes

En la página «Mi cuenta»:

Los clientes registrados verán dos nuevas zonas de direcciones donde pueden:

  • Ver sus direcciones de facturación
  • Ver sus direcciones de envío
  • Añadir nuevas direcciones adicionales
  • Eliminar direcciones existentes
  • Establecer cualquier dirección como por defecto

woocommerce direcciones adicionales mi cuenta

En el pago:

Al llegar al pago, los clientes verán:

  1. Un botón/enlace para «Facturar con una dirección diferente»
  2. Un botón/enlace para «Enviar con una dirección diferente»
  3. Al hacer clic, se abrirá un popup o desplegable – lo que hayas configurado – con las direcciones guardadas
  4. Pueden seleccionar una dirección existente o añadir una nueva al momento

multiples direcciones envio woocommerce

La experiencia es muy fluida y similar a lo que encuentras en Amazon o cualquier gran marketplace.

Solución con código personalizado (básica)

Si eres desarrollador y quieres una solución básica sin plugins, te advierto que crear un sistema completo de múltiples direcciones es complejo (requiere custom post types, gestión de user meta, hooks en el pago, etc.). Sin embargo, puedes implementar una versión simplificada para guardar direcciones adicionales en los metadatos del usuario.

Aquí tienes un snippet básico que permite guardar una dirección alternativa de envío:

// Añadir campos de dirección alternativa en Mi Cuenta
add_action('woocommerce_after_edit_address_form_shipping', 'ayudawp_add_alternative_shipping_address_fields');

function ayudawp_add_alternative_shipping_address_fields() {
    $user_id = get_current_user_id();
    ?>
    <h3>Otra dirección de envío</h3>
    
    <p class="form-row form-row-first">
        <label for="alt_shipping_first_name">Nombre <span class="required">*</span></label>
        <input type="text" class="input-text" name="alt_shipping_first_name" 
               value="<?php echo esc_attr(get_user_meta($user_id, 'alt_shipping_first_name', true)); ?>" />
    </p>
    
    <p class="form-row form-row-last">
        <label for="alt_shipping_last_name">Apellidos <span class="required">*</span></label>
        <input type="text" class="input-text" name="alt_shipping_last_name" 
               value="<?php echo esc_attr(get_user_meta($user_id, 'alt_shipping_last_name', true)); ?>" />
    </p>
    
    <p class="form-row form-row-wide">
        <label for="alt_shipping_address_1">Dirección <span class="required">*</span></label>
        <input type="text" class="input-text" name="alt_shipping_address_1" 
               value="<?php echo esc_attr(get_user_meta($user_id, 'alt_shipping_address_1', true)); ?>" />
    </p>
    
    <p class="form-row form-row-wide">
        <label for="alt_shipping_city">Ciudad <span class="required">*</span></label>
        <input type="text" class="input-text" name="alt_shipping_city" 
               value="<?php echo esc_attr(get_user_meta($user_id, 'alt_shipping_city', true)); ?>" />
    </p>
    
    <p class="form-row form-row-first">
        <label for="alt_shipping_postcode">Código postal <span class="required">*</span></label>
        <input type="text" class="input-text" name="alt_shipping_postcode" 
               value="<?php echo esc_attr(get_user_meta($user_id, 'alt_shipping_postcode', true)); ?>" />
    </p>
    <?php
}

// Guardar los campos de dirección adicional
add_action('woocommerce_customer_save_address', 'ayudawp_save_alternative_shipping_address', 10, 2);

function ayudawp_save_alternative_shipping_address($user_id, $load_address) {
    if ($load_address !== 'shipping') {
        return;
    }
    
    $fields = array(
        'alt_shipping_first_name',
        'alt_shipping_last_name',
        'alt_shipping_address_1',
        'alt_shipping_city',
        'alt_shipping_postcode'
    );
    
    foreach ($fields as $field) {
        if (isset($_POST[$field])) {
            update_user_meta($user_id, $field, sanitize_text_field($_POST[$field]));
        }
    }
}

// Añadir selector de dirección en el pago
add_action('woocommerce_after_checkout_shipping_form', 'ayudawp_add_address_selector_checkout');

function ayudawp_add_address_selector_checkout($checkout) {
    if (!is_user_logged_in()) {
        return;
    }
    
    $user_id = get_current_user_id();
    $alt_address_name = get_user_meta($user_id, 'alt_shipping_first_name', true);
    
    if (empty($alt_address_name)) {
        return;
    }
    
    echo '<div class="ayudawp-alternative-address">';
    
    woocommerce_form_field('use_alternative_address', array(
        'type' => 'checkbox',
        'class' => array('form-row-wide'),
        'label' => 'Usar dirección alternativa guardada',
    ), $checkout->get_value('use_alternative_address'));
    
    echo '</div>';
}

Importante: Este código es solo un punto de partida muy básico. No incluye:

  • Múltiples direcciones (solo una adicional)
  • Envío de productos a diferentes ubicaciones en el mismo pedido
  • Validación completa de campos
  • Integración con métodos de envío
  • Gestión de estados y países

Para una solución profesional te recomiendo encarecidamente usar uno de los plugins mencionados en lugar de desarrollar desde cero. El tiempo de desarrollo y mantenimiento no compensa el ahorro.

Preguntas frecuentes

¿Puedo guardar direcciones ilimitadas?

Depende de la solución que uses. La versión gratuita de ThemeHigh permite guardar direcciones ilimitadas, pero solo enviar a 3 ubicaciones diferentes por pedido. Las versiones premium de todos los plugins mencionados permiten tanto guardar como usar direcciones ilimitadas.

¿Los usuarios invitados pueden usar múltiples direcciones?

En la mayoría de plugins, el multi-envío requiere que el usuario esté registrado. Sin embargo, ThemeHigh PRO permite habilitar esta funcionalidad para invitados con límites de tiempo configurables.

¿Se pueden enviar diferentes productos a diferentes direcciones en el mismo pedido?

Sí, esta es precisamente la funcionalidad de «multi-envío» que ofrecen todos los plugins recomendados. El cliente puede asignar una dirección específica a cada producto del carrito.

¿Cómo se calculan los gastos de envío con múltiples direcciones?

Los plugins dividen el pedido en paquetes según las direcciones de destino y calculan los gastos de envío para cada paquete. Esto se hace de forma automática respetando tus zonas y métodos de envío configurados en WooCommerce.

¿Es compatible con mi tema de WordPress?

Los tres plugins recomendados están diseñados para funcionar con cualquier tema que respete los estándares de WooCommerce. ThemeHigh y YITH son especialmente conocidos por su excelente compatibilidad.

¿Funciona con WooCommerce Subscriptions?

La solución oficial de WooCommerce.com tiene compatibilidad garantizada con Subscriptions. Para ThemeHigh y YITH, consulta con su soporte específico según tu caso de uso.

¿Puedo importar direcciones de clientes existentes?

Los plugins trabajan con las direcciones estándar de WooCommerce que ya tienes. Las direcciones de facturación y envío actuales de tus clientes se respetan, y ellos pueden añadir más a partir de ahí.

¿Qué pasa si desinstalo el plugin después?

Las direcciones guardadas están en los metadatos de usuario de WordPress, así que no se pierden. Sin embargo, perderás la funcionalidad de gestionarlas y el multi-envío. Si piensas cambiar de plugin, asegúrate de que el nuevo sea compatible con el formato de datos del anterior.

¿Afecta al rendimiento de la tienda?

Los tres plugins están bien optimizados. ThemeHigh en particular tiene un impacto mínimo en la velocidad (menos de 1 segundo en PageSpeed según WP Hive). YITH también es conocido por su código limpio.

¿Se puede personalizar el diseño del selector de direcciones?

Sí, todos los plugins ofrecen opciones de personalización. ThemeHigh PRO incluye un campo para CSS personalizado, y YITH permite elegir entre diferentes estilos de visualización.

Conclusión

Que WooCommerce no incluya múltiples direcciones de envío de forma nativa es una carencia incomprensible actualmente, pero afortunadamente el ecosistema de plugins lo ha resuelto de sobra. No tienes excusa para no ofrecer esta funcionalidad básica en tu tienda.

Mi recomendación es clara: empieza con el plugin gratuito de ThemeHigh si tienes una tienda pequeña o estás comenzando. Te da lo esencial sin coste alguno. Cuando tu tienda crezca y necesites más funcionalidades, actualiza a ThemeHigh PRO por 39 €/año, una inversión mínima considerando lo que ofrece.

Si ya tienes una tienda establecida con ventas regulares, ve directo a ThemeHigh PRO o YITH según tus necesidades específicas. Ambas son excelentes opciones que se pagan solas con el aumento de conversión que generan.

Y por favor, si eres desarrollador, no pierdas el tiempo creando esta funcionalidad desde cero a menos que tengas requisitos muy específicos. El tiempo que ahorrarás usando un plugin consolidado te permitirá enfocarte en aspectos que realmente diferencien tu tienda.

Al final del día, ofrecer múltiples direcciones de envío no es solo una comodidad para tus clientes, es una ventaja competitiva real que aumenta el ticket medio, reduce el abandono de carrito y mejora la experiencia de compra. En un mercado tan competido como el del ecommerce, cada detalle cuenta.

¿Ya usas alguno de estos plugins en tu tienda? ¿Has probado otras soluciones? Déjame un comentario y cuéntame tu experiencia.

Compartir en redes
Resumir con IA

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en las estrellas para valorarlo!

Promedio de puntuación 5 / 5. Total de votos: 2

¡Todavía no hay votos! Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!



Sobre el autor

Scroll al inicio