Задача простая, сделать отправку формы на Аякс. По моему я аякс не правильно прописал, так как при отправки формі страница перезагружается, а не должна.
Форма выглядит так
<form action="" id="my-form" method="POST" >
<input type="text" name="name" required>
<input type="tel" name="phone" required>
<button typr="submit">Получить </button>
</form>
AJAX выглядит так:
<script type="text/javascript" >
jQuery(document).ready(function($) {
$('#my-form').submit(function(){
data = {
action: 'myaction',
link: $('#my-form').serialize(),
};
var ajaxurl = "/wp-admin/admin-ajax.php";
$.ajax({
type: 'POST',
url: ajaxurl,
data: data,
success: function(response) {
alert('Отправленно!')
}
});
return false;
});
});
</script>
А вот обработчик на пхп
add_action('wp_ajax_myaction', 'my_action_callback');
add_action('wp_ajax_nopriv_myaction', 'my_action_callback');
function my_action_callback(){
$name= trim($_POST["name"]);
$phone = trim($_POST["phone"]);
$page_title = "Новая заявка с сайта";
$message = "Телефон: $phone \nИмя: $name";
mail('mail@yandex.ru', $page_title, $message, "Content-type: text/plain; charset=\"utf-8\"\n From: mail@yandex.ru" );
wp_die();
}