Функция GET_USER_OPTION() в WordPress: описание, примеры, хуки

## Функция GET_USER_OPTION() │ WP 2.0.0

Функция get_user_option() используется для получения пользовательской настройки, которая может быть специфичной для сайта или сети.

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

Функция сначала проверит наличие настройки для конкретного сайта, а затем — для всей сети.

### Используется функция:
- get_userdata()

### Хуки функции
- get_user_option_(option)

### Возвращаемое значение
Смешанное значение. Настройка пользователя в случае успеха, false в случае ошибки.

### Использование

```php
get_user_option( $option, $user, $deprecated );
  • $option (строка) (обязательный) — название настройки пользователя.
  • $user (int) — идентификатор пользователя.
  • $deprecated (строка) — используется для проверки настройки в таблице настроек.

По умолчанию: ''

Примеры

Пример 1

Давайте проверим, имеет ли пользователь возможность использовать панель администрирования на сайте:

$bar = get_user_option( 'show_admin_bar_front', get_current_user_id() );

if ( $bar ) {
    echo 'Панель администратора включена';
} else {
    echo 'Панель администратора отключена';
}

Заметки

  • Глобальная переменная: $wpdb — объект абстракции базы данных WordPress.

Изменения

С версии 2.0.0 — функция была введена.

Код функции GET_USER_OPTION() WP 6.7.2

Файл: wp-includes/user.php

function get_user_option( $option, $user = 0, $deprecated = '' ) {
    global $wpdb;

    if ( ! empty( $deprecated ) ) {
        _deprecated_argument( __FUNCTION__, '3.0.0' );
    }

    if ( empty( $user ) ) {
        $user = get_current_user_id();
    }

    $user = get_userdata( $user );
    if ( ! $user ) {
        return false;
    }

    $prefix = $wpdb->get_blog_prefix();
    if ( $user->has_prop( $prefix . $option ) ) { // Специфично для блога.
        $result = $user->get( $prefix . $option );
    } elseif ( $user->has_prop( $option ) ) { // Специфично для пользователя и кросс-блоговое.
        $result = $user->get( $option );
    } else {
        $result = false;
    }

    /**
     * Фильтрует значение определенной настройки пользователя.
     *
     * Динамическая часть имени хука, $option, относится к названию настройки пользователя.
     *
     * @since 2.5.0
     *
     * @param mixed   $result Значение настройки пользователя.
     * @param string  $option Название получаемой настройки.
     * @param WP_User $user   Объект WP_User пользователя, для которого извлекается настройка.
     */
    return apply_filters( "get_user_option_{$option}", $result, $option, $user );
}

Связанные функции

  • clean_user_cache()
  • current_user_can()
  • delete_user_option()
  • get_current_user_id()
  • get_edit_user_link()
  • get_user_by()
  • get_userdata()
  • get_users()
  • is_user_logged_in()
  • wp_create_user()
  • wp_destroy_other_sessions()
  • wp_get_current_user()
  • wp_insert_user()
  • wp_list_users()
  • wp_send_new_user_notifications()
  • wp_set_current_user()
  • wp_update_user()
  • WP_User()

Функции пользователей:

  • update_user_option()

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *