1; return (bool) apply_filters( 'aieo_is_multilingual', $ml ); } public static function recipient_locale( $user_id = 0, $email = '', $ctx = array() ) { $site = function_exists( 'determine_locale' ) ? determine_locale() : get_locale(); if ( ! self::is_multilingual() ) { return $site; } $locale = ( (int) $user_id > 0 ) ? (string) get_user_locale( (int) $user_id ) : ''; $locale = (string) apply_filters( 'aieo_email_recipient_locale', $locale, (int) $user_id, (string) $email, (array) $ctx ); $locale = trim( $locale ); if ( '' === $locale ) { return $site; } if ( 'en_US' === $locale || in_array( $locale, (array) get_available_languages(), true ) ) { return $locale; } return $site; } public static function with_locale( $locale, callable $cb ) { $locale = (string) $locale; $current = function_exists( 'determine_locale' ) ? determine_locale() : get_locale(); $switch = ( '' !== $locale && $locale !== $current && function_exists( 'switch_to_locale' ) && switch_to_locale( $locale ) ); try { return $cb(); } finally { if ( $switch ) { restore_previous_locale(); } } } }