Обновление статуса пользователя в WordPress
Функция UPDATE_USER_STATUS() была добавлена в версии 3.0.0 WordPress, но с версии 5.3.0 она считается устаревшей и может быть удалена в будущих обновлениях. Вместо нее рекомендуется использовать функцию wp_update_user().
Зачем нужна функция UPDATE_USER_STATUS()
Эта функция предназначена для обновления статуса пользователя в базе данных. Ранее она использовалась для обозначения пользователя как спама или «не спама» в многосайтовом режиме WordPress.
События (хуки) функции
make_spam_user— срабатывает, когда пользователь помечен как спам.make_ham_user— срабатывает, когда пользователь помечен как «не спам».
Возвращаемое значение
Функция возвращает целое число (int). Это значение, которое было передано в функцию изначально.
Использование функции
Функция вызывается следующим образом:
update_user_status( $id, $pref, $value, $deprecated );
Параметры
- $id (int) — Обязательный. ID пользователя, статус которого нужно обновить.
- $pref (string) — Обязательный. Столбец в таблице
wp_users, который нужно обновить (например,user_status,spamилиdeleted). - $value (int) — Обязательный. Новый статус для пользователя.
- $deprecated (null) — Устаревший. Не используется с версии 3.0.2.
Основные примеры
Пример 1: Пометить пользователя как спам
Эта функция работает только в многосайтовом р��жиме.
$user_id = 394;
update_user_status( $user_id, 'spam', 1 );
Пример 2: Пометить пользователя как «не спам»
Этот код не работает на односайтовых установках.
$user_id = 394;
update_user_status( $user_id, 'spam', 0 );
Примечания
- Обратите внимание, что для обновления статуса пользователей следует использовать функцию
wp_update_user(), так какUPDATE_USER_STATUS()устарела. - Глобальная переменная
$wpdb— это объект абстракции базы данных WordPress.
Изменения в функции
- С версия 3.0.0 — Функция была введена.
- С версии 5.3.0 — Функция была объявлена устаревшей, рекомендуется использовать
wp_update_user().
Код функции
function update_user_status( $id, $pref, $value, $deprecated = null ) {
global $wpdb;
_deprecated_function( __FUNCTION__, '5.3.0', 'wp_update_user()' );
if ( null !== $deprecated ) {
_deprecated_argument( __FUNCTION__, '3.0.2' );
}
$wpdb->update( $wpdb->users, array( sanitize_key( $pref ) => $value ), array( 'ID' => $id ) );
$user = new WP_User( $id );
clean_user_cache( $user );
if ( 'spam' === $pref ) {
if ( $value == 1 ) {
/** Этот фильтр документирован в wp-includes/user.php */
do_action( 'make_spam_user', $id );
} else {
/** Этот фильтр документирован в wp-includes/user.php */
do_action( 'make_ham_user', $id );
}
}
return $value;
}
Эта статья будет полезна для начинающих пользователей WordPress, чтобы понять, как обновлять статус пользователей и с какими функциями это связано.