Функция delete_user_option() в WordPress удаляет пользовательские опции (метаполя), которые могут быть привязаны к конкретному сайту или к сети сайтов в мультисайтовой установке. Она полезна для работы с опциями, к названиям которых автоматически добавляется префикс таблицы базы данных. Если используется мультисайтовая установка, можно установить опцию как глобальную для всей сети, указав параметр $is_global в true.
delete_user_option( int $user_id, string $option_name, bool $is_global = false ): bool
$user_id(int) — обязательный параметр, ID пользователя, у которого необходимо удалить опцию.$option_name(string) — обязательное название опции, подлежащей удалению.$is_global(bool) — необязательный параметр, указывает, является ли опция глобальной для всей сети (в мультисайтовой установке) или относится только к текущему сайту. По умолчанию —false(опция специфична для текущего сайта).
Возвращаемое значение
Функция возвращает true, если опция была успешно удалена, и false в случае ошибки.
Как работает delete_user_option()
- Если
$is_global = false(по умолчанию), WordPress добавляет префикс базы данных к названию опции, что делает её специфичной для текущего сайта. - Если
$is_global = true, название опции остаётся без изменений, и опция рассматривается как глобальная для всей сети (в мультисайтовой установке).
Примеры использования
- Удаление напоминания о смене пароля у пользователя Чтобы удалить опцию напоминания о смене пароля, можно использовать следующий код:
if ( delete_user_option( 8, 'default_password_nag' ) ) {
echo 'Опция default_password_nag удалена!';
} else {
echo 'Не удалось удалить опцию default_password_nag!';
}
В данном примере опция default_password_nag будет удалена для пользователя с ID 8.
- Удаление пользовательской темы оформления в сети Если у вас есть мультисайтовая установка, можно удалить глобальную пользовательскую тему оформления для всей сети:
$result = delete_user_option( 12, 'custom_theme', true );
if ( $result ) {
echo 'Глобальная опция custom_theme успешно удалена для пользователя!';
} else {
echo 'Не удалось удалить глобальную опцию custom_theme!';
}
Заключение
Функция delete_user_option() — удобный инструмент для работы с пользовательскими настройками на уровне сайта и сети. Она позволяет не только удалять специфичные настройки для одного сайта, но и управлять глобальными опциями в мультисайтовой установке, что упрощает настройку пользовательских предпочтений.