После отправки формы через Ajax с помощью jQuery и ее сериализации у меня возникают проблемы с получением переменных post с помощью PHP. Вот мой код:
JS (main.js)
$.ajax({
url: WPaAjax.ajaxurl,
type: 'post',
data: {
action: 'send_message',
data: $(this).serialize()
},
success: function(response) {
$('.contact_form').html(response);
}
});
PHP (functions.php)
<code>function load_scripts() {
wp_enqueue_script('jquery');
wp_enqueue_script('main_js', get_stylesheet_directory_uri() . '/dist/scripts/main.js', array('jquery'), true);
wp_localize_script('main_js', 'WPaAjax', array('ajaxurl' => admin_url('admin-ajax.php')));
}
add_action('wp_enqueue_scripts', 'load_scripts');
function send_message_function() {
echo $_POST['form_last_name'];
echo '<br><br>';
echo '<pre>' . print_r($_POST) . '
';
выход;
}
add_action ('wp_ajax_send_message', 'send_message_function');
add_action ('wp_ajax_nopriv_send_message', 'send_message_function');
При отправке формы отдельные переменные записи (например, $_POST['form_last_name']
) пусты.
Если я печатаю переменную $ _POST, я получаю это:
Array ( [action] => send_message [data] => form_last_name=Johnson&form_first_name=David&form_email=djohnson%40hotmail.com&form_subject=&form_telephone=01110259923&form_code_postal=C11+3HR&form_message=test [some_variable] => some_value )
Есть предложения?