Ajax url应设置为wp-admin/admin-ajax.php
因为ajax请求应该通过wp-admin/admin-ajax
在wordpress中。如果未定义ajaxurl,则可以通过定义html属性来获得它data-url
像data-url="<?php echo get_admin_url().\'admin-ajax.php\'?>"
.
jQuery(document).ready(function($){
$("#wp-submit").on(\'click\',function(e){
e.preventDefault();
username = $("#userName").val();
password = $("#passWord").val();
ajaxurl = $(this).data(\'url\');
$.ajax({
type: "POST",
url: ajaxurl,
data : {
name : username,
password : password,
action : \'check_user_login\'
},
success: function(response){
if(response ==\'true\') {
$("div#result").css(\'display\', \'inline\', \'important\');
$("div#result").html("Login Successful");
console.log(\'true\');
}else{
$("div#result").css(\'display\', \'inline\', \'important\');
$("div#result").html("Wrong username or password");
}
}
});
});
});
现在将ajax函数创建为
function user_login(){
//do your stuff here
global $wpdb;
$username=$_POST[\'name\'];
$password=$_POST[\'password\'];
$hash = md5($password);
$query = $wpdb->prepare( "SELECT * FROM `wp_users` WHERE `user_email` = %s AND `user_pass` = %s", $username, $hash );
$result = $wpdb->get_results($query);
if (count($result)==1) { echo \'true\';
echo \'<span>Login Successful</span>\'; exit();
} else if(count($result) < 1) {
echo \'false\'; exit(); }
}
现在,ajax函数应该挂接到钩子上
wp_ajax_*
和
wp_ajax_nopriv_*
. 这里,*是您的行动价值,即数据。使其成为
add_action(\'wp_ajax_nopriv_check_user_login\',\'user_login\');
add_action(\'wp_ajax_check_user_login\',\'user_login\');