У меня есть несколько контактных форм, использующих один и тот же общий код AJAX:
$(document).ready(function() {
$('#mainMail').submit( function() {
$.ajax({
type: "POST",
url : "<?php echo home_url(); ?>/wp-content/themes/retlehs-roots-f45f4f5/assets/bin/process.php",
data: $(this).serialize(),
success: function() {
$('#enquiryBox #submitSuccess').removeClass('hidden');
setTimeout(function() { $("#enquiryBox #submitSuccess").addClass('hidden'); }, 15000);
},
error: function() {
$('#enquiryBox #submitFail').removeClass('hidden');
setTimeout(function() { $("#enquiryBox #submitFail").addClass('hidden'); }, 15000);
}
});
return false;
});
});
Короче говоря, когда он успешно отправляет форму и отправляет мне электронное письмо (через process.php), #submitSuccess
div ДЕЙСТВИТЕЛЬНО отображается так, как должен. Проблема в том, что при сбое также появляется div (div #submitFail
остается скрытым).
Я предполагаю, что это связано с тем, что сбой публикации ajax произойдет только в том случае, если process.php не будет успешно вызван? Есть ли способ настроить это так, чтобы, если электронное письмо не было отправлено мне через process.php, пользователь получил сообщение об ошибке?
Вот мой код process.php:
<?php
$robotest = $_POST['robotest']; //just testin' for robots
$recipient = "[email protected]"; //recipient
$email = ($_POST['email']); //senders e-mail adress
if((filter_var($email, FILTER_VALIDATE_EMAIL)) && ($robotest == "")) {
$Name = ($_POST['name']); //senders name
$mail_body = "Hello, \r\n \r\n";
$mail_body .= "You have received a new booking with the following details: \r\n\r\n";
$mail_body .= "{$_POST['comments']}; \r\n \r\n";
$mail_body .= "Please respond to the customer within 30 minutes on the following phone number: {$_POST['phone']} \r\n";
$mail_body .= "Warm regards, \r\n";
$mail_body .= "Robot. \r\n";
$subject = "Free Consult Inquiry"; //subject
$header = "From: ". $Name . " <" . $email . ">\r\n"; //optional headerfields
mail($recipient, $subject, $mail_body, $header); //mail command :)
} else {
print "You've entered an invalid email address!";
}
?>
(print "you've entered an invalid email address!"
было моей попыткой сообщения об ошибке, но это тоже не работает...)