使用Ajax检查WooCommerce结帐中的现有电子邮件

时间:2017-02-20 11:43:26

标签: php ajax wordpress woocommerce

我正在尝试检查WooCommerce结帐中的billing_email字段的插入值,以确定它是否存在。

这是functions.php

中的代码
<script
src="https://code.jquery.com/jquery-3.1.1.min.js"
integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
crossorigin="anonymous"></script>
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

这是js文件

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;
}

HTML表单

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);
    });
});
});

我可以看到在billing_email的输入值发生变化时触发了admin-ajax文件,但通知未显示。

请帮忙。感谢。

0 个答案:

没有答案