Обновление статуса пользователя в WordPress: функция и ее использование

Обновление статуса пользователя в 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, чтобы понять, как обновлять статус пользователей и с какими функциями это связано.

Leave a Reply

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