// подписываемся на хуки
add_action('wp_ajax_[SOME SLUG]', 'my_ajax_form');
add_action('wp_ajax_nopriv_[SOME SLUG]', 'my_ajax_form');
// что такое [SOME SLUG] смотрите ниже
function my_ajax_form(){
// обработка данных, что хотите делаете
$response = '';
if(isset($_POST['something'])){
}
echo json_encode(res);
// после обработки надо "убить" wordpress.
wp_die();
}
// подписываемся на хук формирующий head
add_action('init', 'ajax_url');
$vars = array(
'url' => admin_url('admin-ajax.php'),
);
echo '<script>window.wp_vars =' . json_encode($vars) . '</script>';
$('form').on('submit', function(e){
e.preventDefault();
// формируем тело запроса
var data = {
action: 'SLUG', // -> !!!!! вот этот SLUG и есть тот => SOME SLUG
key1: $('form input').val(),
key2: 'something'
};
// собственно отправляем запрос, например так, $.post, а вообще как хотите, в качестве адреса используете либо прием с глобальной переменной, либо адрес из атрибута action тега form
$.post(wp_vars.url, data, function(res){
// колбек на обработку ответа от сервера
alert(res.success);
}, 'json');
});
add_action('wp_ajax_SLUG', 'my_ajax_form');
add_action('wp_ajax_nopriv_SLUG', 'my_ajax_form');