WordPress как на ладони
wordpress jino

wp_set_current_user() WP 2.0.4

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

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

Передайте $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()

Используется в: wp_get_current_user().
Работает на основе: setup_userdata()
Хуки из функции:
Возвращает

массив данных пользователя - объект 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 WP 4.9

<?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

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

Секс шоп спб

секс шоп спб

www.eroticmir.ru

wp_set_current_user Комментариев нет

Здравствуйте, !

Ваш комментарий