Работа с ajax в вп немного отличается.
1. нужно url указать:
url: '/wp-admin/admin-ajax.php',
2. нужно указать action в data:
data:{
action: 'my_function',
form_data: $("#form").serialize()
}
это названии функции которая будет обработчиком.
3. В файле functions.php темы нужно зарегистрировать функцию обработчик (которую указали в js)
add_action('wp_ajax_my_function', 'my_function');
add_action('wp_ajax_nopriv_my_function', 'my_function');
function my_function() {
// здесь обработка данных отправка писем
}
К примеру, что-то похожее делал js выглядел так:
function sendDataEmail(email, problem, id_game){
$.ajax({
type:'POST',
url:'/wp-admin/admin-ajax.php',
data: {
action: 'ajax_send_problem',
email: email,
problem: problem,
id_game: id_game
},
success: function (response) {
console.log(response);
},
error: function () {
alert('AJAX ERROR');
}
});
}
А php так:
add_action('wp_ajax_send_problem', 'ajax_send_problem');
add_action('wp_ajax_nopriv_ajax_send_problem', 'ajax_send_problem');
function ajax_send_problem() {
$result = null;
if(isset($_POST['email']) and isset($_POST['problem']) and $_POST['id_game']){
$email = trim(strip_tags($_POST['email']));
$problem = trim(strip_tags($_POST['problem']));
$id_game = trim(strip_tags($_POST['id_game']));
$title_slot = get_the_title($id_game);
$link_slot = get_the_permalink($id_game);
/*------create email massage----*/
$to = get_option('admin_email');
$subject = "Problem game in slot: ".$title_slot;
if($email){
$email = 'name@emptymail.com';
}
$massage = "<p><b>Slot error:</b> $problem</p>";
$massage .= "<p><b>Slot:</b> <a href='".$link_slot."'>$title_slot</a></p>";
$massage .= "<p><b>Date:</b> ".date('d.m.Y')."</p>";
$headers = "Content-Type: text/html; charset=utf-8; \n\r From: User SlotsSpot <".$email.">" . "\r\n";
$result = wp_mail($to, $subject, $massage, $headers);
if($result){
echo 'send';
}else{
echo 'not send';
}
exit();
}else{
return $result = 'error';
}
}
Далее уже сами, по этому примеру можете переделать и свой код.