PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.18.4
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.18.4
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 / CURCY_MultiCurrency.php
nitropack / classes / Integration / Plugin Last commit date
ACF.php 1 year ago AdvancedMathCaptcha.php 1 year ago AeliaCurrencySwitcher.php 11 months ago BeaverBuilder.php 1 year ago CF_Helper.php 1 year ago CURCY_MultiCurrency.php 1 year ago Cloudflare.php 1 year ago CommonHelpers.php 1 year ago CookieNotice.php 1 year ago DownloadManager.php 1 year ago Elementor.php 1 year ago Ezoic.php 1 year ago FusionBuilder.php 1 year ago GeoTargetingWP.php 1 year ago GravityForms.php 1 year ago JetPackNP.php 1 year ago MPG.php 11 months ago NginxHelper.php 1 year ago RC.php 11 months ago RankMathNP.php 1 year ago ShortPixel.php 1 year ago SquirrlySEO.php 1 year ago TheEventsCalendar.php 1 year ago ThriveTheme.php 1 year ago WCML.php 1 year ago WPBakeryNP.php 1 year ago WPCacheHelper.php 1 year ago WPForms.php 1 year ago WPML.php 1 year ago WPRocket.php 1 year ago WooCommerce.php 11 months ago WoocommerceCacheHandler.php 1 year ago YoastSEO.php 1 year ago
CURCY_MultiCurrency.php
101 lines
1 <?php
2
3 namespace NitroPack\Integration\Plugin;
4 /**
5 * CURCY_MultiCurrency Class
6 *
7 * @package nitropack
8 */
9
10
11 class CURCY_MultiCurrency {
12 /**
13 * The stage of the plugin integration.
14 * Late due to waiting for the plugin to be initialized and grab its options!
15 * @var string
16 */
17 const STAGE = 'late';
18
19 /**
20 * @var array|false $curcy_options Stores the options for the CURCY MultiCurrency plugin integration.
21 */
22
23 private $curcy_options;
24
25 public function __construct() {
26 $this->curcy_options = false;
27 }
28 /**
29 * Check if CURCY Multicurrency free or pro is active
30 *
31 * @return bool
32 */
33 public static function isActive() { //phpcs:ignore WordPress.NamingConventions.ValidFunctionName.MethodNameInvalid
34 return is_plugin_active( 'woo-multi-currency/woo-multi-currency.php' ) || is_plugin_active( 'woocommerce-multi-currency/woocommerce-multi-currency.php' );
35 }
36
37 /**
38 * Requires the plugin to be activated.
39 * If its settings are not found - bail out.
40 * Then from its settings it must be enabled, the session option (requires premium) must NOT be set.
41 * If session option is on, it works as it is.
42 * @return bool|void
43 */
44 public function init( $stage ) {
45 if ( ! self::isActive() )
46 return;
47
48 $this->get_options();
49
50 if ( $this->curcy_options === false )
51 return false;
52
53 if ( isset( $this->curcy_options['enable'] ) && $this->curcy_options['enable'] === '1' ) {
54 if ( ! isset( $this->curcy_options['use_session'] ) ) {
55 add_action( 'woocommerce_init', [ $this, 'set_custom_currency_cookie' ] );
56 }
57 }
58
59 if ( nitropack_is_optimizer_request() ) {
60 add_filter( 'wmc_get_currency_code', [ $this, 'modify_cookie_currency' ] );
61 }
62 }
63 /**
64 * Get the options for the CURCY MultiCurrency plugin and stores them as array.
65 * @return void
66 */
67 private function get_options() {
68 $this->curcy_options = get_option( 'woo_multi_currency_params' );
69 }
70 /**
71 * Set np_wc_currency currency cookie based on CURCY Multicurrency
72 *
73 * @param string $currency Currency code - USD, EUR, etc.
74 *
75 * @return void
76 */
77 public function set_custom_currency_cookie() {
78 if ( is_admin() )
79 return;
80
81 $cookie_expiration = time() + 604800; // 60 * 60 * 24 * 7 = 604800 seconds (1 week)
82 if ( ! empty( $_COOKIE['wmc_current_currency'] ) ) {
83 $currency = $_COOKIE['wmc_current_currency'];
84 setcookie( 'np_wc_currency', $currency, $cookie_expiration, '/' ); // 1 week
85 }
86 }
87
88 /**
89 * Checks if the NitroPack optimizer is visiting the page
90 * and assigns the already updated cookie np_wc_currency from set_custom_currency_cookie.
91 * @param string $currency The currency code to be modified.
92 * @return string The modified currency code.
93 */
94 public function modify_cookie_currency( $currency ) {
95 if ( ! empty( $_COOKIE['np_wc_currency'] ) ) {
96 $currency = $_COOKIE['np_wc_currency'];
97 }
98 return $currency;
99 }
100 }
101