• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
  • Acceder
    • Mis cursos
    • Mi Cuenta
    • Acceder
Inicio / Tutoriales / Plugins / Mostrar mensaje según zona de envío en WooCommerce

Mostrar mensaje según zona de envío en WooCommerce

Mostrar mensaje según zona de envío en WooCommerce

[ 6 noviembre 2018 ] [ Actualizado: 18 diciembre 2019 ]
[ Autor: Jhon Marreros Guzmán ][ Plugins - Intermedio] [ ]

mejoras woocommerce

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

A través de WooCommerce puedes definir diferentes costos por Zona de Envío, sin embargo en algunos casos puede ser que quieras mostrar algún mensaje con información adicional cuando el usuario selecciona una Zona de Envío particular.

 

Resultado Final

Al final lo que queremos lograr es mostrar un mensaje cuando se seleccione una determinada zona de envío, similar a lo que se muestra en la siguiente imagen.

Mostrar mensaje adicional al seleccionar una zona de envío

 

Generalidades

En nuestro ejemplo tenemos creadas dos zonas, España y Países Nórdicos, más una por defecto para el resto de localizaciones, para la zona de Países Nórdicos queremos agregar un mensaje para indicar que el envío puede tardar hasta 48h.

Ejemplo zonas: Zona España y Zona Países Nórdicos

 

Mensaje de acuerdo a la zona de envío seleccionada

Puedes insertar el siguiente código en el archivo functions.php de tu child-theme.

En el código anterior:

  • Utilizamos los hooks de WooCommerce: woocommerce_cart_totals_after_shipping y woocommerce_review_order_after_shipping
  • Estos hooks hacen referencia a la función mostrar_mensaje_zona_envio
  • En la variable targeted_zones_names agregamos todos los nombres de la zonas en las cuales queremos mostrar un mensaje, en nuestro ejemplo sólo será la zona ‘Países Nórdicos’
  • Con las siguientes líneas de código obtenemos el nombre de la zona seleccionada por el cliente y la guardamos en la variable current_zone_name
  • En la variable $message definimos el mensaje que se mostrará
  • Finalmente validamos si la zona actual es la zona en la que queremos que se muestre el mensaje, mostraremos código HTML con el mensaje

 

Conclusión

Como has podido ver, puedes agregar un mensaje que se muestre sólo para una zona de envío determinada en WooCommerce, puedes hacer esto de manera simple y sin usar plugins adicionales.

 

¿Aún con dudas?, en el siguiente video se detalla los puntos anteriores.
 

