Make WordPress Core

Opened 6 years ago

Last modified 3 years ago

#20845 closed defect (bug)

wp_set_current_user( null, "name") does not work when $current_user is already 0 — at Version 1

Reported by: bobbingwide Owned by:
Milestone: 4.4 Priority: normal
Severity: normal Version: 3.3.2
Component: Users Keywords: has-patch needs-testing
Focuses: Cc:

Description (last modified by scribu)

According to the documentation for wp_set_current_user() you can

Set $id to null and specify a name if you do not know a user's ID.

This does not work when the current user has already been set to anonymous ( ID = 0 ) since the following test returns true.

if ( isset( $current_user ) && ( $current_user instanceof WP_User ) && ( $id == $current_user->ID ) ) {

The last part of the test should be corrected to && ($id === $current_user->ID) )

which will ensure that the test fails when the $id parameter is null, which will allow the rest of the pluggable function to continue and set the current user to the specified $name.

This is similar to #19769. Note: the change in 3.4 has not fixed this particular problem.

Change History (1)

#1 @scribu
6 years ago

  • Description modified (diff)
Note: See TracTickets for help on using tickets.