diff --git a/src/wp-includes/pluggable.php b/src/wp-includes/pluggable.php index 0779010dce..4c2cc0135f 100644 --- a/src/wp-includes/pluggable.php +++ b/src/wp-includes/pluggable.php @@ -822,13 +822,15 @@ if ( !function_exists('wp_set_auth_cookie') ) : * set, the cookies will be kept for 14 days or two weeks. * * @since 2.5.0 + * @since 4.3.0 Added the `$token` parameter. * * @param int $user_id User ID * @param bool $remember Whether to remember the user * @param mixed $secure Whether the admin cookies should only be sent over HTTPS. * Default is_ssl(). + * @param string $token Optional. User's session token to use for this cookie. */ -function wp_set_auth_cookie($user_id, $remember = false, $secure = '') { +function wp_set_auth_cookie( $user_id, $remember = false, $secure = '', $token = '' ) { if ( $remember ) { /** * Filter the duration of the authentication cookie expiration period. @@ -888,8 +890,10 @@ function wp_set_auth_cookie($user_id, $remember = false, $secure = '') { $scheme = 'auth'; } - $manager = WP_Session_Tokens::get_instance( $user_id ); - $token = $manager->create( $expiration ); + if ( '' === $token ) { + $manager = WP_Session_Tokens::get_instance( $user_id ); + $token = $manager->create( $expiration ); + } $auth_cookie = wp_generate_auth_cookie( $user_id, $expiration, $scheme, $token ); $logged_in_cookie = wp_generate_auth_cookie( $user_id, $expiration, 'logged_in', $token );