Задать вопрос

Почему только в WordPress приходят старые данные в обработчик формы после повторной отправки формы?

Всем привет. Даже не хватает слов для описания проблемы, но попробую.

Есть страница сайта под управление WordPress - lovefit.abgymnic.info/category/club_curds

На ней выводится цикл записей

<?php if (have_posts()): while (have_posts()): the_post(); ?>
                            <div class="col-md-4 club-cards">
                                <h2><?php the_title(); ?></h2>                                
                                <?php the_post_thumbnail(); ?>
                                <form class="ajaxform" method="post">
                                    <input name="model" class="hidden-jquery" type="hidden" value="<?php the_title(); ?>">
                                    <input data-toggle="modal" data-target="#myModal" type="submit" value="Заказать">
                                </form>
                                <?php the_content(); ?>
                            </div>
                            <?php endwhile; endif; ?>


При нажатии на кнопку заказать открывается модаль и в неё помещается значение скрытого поля вышеупомянутой формы.

Сама форма отправляется скриптом

/*------------------------------- Получение JSON с отправленных данных -----------------------------*/

    $(".ajaxform").submit(function() {
        var form = $(this);
        var error = false;
        if (!error) {
            var data = form.serialize();

            function success(returneData) {
                console.log(returneData);
            }
            $.ajax({
                type: 'POST',
                url: '<?php echo get_template_directory_uri(); ?>/json.php',
                dataType: 'json',
                data: data,
                success: function(data) {
                    var model = data.value;
                    $('.hidden-jquery').val(model);
                }
            });

        }
        return false;
    });


Обработчик формы (он же и даёт ответ в формате JSON для AJAX ответа

if ( isset($_POST['model']) )
	{

		$test = $_POST['model'];
		$json = '{"value": "' . $test	. '"}';

	}

	echo $json;


А вот и сама модаль

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-body">
        <h4>Вы заказываете клубную карту</h4>
        <input class="hidden-jquery hidden-query-style" type="text" value="" disabled="disabled">
        <p>
          Для подтверждения Вашего заказа и уточнения адреса доставки, введите Ваш номер телефона.
        </p>
        <form id="sendMessage" method="post">
          <input class="hidden-jquery" name="model" type="hidden" value="">
          <input id="number" name="number" type="text" placeholder="Ваш номер телефона">
          <input type="submit" value="Заказать клубную карту">
        </form>
      </div>
    </div>
  </div>
</div>


А теперь и сама проблема

Я открываю данный адрес -> выбираю карту и нажимаю заказать -> открывается модаль с подставленной картой -> я закрываю модаль и выбираю другую карту -> открывается модаль с первой картой (которую я уже выбирал)

Причем на обычном PHP лендинге (вот репозиторий если интересно https://github.com/vintkor/magaz-xiaomi/blob/maste...) всё прекрасно работает. Не работает только под WordPress

Помогите пожалуйста. Уже 2 дня убил с этим вопросом.
  • Вопрос задан
  • 170 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Обратите внимание на ответ oxidmod, но кроме этого вы неправильно работаете с формами и ajax в среде WordPress. Начните отсюда:
https://habrahabr.ru/company/dataart/blog/271189/
wp-kama.ru/id_2018/ajax-v-wordpress.html
А еще обратите внимание на вот это:
v2.wp-api.org
Ответ написан
Ваш ответ на вопрос

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

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