Как сравнить введенные данные с данными в базе 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.

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

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

Войти через центр авторизации
Похожие вопросы