How to get current user ID in WordPress

In this article, we will explore the different ways to get the ID of the currently logged in user in WordPress. The WordPress current user ID refers to the numerical identifier assigned to the authenticated user currently interacting with the WordPress system. This unique numerical value serves as a reference point within the database, allowing access to specific user-related data and privileges associated with the user’s role and permissions within the WordPress site.

Using get_current_user_id() to get the current WordPress user ID

The most straightforward way to get the current user ID in WordPress is by using the get_current_user_id() function. This function returns the numerical ID of the currently logged-in user.

$user_id = get_current_user_id();
echo $user_id; // 123

If the user is not logged in, this function will return 0. You can use this to perform actions only when the user is logged in:

$user_id = get_current_user_id();

if ($user_id !== 0){
  // perform actions for logged in users
} else {
  // user is not logged in
}

This code snippet checks if the current user is logged in to WordPress by retrieving the user ID using get_current_user_id(). If a user is logged in ($user_id is not 0), it executes the actions specified within the if block. Otherwise, if no user is logged in ($user_id is 0), it executes the PHP code within the else block to handle scenarios where the user is not logged in.

An alternative way to perform actions for logged in users only is by using the is_user_logged_in() function:

if (is_user_logged_in()){
  $user_id = get_current_user_id();
}

Using wp_get_current_user() to get the current user ID

Another way to retrieve the current WordPress user ID is using the wp_get_current_user() function. This function returns an instance of WP_User class and can be more appropriate when accessing additional information about the current user.

$current_user = wp_get_current_user();
$user_id = $current_user->ID;

The user ID will be set to 0 if the user is not logged in. You can check against for a 0 to perform actions only when the user is logged in. However, a more common approach would be to use the is_user_logged_in() function instead:

if (is_user_logged_in()){
  $current_user = wp_get_current_user();
  $user_id = $current_user->ID;
}

As mentioned above, when using the wp_get_current_user() function, you can retrieve additional information from the user object:

if (is_user_logged_in()){
  $current_user = wp_get_current_user();
  $user_id = $current_user->ID;
  $username = $current_user->user_login;
  $user_email = $current_user->user_email;
}

This code snippet first checks if a user is logged in WordPress using the is_user_logged_in() function. If a user is logged in, it proceeds to retrieve the current user’s details, such as their user_id, username, and user email address, using wp_get_current_user() to get the WP_User object representing the logged-in user. The retrieved information is then assigned to variables ($user_id, $username, and $user_email) for further use, allowing access to the logged-in user’s specific data during the session. The current user object can be used to load additional user data, such as first name and last name, display name, date registered, etc. You can additionally use it check and modify user capabilities.

Gain Valuable Insights From Your WordPress User Data

Using WordPress actions and hooks when retrieving the current user ID

When working with WordPress hooks to load the current user ID or perform actions related to user authentication, following certain best practices can ensure efficient and reliable functionality.

The init hook is suitable if you need to perform tasks or retrieve the current user ID early in the WordPress lifecycle. Furthermore, as it triggers after plugin loading, using this hook becomes beneficial when your code relies on the logic or functionalities of other plugins. However, consider whether this is the most appropriate point based on your application’s logic.

function my_custom_function(){
$user_id = get_current_user_id();
  // your code
}
add_action('init', 'my_custom_function');

The my_custom_function() function is hooked to the init action, making it execute during WordPress initialization. This allows you to perform specific actions or checks based on the logged-in user’s ID early in the site’s loading process.

If you need to execute your code only in the WP admin dashboard, you can use the admin_init hook instead:

function my_custom_admin_function(){
  $user_id = get_current_user_id();
  // your code
}
add_action('admin_init', 'my_custom_admin_function');

Another good practice is to choose hooks that align with the specific context of your code. For instance, use hooks like <a href="https://usersinsights.com/wordpress-user-login-hooks/">wp_login</a> or custom hooks related to user-specific actions if they better suit the timing and purpose of retrieving the user ID.

function my_after_user_login( $user_login, $user ) {
  $user_id = get_current_user_id();
  // your code
}
add_action('wp_login', 'my_after_user_login', 10, 2);

This code defines a callback function my_after_user_login that hooks into the wp_login action in WordPress, executing whenever a user successfully logs in. Upon login, the function retrieves the current user ID using get_current_user_id() and stores it in the $user_id variable.

Conclusion

In this article, we delved into two primary functions, get_current_user_id() and wp_get_current_user(), offering different ways to obtain the current user’s ID. Moreover, we explored the significance of utilizing appropriate hooks, such as the wp_login hook for actions triggered upon a successful user login, enabling developers to execute code precisely at the moment of authentication.