diff --git a/wp-includes/l10n.php b/wp-includes/l10n.php index 03a7a11bec..ba696ded93 100644 --- a/wp-includes/l10n.php +++ b/wp-includes/l10n.php @@ -76,20 +76,32 @@ function get_locale() { } /** - * Retrieves the locale of the current user. + * Retrieves the locale of a user. * * If the user has a locale set to a non-empty string then it will be * returned. Otherwise it returns the locale of get_locale(). * * @since 4.7.0 * - * @return string The locale of the current user. + * @param int|WP_User $user_id User's ID or a WP_User object. Defaults to current user. + * @return string The locale of the user. */ -function get_user_locale() { - $user = wp_get_current_user(); +function get_user_locale( $user_id = 0 ) { + $user = false; + if ( 0 === $user_id ) { + $user = wp_get_current_user(); + } elseif ( $user_id instanceof WP_User ) { + $user = $user_id; + } elseif ( is_numeric( $user_id ) ) { + $user = get_user_by( 'id', $user_id ); + } + + if ( ! $user ) { + return get_locale(); + } $locale = $user->locale; - return ( '' === $locale ) ? get_locale() : $locale; + return $locale ? $locale : get_locale(); } /** diff --git a/wp-includes/version.php b/wp-includes/version.php index b4709fa781..16ce9cd87c 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '4.7-alpha-38954'; +$wp_version = '4.7-alpha-38955'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.