get_user_locale()WP 4.7.0

Gets the locale (translation language) of the current or specified user. It will return the value of get_locale() if the user has not set a separate locale in their profile.

Since WP 4.7, a user can set a separate translation language for their admin panel in their profile.

1 time — 0.00003 sec (very fast) | 50000 times — 0.15 sec (very fast) | PHP 7.0.14, WP 4.7

No Hooks.

Returns

String. User locale, for example ru_RU. If the user is not defined or does not have a locale set, it will return the value of get_locale().

Usage

get_user_locale( $user );
$user_id(integer/WP_User)
ID or user object whose locale needs to be retrieved.
Default: 0 (current user)

Examples

0

#1 Get the translation language (locale) of the current user

$local = get_user_locale();
echo $local; //> ru_RU
0

#2 Get the translation language of the user with ID 1

$local = get_user_locale( 1 );
echo $local; //> en_US

Changelog

Since 4.7.0 Introduced.

get_user_locale() code WP 6.9.1

function get_user_locale( $user = 0 ) {
	$user_object = false;

	if ( 0 === $user && function_exists( 'wp_get_current_user' ) ) {
		$user_object = wp_get_current_user();
	} elseif ( $user instanceof WP_User ) {
		$user_object = $user;
	} elseif ( $user && is_numeric( $user ) ) {
		$user_object = get_user_by( 'id', $user );
	}

	if ( ! $user_object ) {
		return get_locale();
	}

	$locale = $user_object->locale;

	return $locale ? $locale : get_locale();
}