Inicio > Recursos > Open Source > Wordpress > WooCommerce > ¿Cómo agregar una dirección de envío para productos virtuales en WooCommerce?
¿Cómo agregar una dirección de envío para productos virtuales en WooCommerce?
- Desarrollo Web, WooCommerce
- 7 febrero 2023
A menudo, los productos virtuales, como descargas digitales o servicios en línea, no requieren envío físico. Por lo tanto, WooCommerce elimina automáticamente la opción de ingresar una dirección de envío cuando se marca un producto como virtual.
Sin embargo, en ocasiones, es posible que desee ofrecer la opción de ingresar una dirección de envío para productos virtuales, especialmente durante promociones o descuentos especiales.
¿Cómo podemos hacerlo?
La solución en bastante sencilla, solo hay que añadir este pequeño código de php a vuestro archivo de funtions.php.
Este es el código:
add_filter( ‘woocommerce_cart_needs_shipping_address’, ‘__return_true’, 50 );
Este filtro en particular, «woocommerce_cart_needs_shipping_address», es un filtro de WordPress que se puede agregar en el archivo functions.php de tu tema para siempre mostrar el formulario de dirección de envío en WooCommerce, incluso para productos virtuales.
El filtro se utiliza para controlar si se muestra o no el formulario de dirección de envío, y al devolver «true», se mostrará el formulario siempre. Al agregar este filtro en el archivo functions.php de tu tema, los clientes podrán ingresar una dirección de envío para productos virtuales durante el proceso de compra, lo que puede ser útil en ciertas circunstancias. Sin embargo, es importante tener en cuenta que la información de envío no se usará para fines de envío, ya que los productos virtuales no se envían físicamente.
Gracias a este filtro, ahora es posible agregar una dirección de envío para productos virtuales en WooCommerce, aunque sean virtuales. Si revisas la orden de compra de WooCommerce, podrás ver cómo se guarda la dirección de envío dentro del pedido.
Ahora que hemos logrado agregar una dirección de envío para productos virtuales en WooCommerce, parece que todo está solucionado. Sin embargo, el cliente informó que en las notificaciones de administrador de Woocommerce no aparece la dirección de envío. Este comportamiento tiene una explicación lógica, ya que al ser productos virtuales, el sistema asume que no es necesario incluir la dirección de envío en ninguna parte.
Nuestro siguiente paso es solucionar la falta de dirección de envío en las notificaciones de WooCommerce. Para ello, es necesario agregar mediante PHP un código que transfiera la dirección de envío incluida en la orden de WooCommerce al correo electrónico de notificación del administrador.
function enviar_direccion_correo_productos_virtuales( $needs_address, $hide ) { return true; } add_filter( ‘woocommerce_order_needs_shipping_address’, ‘enviar_direccion_correo_productos_virtuales’, 10, 2 );
Con esto ya conseguimos añadir dirección de envío productos virtuales Woocommerce y que aparezca la dirección de envío en las notificaciones para productos virtuales.
En conclusión, agregar una dirección de envío para productos virtuales en WooCommerce es un proceso sencillo y rápido que puede mejorar la experiencia de compra para sus clientes. Con estos pasos, puede ofrecer una dirección de envío opcional para sus productos virtuales en cualquier momento.