Validación de email para Contact Form 7

Una forma sencilla de añadir doble validación de email a un formulario de WordPress… igual no es lo más elegante, pero a partir de ello he creado un plugin que lo contiene.

functions.php
<?php

//
//  Hook for double check of email addresses.
//  Taken from: http://stackoverflow.com/questions/6255367/contact-form-7-is-there-a-confirm-e-mail-input-type
//

function register_scripts() {
  if ( !is_admin() ) {
    // include your script
    wp_enqueue_script( 'email-confirm', get_stylesheet_directory_uri() . '/js/email-confirm.js' );
  }
}

add_action( 'wp_enqueue_scripts', 'register_scripts' );
js/email-confirm.js

// First we add a hook to the form submit event
jQuery( document ).ready( function () {
  jQuery('.wpcf7-submit').click(function () {
      // We remove the error to avoid duplicate errors
      jQuery('.error').remove();
      // We create a variable to store our error message
      var errorMsg = jQuery('<span class="error">Your emails do not match.</span>');
      // Then we check our values to see if they match
      // If they do not match we display the error and we do not allow form to submit
      if (jQuery('.email').find('input').val() !== jQuery('.email-confirm').find('input').val()) {
          errorMsg.insertAfter(jQuery('.email-confirm').find('input'));
          return false;
      } else {
          // If they do match we remove the error and we submit the form
          jQuery('.error').remove();
          return true;
      }
  });
});

Puedes minimizar el código javascript para ganar unos cuantos bytes de transferencia.

Podeis verlo en github.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.