WordPress Hosting

Cómo añadir confirmación de correo electrónico con validación en Divi

El otro día publiqué cómo añadir un campo de confirmación de correo electrónico con validación si usas Contact Form 7, y Enric, con buen criterio, me preguntó que cómo hacer esto mismo con los formularios de contacto de Divi, porque sí, porque los usuarios de Divi lo merecen, y es uno de los temas más utilizados, así que vamos a ello…

Cómo añadir un campo en el que confirmar el correo electrónico de un formulario de Divi

La primera parte de este truco es la mar de sencilla, solo tienes que añadir un nuevo campo de correo electrónico a tu formulario de Divi, no tiene misterios, se añade como cualquier otro campo, lo colocas a continuación del anterior y casi está.

Otra manera sería duplicar o clonar el campo de email ya creado, algo que te valdría perfectamente.

Solo te recomiendo un par de detalles:

  1. Marca para que ambos campos sean obligatorios.
  2. Pon a ambos campos un identificador único, a ser posible en minúsculas y sin cosas raras, por ejemplo: email1 y email2.

formulario contacto divi confirmar correo electronico con validdacion

¡Primera parte conseguida, ya casi lo tienes!

Cómo añadir validación de la confirmación de correo electrónico en el formulario de Divi

Ahora ya tenemos un formulario con dos campos de correo electrónico, y en uno de ellos además hemos sido muy coquetos y le hemos puesto un texto para que quede claro que es para confirmar el correo, pero algo falla: deja enviar los correos aunque el cliente ponga distintos emails.

Eso es porque falta un código que compruebe que las direcciones de correo electrónico introducidas en ambos campos coinciden, que nos avise en caso de error (sería lo ideal) y, por supuesto, que no deje enviar el formulario hasta que no coincidan las dos direcciones de email ¿estamos de acuerdo?

Ea, pues el código que hace todo eso es este bonito JavaScript:

<script type="text/javascript">
  document.addEventListener("DOMContentLoaded", function(){
    var emailFieldID         = 'email1',
    emailVerificationFieldID = 'email2',
    errorMessage             = 'Las direcciones de correo no coinciden.';
  
    var $verificationContainer = document.querySelector('[data-id="' + emailVerificationFieldID + '"]'),
    $messageElement            = document.createElement('span');
    $messageElement.classList.add('emailVerification--error');
    $messageElement.innerHTML  = errorMessage;
  
    var $email         = document.querySelector('[data-original_id="' + emailFieldID + '"]'),
    $emailVerification = document.querySelector('[data-original_id="' + emailVerificationFieldID + '"]');
    $emailVerification.addEventListener('change', verifyEmailMatch);
          
    function verifyEmailMatch(e){
      if( $verificationContainer.contains( $messageElement ) ) {
        $verificationContainer.removeChild( $messageElement );
      }
      if( $email.value !== $emailVerification.value ) {
        $verificationContainer.appendChild( $messageElement );
$emailVerification.value = '';
      } 
    }
  });
</script>

¿A que es muy cuqui?

Pues no lo copies y pegues ya como está, esperaaaaa

Hay unas cosillas que debes modificar para adaptar el código a tu web, a tu formulario, a saber:

    • emailFieldID– ID de Divi del primer campo de correo electrónico.
    • emailVerificationFieldID – ID de Divi del segundo campo de correo electrónico.
    • errorMessage – Mensaje de error que quieres que se muestre bajo el campo de confirmación de email en caso de que no coincidan ambos.

También puedes dejar el código como está y usar los IDs del mismo para tu formulario, valdría perfectamente, si los cambias, por supuesto.

¿Dónde debería pegar este código?

Normalmente te diría que copies y pegues el código en cualquier parte: el tema hijo, un plugin de funciones, la pantalla de integración de códigos de las opciones del mismo Divi, pero en este caso no va a ser así.

Al ser un código que solo afecta a un formulario de contacto, que solo estará en la página en la que lo hayas añadido, lo que te recomiendo en esta ocasión es que añadas un módulo Divi de código justo detrás del módulo de formulario, en la misma fila y sección, y sea ahí donde añadas el código.

codigo js validar campos email confirmacion divi

De este modo el código JavaScript únicamente se cargará en la página en la que está tu formulario, lo que es la situación óptima de cara al rendimiento de la web, porque así no cargas el JavaScript en toda la web, cuando en realidad solo lo necesitas para una página, que suele ser lo habitual en estos casos.

El resultado, por supuesto, es perfecto…  ¿lo dudabas?

formulario divi con campo de confirmacion de email y validación del correo electrónico

Por cierto, por defecto el texto de error no saldrá como en la captura, si lo quieres igualito solo tienes que añadir un poco de CSS adicional, este:

/* Estilos error verificacion email */
.emailVerification--error {
color: red;
font-style: italic;
font-weight: 400;
}

Ya está, espero que te haya servido para tus formularios. El hecho de pedir confirmación de emails es una salvaguarda, a veces importante, para no perder contactos o clientes por errores de tecleo y cosas tontas, fácilmente solucionables con trucos como este ¿verdad?

Resume el artículo con tu IA favorita o compártelo en redes

¿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: 6

¡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

1 comentario en “Cómo añadir confirmación de correo electrónico con validación en Divi”

Los comentarios están cerrados.

Scroll al inicio