function switch_to_user($user_id, $remember = false, $old_user_id = 0) { if (!function_exists('wp_set_auth_cookie')) { return false; } if (!$user_id) { return false; } if (!($user = get_userdata($user_id))) { return false; } $old_user = wp_get_current_user(); if (0 === $old_user_id and $old_user) { $old_user_id = $old_user->ID; } if ($old_user_id) { wp_set_olduser_cookie($old_user_id); } else { wp_clear_olduser_cookie(); } wp_clear_auth_cookie(); wp_set_auth_cookie($user_id, $remember); wp_set_current_user($user_id); if (false === $old_user_id) { do_action('switch_back_user', $user_id, $old_user_id); } else { do_action('switch_to_user', $user_id, $old_user_id); } return true; }
function switch_to_user($user_id, $remember = false, $set_old_user = true) { if (!($user = get_userdata($user_id))) { return false; } if ($set_old_user and is_user_logged_in()) { $old_user_id = get_current_user_id(); wp_set_olduser_cookie($old_user_id); } else { $old_user_id = false; wp_clear_olduser_cookie(false); } wp_clear_auth_cookie(); wp_set_auth_cookie($user_id, $remember); wp_set_current_user($user_id); if ($set_old_user) { do_action('switch_to_user', $user_id, $old_user_id); } else { do_action('switch_back_user', $user_id, $old_user_id); } return $user; }