Описание get_user_option_{$option}
— Filter
Хук get_user_option_{$option} позволяет изменять значения пользовательских опций перед их возвращением. Он срабатывает при запросе пользовательских данных через функцию get_user_option() и позволяет разработчикам модифицировать возвращаемые данные в зависимости от конкретного параметра
Примеры использования
Пример изменения значения опции ‘admin_color’ для конкретного пользователя:
add_filter('get_user_option_admin_color', function($value, $user_id) {
// Изменяем цвет темы для администраторов
if (user_can($user_id, 'administrator')) {
return 'fresh';
}
return $value;
}, 10, 2);
В этом примере мы изменяем цвет темы для администраторов на ‘fresh’.
Пример добавления кастомной логики для опции ‘show_admin_bar’:
add_filter('get_user_option_show_admin_bar', function($value, $user_id) {
// Отключаем админ-панель для определенного пользователя
if ($user_id == 2) {
return false;
}
return $value;
}, 10, 2);
Здесь мы отключаем админ-панель для пользователя с ID 2.
Пример изменения опции ‘description’ для всех пользователей:
add_filter('get_user_option_description', function($value, $user_id) {
return 'Кастомное описание для всех пользователей';
}, 10, 2);
Этот код заменяет описание для всех пользователей на одно значение.
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить пользовательские опции перед их выводом, особенно если изменения зависят от роли или ID пользователя
– Производительность
Поскольку хук влияет на выборку данных, стоит следить за производительностью, особенно если логика сложная или требует дополнительных запросов к базе данных
– Предупреждения
Обратите внимание, чтобы изменения не нарушали ожидаемое поведение сайта, особенно в случае критически важных опций
Альтернативы
Тип: function
Эта функция позволяет обновлять значения пользовательских опций, но не изменяет их при выборке
Используйте update_user_option, если необходимо записать новые значения в базу данных вместо изменения их на этапе выборки