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

В WordPress по умолчанию есть базовый набор полей для пользователей: имя, email, роль и т.д. Но часто требуется добавить собственные свойства — например, дополнительные контактные данные, уникальные идентификаторы или пользовательские настройки. Для этого используются пользовательские мета-поля пользователей. В этой статье подробно разберём, как создавать, выводить и сохранять такие свойства через код.

Что такое пользовательские мета-поля в WordPress

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

Каждое мета-поле состоит из ключа (названия) и значения. С помощью функций WordPress мы можем создавать, читать, обновлять и удалять эти данные.

Добавление пользовательских свойств в профиль пользователя

Вывод полей в админке WordPress

Чтобы добавить новые поля в страницу редактирования пользователя, используют хук show_user_profile и edit_user_profile. Ниже пример добавления поля "Телефон" в профиль пользователя:

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

В этом коде создаётся поле с именем мета-ключа wpsyncru_phone. Мы используем префикс wpsyncru_ для предотвращения конфликтов с другими плагинами.

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

Для сохранения введённых данных необходимо обработать их при отправке формы. Используем хуки personal_options_update и edit_user_profile_update:

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

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

Использование пользовательских свойств в шаблонах и плагинах

Данные, сохранённые в мета-полях пользователя, можно вывести на сайте или использовать в логике плагинов. Пример вывода телефона текущего пользователя:

$user_id = get_current_user_id();
$phone = get_user_meta($user_id, 'wpsyncru_phone', true);
echo 'Ваш телефон: ' . esc_html($phone);

Если нужно получить мета-данные другого пользователя, укажите его ID в функции get_user_meta.

Пример: фильтрация пользователей по пользовательскому свойству

Предположим, вы хотите получить всех пользователей с определённым значением свойства "Телефон". Для этого используйте WP_User_Query:

$args = [
    'meta_key' => 'wpsyncru_phone',
    'meta_value' => '+7 999 123-45-67'
];
$user_query = new WP_User_Query($args);
if (!empty($user_query->results)) {
    foreach ($user_query->results as $user) {
        echo 'Пользователь: ' . esc_html($user->display_name) . '<br>';
    }
} else {
    echo 'Пользователи с таким телефоном не найдены';
}

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

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

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

Советы по безопасности и производительности

При работе с пользовательскими мета-полями важно:

  • Всегда валидировать и очищать входящие данные с помощью функций типа sanitize_text_field, sanitize_email и т.п.
  • Проверять права текущего пользователя перед сохранением данных.
  • Не хранить в мета-полях чувствительную информацию в открытом виде.
  • Использовать префиксы в названиях мета-полей, чтобы избежать конфликтов.
  • Избегать ненужных запросов к базе данных, кэшировать часто используемые данные.
Как синхронизировать данные в WordPress при помощи WP-CLI
05.02.2026
Как синхронизировать настройки темы WordPress между сайтами
26.12.2025
Как удалить заблокированные аккаунты WordPress: практическое руководство
10.04.2026
Как синхронизировать пользовательские комментарии WordPress между сайтами
30.12.2025
Как исправить проблему с несинхронизированным статусом заказов WooCommerce между сайтами
16.05.2026