PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.17.6
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.17.6
1.19.8 1.19.7 1.19.6 1.19.5 trunk 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.12.0 1.13.0 1.14.0 1.15.0 1.15.1 1.15.2 1.15.3 1.16.0 1.16.1 1.16.2 1.16.3 1.16.4 1.16.5 1.16.6 1.16.7 1.16.8 1.17.0 1.17.6 1.17.7 1.17.8 1.17.9 1.18.0 1.18.1 1.18.2 1.18.3 1.18.4 1.18.5 1.18.6 1.18.7 1.18.8 1.18.9 1.19.0 1.19.1 1.19.2 1.19.3 1.19.4 1.3.19 1.3.20 1.4.0 1.4.1 1.5.0 1.5.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.16 1.5.17 1.5.18 1.5.19 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.7.0 1.7.1 1.8.0 1.8.1 1.8.3 1.9.0 1.9.1 1.9.2
nitropack / classes / Integration / Plugin / WCML.php
nitropack / classes / Integration / Plugin Last commit date
ACF.php 1 year ago AdvancedMathCaptcha.php 3 years ago AeliaCurrencySwitcher.php 3 years ago BeaverBuilder.php 4 years ago CF_Helper.php 3 years ago Cloudflare.php 2 years ago CommonHelpers.php 3 years ago CookieNotice.php 4 years ago DownloadManager.php 4 years ago Elementor.php 3 years ago Ezoic.php 4 years ago FusionBuilder.php 4 years ago GeoTargetingWP.php 2 years ago GravityForms.php 2 years ago JetPackNP.php 3 years ago NginxHelper.php 2 years ago RC.php 3 years ago RankMathNP.php 3 years ago ShortPixel.php 4 years ago SquirrlySEO.php 3 years ago TheEventsCalendar.php 3 years ago ThriveTheme.php 4 years ago WCML.php 1 year ago WPBakeryNP.php 3 years ago WPCacheHelper.php 3 years ago WPForms.php 3 years ago WPML.php 1 year ago WPRocket.php 4 years ago WooCommerce.php 1 year ago WoocommerceCacheHandler.php 4 years ago YoastSEO.php 3 years ago
WCML.php
101 lines
1 <?php
2
3 /**
4 * WCML Class
5 *
6 * @package nitropack
7 */
8
9 namespace NitroPack\Integration\Plugin;
10
11 /**
12 * WCML Class
13 */
14 class WCML {
15 const STAGE = 'late';
16
17 /**
18 * Check if WooCommerce Multilingual is active
19 *
20 * @return bool
21 */
22 public static function isActive() { //phpcs:ignore WordPress.NamingConventions.ValidFunctionName.MethodNameInvalid
23 return is_plugin_active('woocommerce-multilingual/wpml-woocommerce.php');
24 }
25
26 /**
27 * Init function
28 *
29 * @param string $stage Stage.
30 *
31 * @return void
32 */
33 public function init($stage) { //phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
34
35 if (!self::isActive()) return;
36
37 add_filter('wcml_user_store_strategy', [$this, 'change_wcml_user_store_strategy']);
38 add_action('wcml_switch_currency', [$this, 'wcml_set_custom_currency_cookie']);
39 add_action('woocommerce_init', [$this, 'wcml_set_custom_currency_cookie']);
40 add_action('woocommerce_init', [$this, 'wcml_set_custom_language_cookie']);
41
42 }
43 /**
44 * https://git.onthegosystems.com/glue-plugins/wpml/woocommerce-multilingual/-/wikis/Integrate-caching-for-multicurrency
45 * @return string
46 */
47 public function change_wcml_user_store_strategy() {
48 return 'cookie';
49 }
50 /**
51 * Set np_wc_currency currency cookie based on WCML currency
52 *
53 * @param string $currency Currency code - USD, EUR, etc.
54 *
55 * @return void
56 */
57 public function wcml_set_custom_currency_cookie($currency = false) {
58 if (is_admin() && ! (defined('DOING_AJAX') && DOING_AJAX)) {
59 return;
60 }
61
62 $cookie_expiration = time() + 604800; // 60 * 60 * 24 * 7 = 604800 seconds (1 week)
63
64 if (!empty($_COOKIE['wcml_client_currency'])) {
65 $cookie_value = $_COOKIE['wcml_client_currency'];
66 } else if ($currency) {
67 $cookie_value = $currency;
68 } else {
69 //uses default currency setup in WC
70 $cookie_value = get_woocommerce_currency();
71 }
72 setcookie('np_wc_currency', $cookie_value, $cookie_expiration, '/'); // 1 week
73 }
74
75 /**
76 * Set np_wc_currency_language custom language cookie based on WCML or fallbacks to WP language - 'en', 'de', etc.
77 *
78 * @return void
79 */
80 public function wcml_set_custom_language_cookie() {
81 if (is_admin() && ! (defined('DOING_AJAX') && DOING_AJAX)) {
82 return;
83 }
84 $cookie_expiration = time() + 604800; // 60 * 60 * 24 * 7 = 604800 seconds (1 week)
85
86 $wcCurrencyLanguage = (isset(WC()->session) && WC()->session->has_session()) ? WC()->session->get("client_currency_language") : 0;
87
88 if (!empty($_COOKIE['wcml_client_currency_language'])) {
89 $cookie_value = $_COOKIE['wcml_client_currency_language'];
90 } else if ($wcCurrencyLanguage) {
91 $cookie_value = $wcCurrencyLanguage;
92 } else {
93 /** Fallbacks to WP default language **/
94 $locale = get_locale();
95 $lang = substr($locale, 0, 2); //Converts 'en_GB' to 'en'
96 $cookie_value = $lang;
97 }
98 setcookie('np_wc_currency_language', $cookie_value, $cookie_expiration, '/');
99 }
100 }
101