¿Problemas con tu sitio web?

4,7/5 · Opiniones Google reviews

Enviar diferentes plantillas de correo según las selecciones de un campo en Contact Form 7

Contact Form 7 (CF7) es una de las herramientas más utilizadas para la creación de formularios en WordPress, gracias a su flexibilidad y facilidad de uso. En este artículo, abordaremos cómo enviar diferentes plantillas de correo electrónico dependiendo de la selección en un campo desplegable (dropdown). Este caso es ideal para situaciones como el envío de catálogos específicos según el tipo de negocio seleccionado por el cliente.

El desafío

El objetivo es crear un formulario que permita al usuario ingresar sus datos, seleccionar su tipo de negocio en un campo dropdown, y recibir un correo personalizado con un enlace para descargar el catálogo correspondiente. Aunque CF7 no ofrece esta funcionalidad de manera nativa, es posible lograrlo mediante tres métodos. A continuación, exploramos cada uno de ellos.


1. Múltiples formularios para cada tipo de negocio

Si no eres programador o buscas una solución simple, esta opción es para ti.

  • Cómo funciona: Crea un formulario diferente para cada tipo de negocio, asegurándote de que cada uno tenga una plantilla de correo personalizada. Luego, todos los formularios se colocan en la misma página, pero se ocultan inicialmente.
  • Interacción dinámica: Con un poco de JavaScript, puedes hacer que al seleccionar una opción en el dropdown, se muestre el formulario correspondiente y se oculten los demás.
  • Desventajas: El principal inconveniente es que tendrás que mantener varios formularios, lo cual puede ser tedioso si necesitas hacer cambios en todos ellos.

Ejemplo de flujo:

  1. Usuario selecciona su tipo de negocio en el dropdown.
  2. Se muestra el formulario correspondiente.
  3. Usuario completa el formulario y envía la solicitud.
  4. El correo se envía utilizando la plantilla de correo configurada para ese formulario específico.

2. Usar extensiones de CF7 con filtros de etiquetas de correo

Este método es más avanzado y utiliza un plugin como Smart Grid-layout para manejar etiquetas de correo dinámicas.

  • Cómo funciona: Este plugin permite usar un filtro llamado cf7sg_mailtag para programar el cuerpo del correo dinámicamente en función de los valores enviados por el usuario.
  • Ventajas: Solo necesitas un formulario, y el cuerpo del correo puede adaptarse en tiempo real.
  • Código de ejemplo:
add_filter( 'cf7sg_mailtag_cf7sg-my-custom-form', 'filter_cf7_mailtag_cf7sg_form_my_custom_form', 10, 3);
function filter_cf7_mailtag_cf7sg_form_my_custom_form($tag_replace, $submitted, $cf7_key){
  if('my-custom-form' == $cf7_key ){
    switch($submitted['business-type']){
      case 'type1':
        $body = "Hola, aquí tienes tu catálogo para el tipo de negocio 1.";
        break;
      case 'type2':
        $body = "Hola, aquí tienes tu catálogo para el tipo de negocio 2.";
        break;
      default:
        $body = "Hola, selecciona un tipo de negocio válido.";
        break;
    }
    return $body;
  }
  return $tag_replace;
}
  • Pasos:
    1. Instala y configura Smart Grid-layout.
    2. Inserta la etiqueta dinámica [cf7sg-form-<nombre-del-formulario>] en tu plantilla de correo.
    3. Usa el código anterior para personalizar el cuerpo del correo en función del valor seleccionado en el dropdown.

3. Filtro wpcf7_mail_components para máxima flexibilidad

Si buscas una solución completamente programable, CF7 ofrece el hook wpcf7_mail_components, que te permite modificar todos los componentes del correo antes de enviarlo.

  • Cómo funciona: Este filtro permite modificar elementos como el asunto, el remitente, el cuerpo del correo y los archivos adjuntos en función de los datos enviados.
  • Ventajas: Es la solución más flexible y no requiere plugins adicionales.
  • Código de ejemplo:
add_filter('wpcf7_mail_components', 'filter_cf7_mail_components', 10, 3);
function filter_cf7_mail_components($components, $form_obj, $wpcf7_mail_object){
  // Obtén los datos enviados
  $submitted_data = $form_obj->posted_data;

  // Modifica el cuerpo del correo según el tipo de negocio
  if(isset($submitted_data['business-type'])){
    switch($submitted_data['business-type']){
      case 'type1':
        $components['body'] = "Hola, aquí tienes el catálogo para el tipo de negocio 1.";
        break;
      case 'type2':
        $components['body'] = "Hola, aquí tienes el catálogo para el tipo de negocio 2.";
        break;
      default:
        $components['body'] = "Tipo de negocio desconocido.";
        break;
    }
  }

  return $components;
}
  • Pasos:
    1. Añade el código al archivo functions.php de tu tema o en un plugin personalizado.
    2. Configura el formulario con un campo dropdown llamado business-type.
    3. Prueba el formulario para asegurarte de que se envían los correos correctos.

