wp_get_current_user() WP 2.0.3

Отримує дані про поточного авторизованого користувача (об’єкт WP_User). Встановлює користувача, якщо не встановлено.

Встановлює поточного користувача, при першому виклик функції, далі результат запам’ятовується в глобальну змінну $current_user. Якщо користувач не авторизований, то встановлюється порожній користувач wp_set_current_user(0) .

Функцію можна використовувати з події plugins_loaded . Якщо викликати її раніше, отримаємо fatal error.

Поверне 0, якщо використовується у неавторизованому REST запиті. Один із способів авторизувати REST запит – це вказати код nonce. Детальніше про авторизацію в REST .

Якщо потрібно викликати функцію до події plugins_loaded , то потрібно попередньо підключити залежності. Проте робити це потрібно з повним розумінням того, як працює авторизація.

// Залежно
wp_cookie_constants();
require ABSPATH. WPINC. '/pluggable.php';

$cuser = wp_get_current_user(); //> WP_User object

Використовуйте get_current_user_id() , коли потрібно отримати ID користувача.

$current_user_id = get_current_user_id();
$current_user = wp_get_current_user();

ID поточного користувача визначається функціям:

Це init .

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

1 раз – 0.00001 сек
(швидкість світла) | 50000 разів – 0.03 сек
(швидкість світла)

Хуків немає.

Повертає

WP_User. Об’єкт WP_User.

WP_User Object
(
	[data] => stdClass Object
		(
			[ID] => 1
			[user_login] => alex
			[user_pass] => $P$B/NlqweHhtrD6HthgjF5UYOMdT77.x0
			[user_nicename] => alex-1
			[user_email] => [email protected]
			[user_url] =>
			[user_registered] => 2010-03-26 09:27:40
			[user_activation_key] => 1987530484:$P$ByO33dFHn3aWu.Pe4Uw.MUhGGT59zc1
			[user_status] => 1646545990
			[display_name] => Alex
		)

	[ID] => 1
	[caps] => Array
		(
			[administrator] => 1
		)

	[cap_key] => wp_capabilities
	[roles] => Array
		(
			[0] => administrator
		)

	[allcaps] => Array
		(
			[switch_themes] => 1
			[edit_themes] => 1
			[activate_plugins] => 1
			[edit_plugins] => 1
			[edit_users] => 1
			[edit_files] => 1
			[manage_options] => 1
			[moderate_comments] => 1
			[manage_categories] => 1
			[manage_links] => 1
			[upload_files] => 1
			[import] => 1
			[unfiltered_html] => 1
			[edit_posts] => 1
			[edit_others_posts] => 1
			[edit_published_posts] => 1
			[publish_posts] => 1
			[edit_pages] => 1
			[read] => 1
			[level_10] => 1
			[level_9] => 1
			[level_8] => 1
			[level_7] => 1
			[level_6] => 1
			[level_5] => 1
			[level_4] => 1
			[level_3] => 1
			[level_2] => 1
			[level_1] => 1
			[level_0] => 1
			[edit_others_pages] => 1
			[edit_published_pages] => 1
			[publish_pages] => 1
			[delete_pages] => 1
			[delete_others_pages] => 1
			[delete_published_pages] => 1
			[delete_posts] => 1
			[delete_others_posts] => 1
			[delete_published_posts] => 1
			[delete_private_posts] => 1
			[edit_private_posts] => 1
			[read_private_posts] => 1
			[delete_private_pages] => 1
			[edit_private_pages] => 1
			[read_private_pages] => 1
			[delete_users] => 1
			[create_users] => 1
			[unfiltered_upload] => 1
			[edit_dashboard] => 1
			[update_plugins] => 1
			[delete_plugins] => 1
			[install_plugins] => 1
			[update_themes] => 1
			[install_themes] => 1
			[manage_downloads] => 1
			[manage_database] => 1
			[democracy_admin] => 1
			[update_core] => 1
			[list_users] => 1
			[remove_users] => 1
			[promote_users] => 1
			[edit_theme_options] => 1
			[delete_themes] => 1
			[export] => 1
			[edit_artic] => 1
			[read_artic] => 1
			[delete_artic] => 1
			[edit_artics] => 1
			[edit_others_artics] => 1
			[publish_artics] => 1
			[read_private_artics] => 1
			[delete_artics] => 1
			[delete_private_artics] => 1
			[delete_published_artics] => 1
			[delete_others_artics] => 1
			[edit_private_artics] => 1
			[edit_published_artics] => 1
			[manage_woocommerce] => 1
			[view_woocommerce_reports] => 1
			[edit_product] => 1
			[read_product] => 1
			[delete_product] => 1
			[edit_products] => 1
			[edit_others_products] => 1
			[publish_products] => 1
			[read_private_products] => 1
			[delete_products] => 1
			[delete_private_products] => 1
			[delete_published_products] => 1
			[delete_others_products] => 1
			[edit_private_products] => 1
			[edit_published_products] => 1
			[manage_product_terms] => 1
			[edit_product_terms] => 1
			[delete_product_terms] => 1
			[assign_product_terms] => 1
			[edit_shop_order] => 1
			[read_shop_order] => 1
			[delete_shop_order] => 1
			[edit_shop_orders] => 1
			[edit_others_shop_orders] => 1
			[publish_shop_orders] => 1
			[read_private_shop_orders] => 1
			[delete_shop_orders] => 1
			[delete_private_shop_orders] => 1
			[delete_published_shop_orders] => 1
			[delete_others_shop_orders] => 1
			[edit_private_shop_orders] => 1
			[edit_published_shop_orders] => 1
			[manage_shop_order_terms] => 1
			[edit_shop_order_terms] => 1
			[delete_shop_order_terms] => 1
			[assign_shop_order_terms] => 1
			[edit_shop_coupon] => 1
			[read_shop_coupon] => 1
			[delete_shop_coupon] => 1
			[edit_shop_coupons] => 1
			[edit_others_shop_coupons] => 1
			[publish_shop_coupons] => 1
			[read_private_shop_coupons] => 1
			[delete_shop_coupons] => 1
			[delete_private_shop_coupons] => 1
			[delete_published_shop_coupons] => 1
			[delete_others_shop_coupons] => 1
			[edit_private_shop_coupons] => 1
			[edit_published_shop_coupons] => 1
			[manage_shop_coupon_terms] => 1
			[edit_shop_coupon_terms] => 1
			[delete_shop_coupon_terms] => 1
			[assign_shop_coupon_terms] => 1
			[edit_shop_webhook] => 1
			[read_shop_webhook] => 1
			[delete_shop_webhook] => 1
			[edit_shop_webhooks] => 1
			[edit_others_shop_webhooks] => 1
			[publish_shop_webhooks] => 1
			[read_private_shop_webhooks] => 1
			[delete_shop_webhooks] => 1
			[delete_private_shop_webhooks] => 1
			[delete_published_shop_webhooks] => 1
			[delete_others_shop_webhooks] => 1
			[edit_private_shop_webhooks] => 1
			[edit_published_shop_webhooks] => 1
			[manage_shop_webhook_terms] => 1
			[edit_shop_webhook_terms] => 1
			[delete_shop_webhook_terms] => 1
			[assign_shop_webhook_terms] => 1
			[ure_edit_roles] => 1
			[ure_create_roles] => 1
			[ure_delete_roles] => 1
			[ure_create_capabilities] => 1
			[ure_delete_capabilities] => 1
			[ure_manage_options] => 1
			[ure_reset_roles] => 1
			[edit_blocks] => 1
			[edit_others_blocks] => 1
			[publish_blocks] => 1
			[read_private_blocks] => 1
			[read_blocks] => 1
			[delete_blocks] => 1
			[delete_private_blocks] => 1
			[delete_published_blocks] => 1
			[delete_others_blocks] => 1
			[edit_private_blocks] => 1
			[edit_published_blocks] => 1
			[create_blocks] => 1
			[administrator] => 1
		)

	[filter] =>
	[site_id:WP_User:private] => 1
)

