PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / 5.5.7
WPML Multilingual & Multicurrency for WooCommerce v5.5.7
5.5.7 5.3.8 5.3.9 5.4.3 5.4.4 5.4.5 5.5.1 5.5.1.1 5.5.2.2 5.5.2.3 5.5.3 5.5.3.1 5.5.4 5.5.5 5.5.6 trunk 0.9 1.0 1.1 1.2 1.3 1.4 1.5 2.0 2.2 2.3 2.3.1 2.3.2 3.0 3.0.1 3.1 3.2 3.2.1 3.2.2 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.4 3.4.1 3.4.2 3.4.3 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.6 3.6.1 3.6.10 3.6.11 3.6.2 3.6.3 3.6.4 3.6.5 3.6.5.1 3.6.6 3.6.7 3.6.8 3.6.9 3.7 3.7.1 3.7.10 3.7.11 3.7.12 3.7.13 3.7.14 3.7.15 3.7.16 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.9.0 3.9.1 3.9.1.1 3.9.2 3.9.3 3.9.4 3.9.5 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.10.4 4.11.2 4.11.3.2 4.11.5 4.11.6 4.12.1 4.12.4 4.12.5 4.12.6 4.2.0 4.2.0.1 4.2.1 4.2.1.1 4.2.10 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.7.1 4.2.8 4.2.8.1 4.2.9 4.3.0 4.3.1 4.3.2 4.3.2.1 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.4.0 4.4.1 4.4.2 4.4.2.1 4.5.0 4.6.0 4.6.1 4.6.2 4.6.2.1 4.6.3 4.6.5 4.6.6 4.6.7 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.7.8 4.7.9 4.8.0 4.9.0 4.9.1 5.0.1 5.0.2 5.1.1 5.1.2 5.1.3 5.2.0 5.2.1 5.3.2 5.3.3.1 5.3.4 5.3.5 5.3.6 5.3.7
woocommerce-multilingual / classes / Multicurrency / Resolver / HelperByLanguage.php
woocommerce-multilingual / classes / Multicurrency / Resolver Last commit date
ComposedResolver.php 1 week ago Factory.php 1 week ago HelperByLanguage.php 1 week ago HelperByLocation.php 1 week ago Resolver.php 1 week ago ResolverForContext.php 1 week ago ResolverForDefault.php 1 week ago ResolverForModeLanguage.php 1 week ago ResolverForModeLocation.php 1 week ago
HelperByLanguage.php
47 lines
1 <?php
2
3 namespace WCML\MultiCurrency\Resolver;
4
5 use WCML\MultiCurrency\Geolocation;
6 use WCML\MultiCurrency\Settings;
7 use WCML\StandAlone\NullSitePress;
8 use WPML\FP\Fns;
9 use function WCML\functions\getSitePress;
10
11 class HelperByLanguage {
12
13 private static $getCurrency;
14
15 public static function getCurrencyByUserCountry( $currentLang ) {
16 if ( ! self::$getCurrency ) {
17 self::$getCurrency = Fns::memorize( function() use ( $currentLang ) {
18 $clientCountry = Geolocation::getUserCountry();
19 $currency = Geolocation::getOfficialCurrencyCodeByCountry( $clientCountry );
20
21 if ( ! Settings::isValidCurrencyForLang( $currency, $currentLang ) ) {
22 $currency = Settings::getFirstAvailableCurrencyForLang( $currentLang );
23 }
24
25 return $currency ?: null;
26 } );
27 }
28
29 return call_user_func( self::$getCurrency );
30 }
31
32
33 public static function getCurrentLanguage() {
34 $currentLang = getSitePress()->get_current_language();
35
36 if ( in_array( $currentLang, [ 'all', null, false ], true ) ) {
37 $currentLang = getSitePress()->get_default_language();
38 }
39
40 if ( ! is_string( $currentLang ) ) {
41 $currentLang = ( new NullSitePress() )->get_current_language();
42 }
43
44 return $currentLang;
45 }
46 }
47