Conclusión

Dependiendo de tu nivel de experiencia técnica y necesidades específicas, cualquiera de estas tres soluciones puede ayudarte a lograr el objetivo:

  1. Principiantes: Usar múltiples formularios para cada tipo de negocio.
  2. Intermedios: Usar un plugin como Smart Grid-layout para manejar etiquetas dinámicas.
  3. Avanzados: Implementar el filtro wpcf7_mail_components para máxima personalización.

Con estas estrategias, puedes enviar correos personalizados basados en selecciones de un dropdown, mejorando la experiencia del usuario y optimizando tu flujo de trabajo. ¡Prueba la que mejor se adapte a tus necesidades y comparte tu experiencia!

Php Ninja - Expertos en WordPress y Prestashop

Somos un equipo de programadores web expertos en PHP, WordPress y Prestashop, con más de 20 años de experiencia, 100% especializados en mantenimiento y arreglos, lo que nos permite ofrecer un servicio muy completo y único de mantenimiento y reparación de páginas web. Conoce más sobre nosotros

Stack técnico

Programadores con más de 20 años de experiencia

Especialistas en WordPress, PrestaShop, PHP, JavaScript y operación de infraestructura web.

PHP Logo
Javascript Logo
Apache Logo
WordPress Logo
Prestashop Logo
Linux Logo
Cloudflare Logo
Git Logo
Docker Logo
Ansible Logo
MYSQL Logo
Codeception Logo

HTML · PHP · JS · CSS · MYSQL · WORDPRESS · PRESTASHOP · LINUX · CLOUDFLARE · GIT · GOOGLE SERVICES · ANSIBLE · CODECEPTION

Opiniones

¿Qué han dicho nuestros clientes?

  • Beto did a great job with optimizing our WordPress website! It was very slow in the beginning, but thanks to his efforts now runs really fast and smoothly. Outstanding professional, great communication & superb results! We’ll definitely hire him again for future projects. Thanks Beto!

    Verena Nyc Avatar Verena Nyc
    19/11/2025

    Fast, effective and humane!

    Robert Hunter Avatar Robert Hunter
    01/01/1970

    Our website was blocked and we contacted Ninja who solved the problem in a very short time. We trust that they will always remain there and we will assign them more work, this time we hope without emergencies.

    Susan Wolf Avatar Susan Wolf
    22/04/2025
  • Very happy with the service, whenever I have a problem they solve it quickly and efficiently! And the treatment is excellent. A hug!

    Sara Teller Avatar Sara Teller
    05/10/2025

    I had a complicated problem with my website and I am very happy with the result, since they gave me a pack of hours, and it was solved quickly and at a very reasonable price. Since they had a little time left, they still fixed a couple of things that needed to be touched up. I would repeat with them without hesitation. Super professionals in my point of view.

    Natural Channel Avatar Natural Channel
    24/10/2025

    I had a problem with the WordPress website blocking access. I contacted them and they very quickly gave me a quote, with an immediate execution time. I couldn't be happier with the choice, especially when I had no direct references from the company. The solution was clean, professional and without data loss.

    Daniel Martin Avatar Daniel Martin
    22/04/2025
  • Very professional, totally recommended.

    joaquin sariñena Avatar joaquin sariñena
    01/03/2025

    Nuestra web se nos bloqueó y contactamos con Ninja que nos resolvió el problema en muy poco tiempo. Confiamos que sigan siempre ahí y les encargaremos mas trabajos, esta vez esperamos que sin urgencias.

    Susan Wolf Avatar Susan Wolf
    22/04/2025

    Very positive experience due to professionalism, knowledge and relationship with the client.

    Francisco Bargiela Avatar Francisco Bargiela
    21/03/2025
  • The company made a very good work for me. Very professional team, rapidly done, and we had a good feedback during the duties. The team has a high expertise with php. I do recommend them.

    Vicente Celada Gonzalez Avatar Vicente Celada Gonzalez
    19/06/2025
Imagina no tener más problemas con tu página web

Te respondemos rápidamente

  Recibir Asistencia
icono whatsapp programador web