Как сравнить введенные данные с данными в базе Wordpress (ajax)?

Мне нужно при вводе в input проверять есть ли в базе данных введенное значение. Подозреваю что у меня не работает вывод записей через wp_query на странице check_code.php.

<input type="text" id="code">
<div id='Promo_code_status'></div>


$(document).ready(function() {  

    var checking_html = 'Проверка..';  

    $('#code').keyup(function(event){ 
        $('#Promo_code_status').html(checking_html);  
        check_code();  
    });  

});  

function check_code() {  

  var code = $('#code').val();  
	
  $.ajax({
    type: 'POST',
    url: '/wp-content/themes/crete/js/check_code.php',
    data: {code: code},
    success: function(data) {
      $('#Promo_code_status').html(data);
    }
  });
  
}


<?php

//check_code.php

$string = $_POST['code'];

$promo_arr = array();

$code = new WP_Query( array( 'post_type' => 'code', 'posts_per_page' => -1) );

    while ( $code->have_posts() ) : $code->the_post();

        $promo_value = get_field('promo-code');
        array_push($promo_arr, $promo_value);

    endwhile; 
wp_reset_postdata(); 

foreach ($promo_arr as $value) { 

    if($value == $string) {
        echo "Промокод подходит";
    }

} ?>
  • Вопрос задан
  • 313 просмотров
Пригласить эксперта
Ответы на вопрос 1
maxxannik
@maxxannik
Сайты на WordPress + Интернет магазины WooCommerce
Вот это:
url: '/wp-content/themes/crete/js/check_code.php',

Оооочень Плохо. Оба слова с большой буквы.

Вариант рабочий, универсальный, но устареваший - использовать WP AJAX. Можно че попало творить, но правильно.
Вариант новый, модный, гламурный - использовать WP REST API JSON.

А вот как их использовать - зависит от сценария. Из этого кода сложно понять какой сценарий вы пытаетесь проиграть.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
summer Ярославль
от 100 000 до 140 000 ₽
19 апр. 2024, в 17:06
15000 руб./за проект
19 апр. 2024, в 16:53
1000 руб./за проект
19 апр. 2024, в 16:45
5000 руб./за проект