Как сделать свойства пользователя в WordPress через пользовательские мета-поля

В WordPress стандартный набор свойств пользователя ограничен базовыми полями, такими как имя, email, роль и т.д. Но часто для проектов требуется добавить свои свойства пользователя — например, телефон, дополнительный адрес, дату рождения, социальные сети и многое другое. Лучший способ это сделать — использовать пользовательские мета-поля (user meta), которые позволяют хранить любые данные, связанные с пользователем.

Что такое пользовательские мета-поля в WordPress и зачем они нужны

Пользовательские мета-поля — это произвольные данные, которые можно связать с конкретным пользователем в базе данных WordPress. Они хранятся в таблице wp_usermeta, что дает гибкость в добавлении новых свойств без изменения структуры базы.

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

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

Как создать и сохранить пользовательские мета-поля с помощью кода

Добавление и сохранение пользовательских мета-полей требует работы с хуками WordPress. Рассмотрим пример, как добавить поле "Телефон" на страницу редактирования пользователя в админке и сохранить его.

Добавление поля в профиль пользователя (админка WordPress)

Для этого используем хук show_user_profile и edit_user_profile для отображения поля, и personal_options_update, edit_user_profile_update для сохранения.

function wpsync_add_phone_field($user) {
    ?>
    <h3>Дополнительные свойства пользователя</h3>
    <table class="form-table">
        <tr>
            <th><label for="phone_number">Телефон</label></th>
            <td>
                <input type="text" name="phone_number" id="phone_number" value="<?php echo esc_attr(get_user_meta($user->ID, 'phone_number', true)); ?>" class="regular-text" />
                <p class="description">Введите номер телефона пользователя.</p>
            </td>
        </tr>
    </table>
    <?php
}
add_action('show_user_profile', 'wpsync_add_phone_field');
add_action('edit_user_profile', 'wpsync_add_phone_field');

Сохранение значения пользовательского поля

function wpsync_save_phone_field($user_id) {
    if (!current_user_can('edit_user', $user_id)) {
        return false;
    }
    if (isset($_POST['phone_number'])) {
        update_user_meta($user_id, 'phone_number', sanitize_text_field($_POST['phone_number']));
    }
}
add_action('personal_options_update', 'wpsync_save_phone_field');
add_action('edit_user_profile_update', 'wpsync_save_phone_field');

Таким образом, вы расширили профиль пользователя новым полем и обеспечили сохранение данных.

Вывод пользовательских мета-полей на сайте и в шаблонах

После того как данные сохранены, их нужно вывести на сайте — например, в профиле пользователя на фронтенде, в шаблонах темы или при формировании писем.

Для получения значения используется функция get_user_meta. Пример вывода телефона текущего пользователя:

$user_id = get_current_user_id();
$phone = get_user_meta($user_id, 'phone_number', true);
echo 'Телефон: ' . esc_html($phone);

Так можно использовать любое пользовательское мета-поле.

Использование плагинов для управления пользовательскими мета-полями

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

  • Clearfy Pro — мощный инструмент оптимизации и управления, в том числе позволяет добавлять пользовательские поля;
  • Advanced Custom Fields (ACF) — популярный плагин для создания произвольных полей, в том числе и для пользователей;
  • User Meta — специализированный плагин для управления пользовательскими мета-полями.

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

Расширение функционала: валидация и безопасность данных пользовательских свойств

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

Также рекомендуем использовать nonce-поля для защиты от CSRF-атак при сохранении данных, особенно если добавляете поля не только в админку, но и на фронтенде.

Пример добавления nonce и проверки

function wpsync_add_phone_field($user) {
    wp_nonce_field('wpsync_save_phone', 'wpsync_phone_nonce');
    // остальной код поля...
}

function wpsync_save_phone_field($user_id) {
    if (!isset($_POST['wpsync_phone_nonce']) || !wp_verify_nonce($_POST['wpsync_phone_nonce'], 'wpsync_save_phone')) {
        return false;
    }
    // проверка прав и сохранение
}

Вывод: расширяем профиль пользователя под свои задачи

Пользовательские мета-поля — это мощный инструмент для гибкого расширения данных пользователей в WordPress. Они позволяют хранить любые дополнительные свойства, легко интегрируются в админку и шаблоны, а также управляются как кодом, так и плагинами.

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

Как удалить заблокированные аккаунты WordPress без риска
20.05.2026
Как отключить автоматические обновления WordPress и плагинов
15.04.2026
WooCommerce: установка и настройка webhook для интеграции с внешними сервисами
31.05.2026
Как синхронизировать пользовательские аватары WordPress между сайтами
21.03.2026
Автоматическая синхронизация оценок и рецензий WooCommerce между сайтами
13.03.2026