PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / trunk
WPML Multilingual & Multicurrency for WooCommerce vtrunk
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 month ago Factory.php 1 month ago HelperByLanguage.php 1 month ago HelperByLocation.php 1 month ago Resolver.php 1 month ago ResolverForContext.php 1 month ago ResolverForDefault.php 1 month ago ResolverForModeLanguage.php 1 month ago ResolverForModeLocation.php 1 month 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