Как вывести данные пользователя в WordPress без плагинов

Зачем выводить данные пользователя без плагинов

В WordPress часто возникает необходимость вывести информацию о текущем пользователе — имя, email, роль и другие метаданные. Многие решают эту задачу с помощью плагинов, однако это приводит к лишним нагрузкам и рискам безопасности. В этой статье мы рассмотрим, как получить и вывести данные пользователя чистым кодом, что позволит сократить количество активных плагинов и повысить производительность сайта.

Кроме того, вывод данных пользователя без плагинов даёт полный контроль над логикой и форматированием, что особенно важно для маркетинговых сайтов, где персонализация контента влияет на конверсию.

Мы разберём основные функции WordPress для работы с пользователями и приведём примеры кода для разных вариантов вывода данных.

Основные функции WordPress для получения данных пользователя

Для начала разберём ключевые функции, которые нам понадобятся:

  • wp_get_current_user() — возвращает объект текущего пользователя, если он авторизован.
  • get_userdata($user_id) — получает объект пользователя по ID.
  • get_user_meta($user_id, $key, $single) — позволяет получить пользовательские метаданные.

Объект пользователя содержит стандартные поля, например: user_login, user_email, display_name, roles и другие.

Теперь рассмотрим, как использовать эти функции на практике.

Вывод информации о текущем пользователе

Самый простой сценарий — показать имя и email текущего авторизованного пользователя. Для этого в шаблоне темы или в функции пишем:

function wpmarketing_get_current_user_info() {
    $current_user = wp_get_current_user();
    if ( $current_user->ID === 0 ) {
        return 'Пользователь не авторизован';
    }
    return 'Привет, ' . esc_html( $current_user->display_name ) . '! Ваш email: ' . esc_html( $current_user->user_email );
}

Выводим результат в нужном месте:

echo wpmarketing_get_current_user_info();

Так мы защитились от ошибки, если пользователь не вошёл в систему.

Получение и вывод произвольных метаданных пользователя

Часто требуется вывести дополнительные сведения, которые не входят в стандартный набор. Например, телефон или должность. В WordPress эти данные обычно хранятся в метаданных пользователя.

Пример получения метаданных:

function wpmarketing_get_user_phone( $user_id ) {
    $phone = get_user_meta( $user_id, 'phone', true );
    if ( ! $phone ) {
        return 'Телефон не указан';
    }
    return esc_html( $phone );
}

Используем для текущего пользователя:

$current_user = wp_get_current_user();
echo 'Телефон: ' . wpmarketing_get_user_phone( $current_user->ID );

Важно: перед выводом всегда экранируйте данные с помощью esc_html() или аналогичных функций безопасности.

Вывод данных пользователя в форме с AJAX без плагинов

Для маркетинговых сайтов часто требуется динамически обновлять информацию о пользователе без перезагрузки страницы. Реализуем простой пример с использованием AJAX и REST API WordPress.

Регистрация REST API эндпоинта

В functions.php добавляем:

add_action( 'rest_api_init', function () {
    register_rest_route( 'wpmarketing/v1', '/user-info', array(
        'methods'  => 'GET',
        'callback' => 'wpmarketing_rest_user_info',
        'permission_callback' => function () {
            return is_user_logged_in();
        },
    ) );
});

function wpmarketing_rest_user_info() {
    $user = wp_get_current_user();
    if ( $user->ID === 0 ) {
        return new WP_Error( 'no_user', 'Пользователь не авторизован', array( 'status' => 403 ) );
    }
    return array(
        'name' => $user->display_name,
        'email' => $user->user_email,
        'phone' => get_user_meta( $user->ID, 'phone', true ),
    );
}

JavaScript для запроса к API

В шаблоне подключаем скрипт и выводим данные:

<div id="user-info">Загрузка данных...</div>

<script>
fetch('/wp-json/wpmarketing/v1/user-info')
  .then(response => {
    if (!response.ok) throw new Error('Ошибка авторизации');
    return response.json();
  })
  .then(data => {
    document.getElementById('user-info').innerHTML =
      `Привет, ${data.name}! Email: ${data.email}, Телефон: ${data.phone || 'не указан'}`;
  })
  .catch(() => {
    document.getElementById('user-info').innerHTML = 'Пользователь не авторизован';
  });
</script>

Вывод роли пользователя и проверка доступа

Иногда важно вывести роль пользователя и на её основе показывать определённый контент. Это полезно для маркетинговых кампаний, где разные роли видят разный контент.

Пример функции для получения роли:

function wpmarketing_get_user_role( $user_id ) {
    $user = get_userdata( $user_id );
    if ( ! $user ) {
        return 'Роль не определена';
    }
    $roles = $user->roles;
    if ( empty( $roles ) ) {
        return 'Роль не назначена';
    }
    return esc_html( ucfirst( $roles[0] ) );
}

Используем для текущего пользователя:

$current_user = wp_get_current_user();
echo 'Ваша роль: ' . wpmarketing_get_user_role( $current_user->ID );

Для условного вывода контента:

if ( in_array( 'subscriber', $current_user->roles ) ) {
    echo '<p>Спасибо, что подписаны на рассылку!</p>';
} elseif ( in_array( 'administrator', $current_user->roles ) ) {
    echo '<p>Вы администратор сайта.</p>';
}

Рекомендации по безопасности при работе с пользовательскими данными

При работе с данными пользователей важно соблюдать основные правила безопасности:

  • Всегда проверяйте, авторизован ли пользователь перед выводом персональной информации.
  • Используйте функции экранирования, такие как esc_html(), esc_attr() и wp_kses_post() для вывода данных.
  • При работе с AJAX и REST API добавляйте проверки прав доступа.
  • Не выводите чувствительные данные (пароли, ключи) даже случайно.
  • Поддерживайте актуальность WordPress и избегайте устаревших функций.

Полезные плагины для расширения функционала работы с пользователями

Хотя мы ориентируемся на кодовые решения без плагинов, иногда разумно использовать специализированные плагины для сложных задач:

  • Clearfy Pro — оптимизация и расширение возможностей работы с пользователями и безопасностью.
  • WPRemark — управление отзывами и комментариями пользователей с расширенным функционалом.

Если нужно быстро добавить кастомные поля для пользователей и вывести их, эти инструменты могут значительно сэкономить время.

Заключение

Вывод данных пользователя в WordPress без плагинов — это не только способ уменьшить нагрузку, но и возможность гибко настроить логику под свои нужды. Используйте встроенные функции WordPress, REST API и JavaScript для создания динамических и персонализированных интерфейсов. Следите за безопасностью и всегда проверяйте права доступа.

Как отключить и удалить Gutenberg в WordPress
11.03.2026
Как удалить зависимые данные от удалённых плагинов в WooCommerce
04.05.2026
Как успешно проверить и исправить ошибки в кастомных полях оформления заказа WooCommerce
01.07.2026
Как использовать хук WooCommerce для обновления метаданных заказа при оформлении
24.05.2026
Автоматическое удаление заказов WooCommerce со статусом «Возвращено»
20.04.2026