Wp_set_current_user() — Изменяет текущего пользователя по ID или имени. Функция не авторизует пользователя а меняет глобальную переменную $current_user и связанные с ней переменные. Функция WordPress.

Опубликовано: 01.09.2018

видео wp_set_current_user() — Изменяет текущего пользователя по ID или имени. Функция не авторизует пользователя а меняет глобальную переменную $current_user и связанные с ней переменные. Функция WordPress.

Fix Wordpress Fatal Error Call to undefined function rest_url() in ../wp-content/plugins/td-composer

Изменяет текущего пользователя по ID или имени. Функция не авторизует пользователя а меняет глобальную переменную $current_user и связанные с ней переменные.


Step by step to create WordPress Custom Login Page Without Using a Plugin – Right Way in easy steps

Эта функция может быть переопределена плагинами.

Передайте $id значение null, если ID пользователя неизвестен, но известно его имя (name).

Некоторые функции в WordPress основаны на текущем пользователе не работают, если пользователь не авторизован. wp_set_current_user() дает возможность изменять и совершать какие либо действия для пользователей, которые не авторизованы.

Устанавливает глобальные переменные:

$user_ID = (int) $user->ID; $user_level = (int) $user->user_level; $userdata = $user; $user_login = $user->user_login; $user_email = $user->user_email; $user_url = $user->user_url; $user_identity = $user->display_name;

См. setup_userdata()

Это pluggable функция — т.е. её можно заменить из плагина. Это значит, что она будет работать (подключается) только после подключения всех плагинов, а до этого момента функция еще не определена... Поэтому нельзя вызывать эту и зависящие от неё функции прямо из кода плагина. Их нужно вызывать через хук plugins_loaded или позднее, например хук init .

Замена функции (переопределение) — в плагине можно создать функцию с таким же названием, тогда она заменит текущую функцию.

Хуки из функции:
Возвращает

массив данных пользователя - объект WP_User.

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

<?php wp_set_current_user( $id, $name ); ?> $id(число) (обязательный) ID пользователя. Можно указать null, если ID пользователя неизвестен. $name(строка) Имя пользователя username (login).

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

Примеры

#1 Установим текущего пользователя и авторизуем его

Этот пример установит текущего пользователя и авторизует его:

$user_id = 12345; $user = get_user_by( 'id', $user_id ); if( $user ) { wp_set_current_user( $user_id, $user->user_login ); wp_set_auth_cookie( $user_id ); do_action( 'wp_login', $user->user_login ); }

#2 Переустановка текущего пользователя

Допустим мы обновляем данные в профиле пользователя и после обновления данных, нам нужно переустановить уже установленную глобальную переменную $Current_user и все другие глобальные переменные связанные с текущими пользователем.

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

global $current_user; $cuser_id = $current_user->ID; // запомним ID unset( $current_user ); // удалим, чтобы wp_set_current_user() переустановила все заново wp_set_current_user( $cuser_id ); // переустанавливаем

Код wp set current user : wp-includes/pluggable.php VER 4.9.6

<?php function wp_set_current_user($id, $name = '') { global $current_user; // If `$id` matches the user who's already current, there's nothing to do. if ( isset( $current_user ) && ( $current_user instanceof WP_User ) && ( $id == $current_user->ID ) && ( null !== $id ) ) { return $current_user; } $current_user = new WP_User( $id, $name ); setup_userdata( $current_user->ID ); /** * Fires after the current user is set. * * @since 2.0.1 */ do_action( 'set_current_user' ); return $current_user; }

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

Из метки: Пользователи (_user)

Еще из раздела: Остальное

IRC (Internet Relay Chat)
rss