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:
- Usuario selecciona su tipo de negocio en el dropdown.
- Se muestra el formulario correspondiente.
- Usuario completa el formulario y envía la solicitud.
- 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_mailtagpara 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:
- Instala y configura Smart Grid-layout.
- Inserta la etiqueta dinámica
[cf7sg-form-<nombre-del-formulario>]en tu plantilla de correo. - 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:
- Añade el código al archivo
functions.phpde tu tema o en un plugin personalizado. - Configura el formulario con un campo dropdown llamado
business-type. - Prueba el formulario para asegurarte de que se envían los correos correctos.
- Añade el código al archivo
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:
- Principiantes: Usar múltiples formularios para cada tipo de negocio.
- Intermedios: Usar un plugin como Smart Grid-layout para manejar etiquetas dinámicas.
- Avanzados: Implementar el filtro
wpcf7_mail_componentspara 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











