После переноса верстки на вордпресс форма обратной связи начала глючить
После переноса верстки на вордпресс форма обратной связи начала глючить.А именно,когда нажимаю отправить, раньше выскакивало алерт окно,спасибо отправлено.А сейчас такое же окно только после спасибо html код страницы добавляется.Как это исправить? я так понимаю нужно вставить вордрессовские функции для ajax запросов.
<div class="form-wrap">
<form id="ajax-contact-form" enctype="multipart/form-data" method="post">
<input type="hidden" name="action" value="form_action">
<div class="form-group">
<label for="nameFF"></label>
<input id="nameFF" name="nameFF" type="text" placeholder="Ваше имя" required>
</div>
<div class="form-group">
<label for="contactFF"></label>
<input id="contactFF" name="contactFF" type="email" placeholder="E-mail" required>
</div>
<div class="form-group">
<label for="telFF"></label>
<input id="telFF" name="telFF" type="tel" placeholder="Ваш телефон" required>
</div>
<div class="control-file">
<input id="fileFF" name="fileFF" type="file"/>
</div>
<button class="botton_form" type="submit" id="submitFF">ОТПРАВИТЬ СООБЩЕНИЕ</button>
</form>
<?php
if (isset ($_POST['contactFF'])) {
$to = "[email protected]";
$from = "[email protected]";
$subject = "Заполнена контактная форма на сайте ".$_SERVER['HTTP_REFERER'];
$message = "Имя пользователя: ".$_POST['nameFF']."\nEmail пользователя ".$_POST['contactFF']."\nТелефон пользователя ".$_POST['telFF']."\nСообщение: ".$_POST['projectFF']."\n\nАдрес сайта: ".$_SERVER['HTTP_REFERER'];
$boundary = md5(date('r', time()));
$filesize = '';
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: " . $from . "\r\n";
$headers .= "Reply-To: " . $from . "\r\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$message="
Content-Type: multipart/mixed; boundary=\"$boundary\"
--$boundary
Content-Type: text/plain; charset=\"utf-8\"
Content-Transfer-Encoding: 7bit
$message";
if(is_uploaded_file($_FILES['fileFF']['tmp_name'])) {
$attachment = chunk_split(base64_encode(file_get_contents($_FILES['fileFF']['tmp_name'])));
$filename = $_FILES['fileFF']['name'];
$filetype = $_FILES['fileFF']['type'];
$filesize = $_FILES['fileFF']['size'];
$message.="
--$boundary
Content-Type: \"$filetype\"; name=\"$filename\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"$filename\"
$attachment";
}
$message.="
--$boundary--";
if ($filesize < 10000000) { // проверка на общий размер всех файлов. Многие почтовые сервисы не принимают вложения больше 10 МБ
mail($to, $subject, $message, $headers);
echo $_POST['nameFF'].', Ваше сообщение отправлено, спасибо!';
} else {
echo 'Извините, письмо не отправлено. Размер всех файлов превышает 10 МБ.';
}
}
?>
$(function() {
document.getElementById('ajax-contact-form').addEventListener('submit', function(evt){
var http = new XMLHttpRequest(), f = this;
var th = $(this);
evt.preventDefault();
http.open("POST", "contact.php", true);
http.onreadystatechange = function() {
if (http.readyState == 4 && http.status == 200) {
alert(http.responseText);
if (http.responseText.indexOf(f.nameFF.value) == 0) { // очистить поля формы, если в ответе первым словом будет имя отправителя (nameFF)
th.trigger("reset");
}
}
}
http.onerror = function() {
alert('Ошибка, попробуйте еще раз');
}
http.send(new FormData(f));
}, false);
});
файл contact.php подключил в function.php require get_template_directory() . '/assets/contact.php';
В чем проблема то?Подскажите люди добрые)
Ответы (1 шт):
Автор решения: Valerii Vasiliev
→ Ссылка
Нужно видоизменить код
файл contact.php подключил в function.php require get_template_directory() . '/assets/contact.php';
убрать вообще
в function.php добавить
add_action('wp_ajax_nopriv_contact','sendContact');
add_action('wp_ajax_contact', 'sendContact');
function sendContact() {
require get_template_directory() . '/assets/contact.php';
die();
}
в js код
http.open("POST", "contact.php", true);
заменить
на
http.open("POST", "<?php echo admin_url( 'admin-ajax.php' ); ?>?action=contact", true);