Suscríbete a DecodeCMS:  

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Mostrar mensaje al seleccionar envío Recogida en Local en WooCommerceMostrar mensaje al seleccionar envío Recogida en Local en WooCommerce
  • Formulario de cotización en WooCommerce sin pluginsFormulario de cotización en WooCommerce sin plugins
  • Modificar el precio de un producto por código en WooCommerceModificar el precio de un producto por código en WooCommerce
  • Activar el modo catálogo en WooCommerceActivar el modo catálogo en WooCommerce
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (2 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. Vinchenso

    20 diciembre, 2018

    Se podría hacer lo mismo con un plugin que crea una tabla de envios por peso?? y que según el peso ampliase la descripccion? es decir por cada condicion dentro de la misma zona?

    • Jhon Marreros Guzmán

      20 diciembre, 2018

      Hola, si usas los hooks adecuados si que podría realizarse, pero el código sería otro ya que en este código sólo se compara zonas.

  2. Maryluz

    30 diciembre, 2018

    ¡Te felicito ! Excelente trabajo, muy buena tu aportación.
    Muchas gracias.

  3. Albert

    25 enero, 2019

    Hola buenas, que es lo que habría que cambiar del código para que un mensaje como ese, saliera en zonas que no están configuradas?
    Un saludo.

    • Jhon Marreros Guzmán

      25 enero, 2019

      Hola, supongo que te refieres a la negación de la comparación, en este caso usa !in_array en el código, es decir agregar el signo “!”

      • Albert

        25 enero, 2019

        He probado eso, pero no me funciona, porque me sale el mensaje tanto en zonas configuradas como en las no configuradas. Puede ser que afecte algun plugin instalado?
        He probado a ponerle un precio fijo al envío y el mensaje solo me sale cuando la zona de envío no está configurada (que es lo que quiero), sin embargo, al usar este plugin y configurar el envío según el subtotal del carrito, eso hace que el mensaje salga siempre.

  4. omar

    4 noviembre, 2019

    Hola Jhon, gracias por los artículos están muy buenos y han servido muy bien para no instalar plugin innecesarios.
    Quisiera saber si es posible que salga un mensaje cuando seleccionan “recogida local”.
    Muchas gracias!!!

    • Jhon Marreros Guzmán

      4 noviembre, 2019

      En tu caso es un método de envío, no una zona, espero hacer un artículo proximamente sobre esto.

    • Jhon Marreros Guzmán

      18 diciembre, 2019

      Hola Omar, he creado un artículo para mostrar un mensaje cuando se selecciona el método de envío de recogida en local o cualquier otro método de envío: https://decodecms.com/mostrar-mensaje-al-seleccionar-envio-recogida-en-local-en-woocommerce/

  5. Pancho

    27 noviembre, 2019

    Hola, funciona de maravilla, solo una consulta, ¿como se puede hacer para que salgan distintos mensajes según la zona de envío?. Gracias

    • Jhon Marreros Guzmán

      28 noviembre, 2019

      Hola, tendrías que adicionalmente comprobar el valor del arrray targeted_zones_names[] dentro del if, puedes usar un switch https://www.php.net/manual/es/control-structures.switch.php

  6. omar

    27 abril, 2020

    Hola Jhon, y este mensaje se podría agregar para que salga en el correo de pedido que le llega al cliente ???
    Sería genial!!!
    saludos.

    • Jhon Marreros Guzmán

      28 abril, 2020

      Hola, de momento no he revisado el Hook para esto, pero tomo nota para evaluar complementar o hacer otro artículo sobre eso.

  7. Johan

    8 mayo, 2020

    Hola una pregunta, si lo quiero agregar a la página de finalizar compra que cambiaría?

    • Jhon Marreros Guzmán

      9 mayo, 2020

      Hola, el código incluye dos Hooks, uno de ellos es para la página de finalizar compra, revisa el video, casi al final se explica esto. Saludos.

  8. Enrique

    25 agosto, 2020

    Hola
    Felicidades por el articulo y el código
    Una consulta
    Si quiero poner diferentes mensajes según las diferentes zonas, como debería hacerlo

    Ejemplo:
    Zona Península un mensaje como: “Su envío puede tardar entre 3 y 5 días”
    Zona Canarias un mensaje como “Su envío puede tardar entre 5 y 7 días”
    Zona Baleares un mensaje como “Su envío puede tardar entre 48h y 72h”

    Me puedes orientar con el código?

    Es combinable con la opción de método de envío recogida en local
    Entre las opciones tengo Recogida Local y aquí necesitaría poner un horario

    Gracias y disculpas

    • Jhon Marreros Guzmán

      25 agosto, 2020

      Hola, para lo primero que comentas simplemente sería agregar condicionales, revisa: https://decodecms.com/mostrar-mensaje-segun-zona-de-envio-en-woocommerce/#comment-4416
      Para lo segundo que comentas, podrías igualmente tener condiciones de acuerdo al método de envío, revisa: https://decodecms.com/mostrar-mensaje-al-seleccionar-envio-recogida-en-local-en-woocommerce/
      Saludos.

  9. Enrique

    19 septiembre, 2020

    Hola Jhon
    Gracias por tu respuesta
    En el primer punto sólo he puesto una zona siguiendo tu tutorial
    Lo de agregar condicionales , ya he revisado el articulo y no he visto nada, se me escapa de mis conocimienos , el añadir condicionales, así que las otras dos zonas no las puedo poner.
    El segundo punto ya lo he realizado con exito en Recogida Local.

    Gracias
    Saludos

  10. Elo

    23 noviembre, 2020

    Hola! Esto es un aporte muy atractivo y funcional. Me gustaría saber por favor cómo se puede mostrar este mismo mensaje en la cabecera de wordpress. Graicas un saludo.

    • Jhon Marreros Guzmán

      26 noviembre, 2020

      Hola, tendrías que probar usar otros hook, revisa: https://www.businessbloomer.com/woocommerce-visual-hook-guide-checkout-page/

  11. David

    23 marzo, 2021

    Hola Jhon,

    Genial como siempre!! Me gustaría sacar un mensaje que recuerde al cliente “Quedan ‘. 19,90 – (cantidad total del carrito) .’ € para que el envío sea gratis'” suponiendo que el envío mínimo sea 19,90€ en este caso por ejemplo.

    Sé que hay plugins para esto pero el código creo que es sencillo y nos podríamos ahorrar un plugin. Que sea sencillo no significa que sepa hacerlo jeje, no sé en qué hook ponerlo ni PHP casi, aunque sí me orientas un poco me lanzo a hacerlo 😉

    Gracias

    • Jhon Marreros Guzmán

      25 marzo, 2021

      Hola, en este caso implicaría más código, evaluaré hacer un artículo sobre esto. Saludos.

  12. JORGE

    25 marzo, 2021

    Hola, muchas gracias por tus artículos me han servido un mucho, solo me gustaría saber como puedo insertar un enlace en ese mensaje ejemplo.
    Antes de comprar revisa si tenemos cobertura de despacho aquí. (y que vincule a una pagina x)

    • Jhon Marreros Guzmán

      30 marzo, 2021

      Hola, en la variable $message puedes poner cualquier texto con HTML, en el caso de un enlace revisa la etiqueta HTML anchor: https://www.w3schools.com/tags/tag_a.asp

      Saludos.

      • JORGE

        31 marzo, 2021

        muchas gracias

  13. JORGE

    31 marzo, 2021

    muchas gracias

  14. CRISTIAN MONTESINOS

    27 mayo, 2021

    Hola!

    Justo es lo que necesito pero en mi caso lo que necesito es mostrar un mensaje para cuando alguien hace un pedido y se encuentra fuera de las zonas que tenemos configuradas. Como podría hacerlo?

  15. valeria

    10 junio, 2021

    Hola! eh colcoado el codigo como explicas en el video, y no me funciona. :C

  16. Misha Moro

    22 agosto, 2022

    Hola. Esto esta super bien… La duda que tengo como añadir este texto a los email enviados, cuando selecciono “Envio Completado”. Es posible?¿

    Gracias.

    • Jhon Marreros Guzmán

      22 agosto, 2022

      Hola, tendrías que revisar los hooks de emails para WooCommerce, espero hacer un artículo sobre esto próximamente. Ref: https://avada.io/woocommerce/docs/customize-emails-using-hooks.html

Para escribir código envolver con: <pre class="language-xxx"><code> </code></pre> ,reemplaza las xxx (php, css, html)

*

* Gravatar habilitado

Barra lateral principal

Presentación

Curso Decodifica WordPress

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
¿Quieres agregar código a WordPress? Revisa las diferentes opciones que tienes.Ver más

Jooble
Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

accesibilidad css dashboard editor error funcionalidad herramientas imagen js librería mejoras optimización seguridad social woocommerce

Populares

Añadir una nueva ubicación de menú a un theme WordPress

Formulario de login mejorado sin plugins en WordPress

Subtítulo desde título de la entrada en WordPress

Agregar endpoints a la API REST de WordPress

© logo decode pie
Política de Privacidad | Política de devoluciones
Copyrigth 2023 Todos los derechos reservados