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

Почему ajax запрос ничего не отдает (WordPress)?

Только начал разбираться с ajax, пытаюсь реализовать такой простенький запрос.
Из input берет число и по нажатии на кнопку записывает его в бд.

<label class="order-enter-amount-label">Enter Amount</label>
<input type="text" id="order-enter-buy" name="order-enter-amount-buy-input" placeholder="________________" style="background-color: #1E222D;  color: #8bcfce;" autocomplete="off">

<a id="order-buy-action-link" name="order-buy-action" href="#">


Ajax запрос
$(document).ready ( function(){
$('#order-buy-action-link').click( function () {
let order_amount_buy = $('input[name=order-enter-amount-buy-input]').val();
					//var my_user_id = '<? $my_user ?>';
				   // отправляем AJAX запрос
				   $.ajax(
					  {
						 type: "POST",
						 url: "<?php bloginfo('template_url'); ?>/profile-sys/php/order-buy.php",
						 data: {
							 "order_amount_buy": order_amount_buy
							 //my_user_id: my_user_id
							   },
						 success: function(response) 
						 {
							if(response == "OK")
							{
							   alert("Запрос на покупку" + order_amount_buy + "добавлен!");
							   location.reload();
							}
							else
							alert("Ошибка в запросе! Сервер вернул вот что: " + response);
						 }
					  }
					  );
				});


Запрос в бд
<?php
	global $wpdb;
	global $my_user;
    $order_amount_buy = $_POST['order_amount_buy'];

    if($wpdb->query("INSERT INTO `wp_users_deals`(`user_login`, `amount`) VALUES ('$my_user','$order_amount_buy')"))
      echo "OK";
    else
      echo "ОШИБКА В ЗАПРОСЕ!";
    ?>


Знаю, что наверное где-то наворотил бред, но несколько раз проверял по мануалам.
Не выдает даже ошибку, т.е просто холостой клик по кнопке, 3 строчки и те не работают, не понимаю.
Спецы тыкните носом.
  • Вопрос задан
  • 92 просмотра
Подписаться 1 Простой 6 комментариев
Решения вопроса 1
OtshelnikFm
@OtshelnikFm Куратор тега WordPress
Обо мне расскажет yawncato.com
Почему бы все это не оформить в плагин - тогда вся система вордпресс уже будет подгружена и вы будете иметь доступ к wpdb и прочим глобальным переменным/классам и их методам.

Вордпресс в своем хендбуке не советует использовать SHORTINIT

и читайте верные руководства по разработке под вордпресс, а не шлак найденный на просторах интернета
Хорошие источники https://wp-kama.ru/id_2018/ajax-v-wordpress.html
и https://developer.wordpress.org/
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Cresis
@Cresis Автор вопроса
Так, понял, что запрос в бд это полнейший бред

<?php
  global $wpdb;
  global $my_user;
    $order_amount_buy = $_POST['order_amount_buy'];

    if($wpdb->query("INSERT INTO `wp_users_deals`(`user_login`, `amount`) VALUES ('$my_user','$order_amount_buy')"))
      echo "OK";
    else
      echo "ОШИБКА В ЗАПРОСЕ!";
    ?>


Глобальные переменные, которые здесь объявлены, вероятно вообще ничего не значат.
Тогда вопрос, как в WP подключить в кастомный скрипт глобальные переменные?

UPD:
Вот так все работает:

<?php
	//define( 'WP_USE_THEMES', false );
	define( 'SHORTINIT', true );
	require_once $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php';
	
	global $wpdb;
		
	$order_amount_buy = $_POST['order_amount_buy'];
	$my_user_id = $_POST['my_user_id'];


    if($wpdb->query("INSERT INTO `wp_users_deals`(`user_login`, `amount`) VALUES ('$my_user_id','$order_amount_buy')"))
      echo "OK";
    else
      echo "Ошибка в запросе";
    
    ?>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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