Как получить данные через ajax в вордпресс?

Делаю запрос через ajax, а в ответ получаю главную страницу сайта целиком.
functions.php темы

<?php

add_action('wp_enqueue_scripts', 'add_ajaxurl');

function add_ajaxurl() {
	wp_localize_script('jquery', 'realty_var', array(
		'url' => admin_url('admin-ajax.php'),
		'nonce' => wp_create_nonce('realty_nonce')
	));
}


// Добавление новой недвижимости на сайт через ajax
add_action('wp_ajax_new-realty', 'new_realty_ajax_callback');
add_action('wp_ajax_nopriv_new-realty', 'new_realty_ajax_callback');


function new_realty_ajax_callback() {
	check_ajax_referer( 'realty_nonce', 'nonce_code' );

	echo 'this is answer!';

	wp_die();
}


// javascript для отправки формы новой недвижимости
add_action('wp_footer', 'new_realty_ajax');

function new_realty_ajax() {
	?>
	<script type="text/javascript" >
		jQuery(document).ready(function ($) {

			$("#new_realty_form").submit(function(e) {
				e.preventDefault();

				var data = {
					action: 'new-realty',
					nonce_code: realty_var.nonce
				};

				$.post(realty_var.ajaxurl, data, function(responce) {
					console.log('Responce: ' + responce);
					$('#new_realty_form')[0].reset();
				});
			});
		});
	</script>
	<?php
}


форма

<!-- Ajax форма для добавления недвижимости -->
				<?php if (is_user_logged_in()) : ?>

					<form id="new_realty_form" method="post">
						<div class="form-group">
						    <label for="exampleInputEmail1">Email address</label>
						    <input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter email">
					  </div>
						<input id="realty_btn" type="submit" class="btn btn-primary" name="new_realty_btn">
					</form>

				<?php endif; ?>
  • Вопрос задан
  • 511 просмотров
Пригласить эксперта
Ответы на вопрос 1
alex-1917
@alex-1917
Если ответ помог, отметь решением
Скрипт работий.
Или с realty_var перемудрили - зачем так сложно формировать переменную с ОДНОЗНАЧНЫМ значением для вордпресс?
Или ошибка джиквери у вас на сайте.
И этоconsole.log('Responce: ' + responce); зачем? Вы смотрели что там приходит?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы