Функция username_exists() не может быть доступна без входа в WordPress
Я использую следующую функцию в functions.php
проверить, существует ли имя пользователя в БД
function check_username() {
$username = $_POST['user'];
if ( username_exists( $username ) ) {
$return['user_exists'] = true;
}
else {
$return['user_exists'] = false;
}
echo json_encode($return);
die();
}
add_action('wp_ajax_check_username', 'check_username');
Проблема в том, что username_exists()
Функция работает, только если пользователь уже вошел в систему и проверил имя пользователя. Я попытался проверить существующее имя пользователя без входа в систему, и он просто возвращает undefined
для меня.
Я понятия не имею, почему это происходит, и не могу найти документацию по этой проблеме.
У меня вопрос, как я могу позволить пользователю проверить, существует ли пользователь, не входя в систему?
Спасибо
1 ответ
Решение
Попробуй это
function check_username() {
$username = $_POST['user'];
if ( username_exists( $username ) ) {
$return['user_exists'] = true;
}
else {
$return['user_exists'] = false;
}
echo json_encode($return);
die();
}
add_action('wp_ajax_check_username', 'check_username');
add_action( 'wp_ajax_nopriv_check_username', 'check_username' );
wp_ajax_check_username - анонимные / незарегистрированные посетители
wp_ajax_nopriv_check_username- авторизованные пользователи