Verifique el correo electrónico existente en el pago de WooCommerce usando Ajax

2 minutos de lectura

avatar de usuario
camelote

Estoy tratando de verificar el valor insertado para el campo billing_email en el pago de WooCommerce para saber si existe o no.

Aquí está el código en functions.php

add_action('wp_enqueue_scripts', 'live_validation' );
add_action('wp_ajax_validate_email', 'validate_email_input');
add_action('wp_ajax_nopriv_validate_email', 'validate_email_input');

function live_validation() {
wp_enqueue_script( "validate_email", get_stylesheet_directory_uri() . '/check-email.js', array( 'jquery' ) );
wp_localize_script( "validate_email", "validateEmail", array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );
}

function validate_email_input() {
global $wpdb;
$email = $_POST['billing_email'];
if ( email_exists($email) ) {
    echo 'existed'; 
} else {
    echo 'not exist';
}
exit;
}

Y este es el archivo js

jQuery(document).ready(function($) {
$('input[name=billing_email]').change(function() {

    var input_value = $(this).val();

    $.post( validateEmail.ajaxurl, { action:'validate_email', billing_email:input_value }, function(data) {
        $('.message').html(data);
    });
});
});

formulario HTML

<p class="form-row form-row form-row form-row-first validate-required woocommerce-validated" id="billing_email_field">
<label for="billing_email" class="">Email <abbr class="required" title="required">*</abbr></label>
<input type="text" class="input-text " name="billing_email" id="billing_email" placeholder="Email" value="abc@gmail.com"></p>
<span class="message"></span>

Puedo ver el archivo admin-ajax activado cuando el valor de entrada de billing_email cambió, pero la notificación no se mostró.

Por favor ayuda. Gracias.

  • ¿Podría agregar el código html por favor?

    – JazZ

    20 de febrero de 2017 a las 11:50

  • Agregué el formulario html

    – camelot

    20 de febrero de 2017 a las 11:55

  • Ok, pero no puedo ver el .message elemento. ¿Lo olvidaste?

    – JazZ

    20 de febrero de 2017 a las 11:56


  • Vaya, eliminé ese elemento por accidente y no volví a comprobarlo. Perdón por la pregunta de novato

    – camelot

    20 de febrero de 2017 a las 12:04

  • No hay problema. Me alegro de que hayas resuelto esto.

    – JazZ

    20 de febrero de 2017 a las 12:51

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad