У меня есть форма и проверка электронной почты ajax, которые работают за пределами WordPress. Когда я пытаюсь перейти на WordPress, он не проверяет, существует ли электронное письмо в базе данных.
Это то, что у меня есть в моем файле function.php
add_action('wp_ajax_nopriv_validate_email', 'email_validation');
function email_validation()
{
global $wpdb; // Use the global $wpdb object
`{`
`error_reporting(E_ALL);`
`$email = $_POST['Email'];`
`$emailclean = explode('@', $email);`
`$domain = array_pop($emailclean);`
`$bad_domains = array('gmail.com','hotmail.com');`
`#$link = mysqli_connect("localhost", "root", "","site");`
`$sql = $wpdb->prepare("Select count(*) from" .$wpdb->prefix . "EmailValidation where email ='$email'");`
`$results = $wpdb->get_results($sql, OBJECT);`
`#$query = mysqli_query($link, "Select * from Users where email ='$email'");`
`if(count($results)>0)`
{
#$error=" email exists, please login";
echo " It appears you are already a member, please contact us at for futher assistance. ";
echo "$('#submit').prop('disabled',true);";
}
`elseif (in_array($domain, $bad_domains) ) {`
echo " Please register with your personal email ";
echo "$('#submit').prop('disabled',true);";
`}`
`else`
`{`
echo 'Thank You for becoming a member';
echo "$('#submit').prop('disabled',false);";
`}`
`}`
`}`
Это есть на веб-странице
setTimeout(function(){ callAjax(); }, 3000);
function checkemail() {
jQuery.ajax({
url: "/wp-admin/admin-ajax.php",
data: {'Email='+$("#Email").val(), action: 'email_validation'},
type: "POST",
success:function(data){
setTimeout(function(){
$("#check-email").html(data);
},3000);
},
error:function (){}
});
}
Я понятия не имею, что делаю не так. Будем очень признательны за любую помощь.
Отправка формы по электронной почте
Email
Please provide a valid email address.
Подробнее здесь: https://stackoverflow.com/questions/790 ... e-the-ajax