Make WordPress Core

Changeset 54544


Ignore:
Timestamp:
10/17/2022 04:53:54 PM (4 years ago)
Author:
SergeyBiryukov
Message:

Users: Revert use of shared objects for current user.

Reverts [50790].

Props oztaser, ravipatel, dd32, costdev, SergeyBiryukov, tykoted, cu121, xknown.
Merges [54397] to the 6.0 branch.
Fixes #54984.

Location:
branches/6.0
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/6.0

  • branches/6.0/src/wp-includes/pluggable.php

    r54539 r54544  
    9292         * @since 2.8.0
    9393         * @since 4.4.0 Added 'ID' as an alias of 'id' for the `$field` parameter.
    94          * @since 5.8.0 Returns the global `$current_user` if it's the user being fetched.
    9594         *
    9695         * @global WP_User $current_user The current user object which holds the user data.
     
    101100         */
    102101        function get_user_by( $field, $value ) {
    103                 global $current_user;
    104 
    105102                $userdata = WP_User::get_data_by( $field, $value );
    106103
    107104                if ( ! $userdata ) {
    108105                        return false;
    109                 }
    110 
    111                 if ( $current_user instanceof WP_User && $current_user->ID === (int) $userdata->ID ) {
    112                         return $current_user;
    113106                }
    114107
  • branches/6.0/src/wp-includes/user.php

    r53179 r54544  
    18551855 * @since 3.0.0
    18561856 * @since 4.4.0 'clean_user_cache' action was added.
    1857  * @since 5.8.0 Refreshes the global user instance if cleaning the user cache for the current user.
    1858  *
    1859  * @global WP_User $current_user The current user object which holds the user data.
    18601857 *
    18611858 * @param WP_User|int $user User object or ID to be cleaned from the cache
    18621859 */
    18631860function clean_user_cache( $user ) {
    1864         global $current_user;
    1865 
    18661861        if ( is_numeric( $user ) ) {
    18671862                $user = new WP_User( $user );
     
    18861881         */
    18871882        do_action( 'clean_user_cache', $user->ID, $user );
    1888 
    1889         // Refresh the global user instance if the cleaning current user.
    1890         if ( get_current_user_id() === (int) $user->ID ) {
    1891                 $user_id      = (int) $user->ID;
    1892                 $current_user = null;
    1893                 wp_set_current_user( $user_id, '' );
    1894         }
    18951883}
    18961884
  • branches/6.0/tests/phpunit/tests/pluggable.php

    r53231 r54544  
    340340        }
    341341
    342         /**
    343          * @ticket 28020
    344          */
    345         public function test_get_user_by_should_return_same_instance_as_wp_get_current_user() {
    346                 // Create a test user.
    347                 $new_user = self::factory()->user->create( array( 'role' => 'subscriber' ) );
    348 
    349                 // Set the test user as the current user.
    350                 $current_user = wp_set_current_user( $new_user );
    351 
    352                 // Get the test user using get_user_by().
    353                 $from_get_user_by = get_user_by( 'id', $new_user );
    354 
    355                 $this->assertSame( $current_user, $from_get_user_by );
    356         }
    357342}
Note: See TracChangeset for help on using the changeset viewer.