Якщо користувач не авторизовано, поверне порожній об’єкт! Тому НЕ МОЖНА перевіряти чи авторизований користувач через цю функцію:

if( wp_get_current_user() ){
	echo 'цей ​​рядок буде виводитися завжди!';
}

// Потрібно так:
if( wp_get_current_user()->exists() ){
	echo 'Авторизовано!';
}

// або так:
if( is_user_logged_in() ){
	echo 'Авторизовано!';
}

Використання

wp_get_current_user();

Приклади

1

#1 Отримаємо дані поточного користувача

Виведемо на екран різні дані про поточного авторизованого користувача:

$current_user = wp_get_current_user();

echo 'Username:'. $current_user->user_login . '<br />';
echo 'email:'. $current_user->user_email . '<br />';
echo 'first name:' . $current_user->user_firstname . '<br />';
echo 'last name: '. $current_user->user_lastname . '<br />';
echo 'Ім'я, що відображається:' . $current_user->display_name . '<br />';
echo 'ID:'. $current_user->ID . '<br />';
0

#2 Перевіримо, чи авторизований користувач на сайті

Перевіримо чи авторизований (залогінен) користувач. Якщо користувача не існує, його ID дорівнюватиме 0:

$current_user = wp_get_current_user();
if( $current_user->exists() ){
	// Авторизований.
}
else {
	// Не авторизовано.
}

Але краще використовувати для цього is_user_logged_in() .

нотатки

список змін

З версії 2.0.3Введено.

Код wp_get_current_user() WP 6.0.2

function wp_get_current_user() {
	return _wp_get_current_user();
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *