Функция 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- авторизованные пользователи

Другие вопросы по тегам