Создал разметку формы обратного звонка.
<form class="form" action="<?php bloginfo('template_url') ?>/send.php" method="POST">
<input type="tel" name="tel" value="Phone">
<button class="button form__submit">Send</button>
</form>
В корне темы создал php-файл который служит обработчиком формы, принимая POST-запросы и отправляя их на электронный адрес.
<?php
require($_SERVER["DOCUMENT_ROOT"]."/wp-load.php");
$to = 'flapjalc@gmail.com' // емайл получателя данных из формы
$tema = "Заявка с сайта"; // тема полученного емайла
$message = "Номер телефона: ".$_POST['tel']."";
$headers = 'MIME-Version: 1.0' . "\r\n"; // заголовок соответствует формату плюс символ перевода строки
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; // указывает на тип посылаемого контента
mail($to, $tema, $message, $headers,"-f no-reply@domain.com"); //отправляет получателю на емайл значения переменных\
?>
Посредником в этом всём выступает простенький AJAX-запрос который всё это делает без перезагрузки страницы.
jQuery(function($){
$('.form').submit(function(e) {
e.preventDefault();
var $form = $(this);
$.ajax({
type: $form.attr('method'),
url: $form.attr('action'),
data: $form.serialize()
}).done(function() {
console.log('success');
$form.trigger( 'reset' );
}).fail(function() {
console.log('fail');
});
});
});
Так вот при отправке срабытывает метод fail, и консоль хрома выводит ошибку:
POST https://domain.com/wp-content/themes/custom-theme/send.php 500 (Internal Server Error) | jquery.js?ver=1.12.4-wp:4
При обращении к ссылке на прямую через адресную строку браузера страница отвечает ошибкой 500. После отправки формы, во вкладке Network инструмента Dev Tools файл send.php так же обозначен ошибкой 500. До недавнего времени всё было нормально.