wp_set_current_user( int|null $id, string $name = '' ): WP_User
Changes the current user by ID or name.
Contents
Description
Set $id to null and specify a name if you do not know a user’s ID.
Some WordPress functionality is based on the current user and not based on the signed in user. Therefore, it opens the ability to edit and perform actions on users who aren’t signed in.
Parameters
-
$id
int|null Required -
User ID.
-
$name
string Optional -
User's username.
Default:
''
Return
WP_User Current user User object.
More Information
This function can be replaced via plugins. If plugins do not redefine these functions, then this will be used instead.
Source
File: wp-includes/pluggable.php
.
View all references
function wp_set_current_user( $id, $name = '' ) {
global $current_user;
// If `$id` matches the current user, there is 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;
}
Hooks
- do_action( 'set_current_user' )
-
Fires after the current user is set.
Changelog
Version | Description |
---|---|
2.0.3 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.
Note that setting the current user does not log in that user. This example will set the current user and log them in.
Attention!
Running this function will affect everything related to the current(real) user, after it. You must restore the real user: