Wordpress, Javascript и Php: я помещаю authenticate-user.php в правильную папку? - PullRequest
0 голосов
/ 13 января 2019

Я новичок в разработке PHP и WordPress.
На моей странице WordPress я хочу проверить, присутствует ли aff_id в строке запроса моей страницы как пользователь в моей базе данных WordPress с использованием AJAX.

Ниже приведен код JavaScript, который я разместил на своей странице WP с помощью плагина «Сценарии и стили»:

var affId = '';
affId = GetParameterValues('aff_id'); 
if (affId == undefined || affId == '')
  affId = 'AKotawala';
const xhr = new XMLHttpRequest();
xhr.onload = function () {
  alert(this.responseText);
};
xhr.open("POST", "../wp-includes/authenticate-user.php");
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send("username=" + affId);
function GetParameterValues(param) {  
  var url = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');  
  for (var i = 0; i < url.length; i++) {  
    var urlparam = url[i].split('=');  
    if (urlparam[0] == param) {  
      return urlparam[1];  
    }  
  }  
}

А вот и мой код PHP

аутентифицировать-user.php

<?php  
$username = $_POST['username'];
if (my_username_exists($username))
  echo "Exist";
else
  echo "NotExist";
function my_username_exists($username) {
  global $wpdb;
  $count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(user_login) FROM $wpdb->users WHERE user_login = %s", $username));
  return empty( $count ) || 1 > $count ? false : true;
}
?>

Когда страница загружается, мое окно предупреждения пусто.

Что я делаю не так?

Когда я жестко кодирую переменную $username в моем PHP и запускаю файл как mydomain.com/wp-includes/authenticate-user.php, он возвращает пустую страницу.

Я помещаю authenticate-user.php в нужную папку?
Если да, какой должен быть URL, который я должен передать своей функции AJAX в JS?

1 Ответ

0 голосов
/ 13 января 2019

попробуйте включить это в файл authenticate-user.php и поместите файл в корневой каталог.

require_once(dirname(__FILE__) . '/wp-config.php');

или укажите относительный путь из текущего каталога

require_once(dirname(__FILE__) . '../wp-config.php');
...