HEX
Server: Apache/2.4.65 (Debian)
System: Linux wordpress-7cb4c6b6f6-qgbk2 5.15.0-131-generic #141-Ubuntu SMP Fri Jan 10 21:18:28 UTC 2025 x86_64
User: www-data (33)
PHP: 8.3.27
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins/woo-photo-reviews/plugins/curcy.php
<?php
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}
class VI_WOO_PHOTO_REVIEWS_Plugins_Curcy {
	public static $settings,$is_pro,$enable, $cache=array();
	public function __construct() {
		if ( ! is_plugin_active('woocommerce-multi-currency/woocommerce-multi-currency.php') &&
		     ! is_plugin_active('woo-multi-currency/woo-multi-currency.php')) {
			return;
		}
		add_action('viwcpr_reminder_before_get_product_html', array(__CLASS__,'viwcpr_reminder_before_get_product_html'),10,2);
		add_action('viwcpr_reminder_after_get_product_html', array(__CLASS__,'viwcpr_reminder_after_get_product_html'),10,2);
	}
	public static function set_current_currency($result){
		if (!empty(self::$cache['currency'])){
			$result = self::$cache['currency'];
		}
		return $result;
	}
	public static function viwcpr_reminder_before_get_product_html($order, $products){
		if (!is_a($order,'WC_Order') || empty($products)){
			return;
		}
		if (!self::get_enable()){
			return;
		}
		$currency = $order->get_currency();
		if ($currency !== self::$settings->get_default_currency()){
			self::$cache['currency'] = $currency;
			add_filter('woocommerce_currency', array(__CLASS__,'set_current_currency'), PHP_INT_MAX, 1);
			self::$settings->set_current_currency( self::$cache['currency'] );
		}
	}
	public static function viwcpr_reminder_after_get_product_html($order, $products){
		remove_filter('woocommerce_currency',array(__CLASS__,'set_current_currency'), PHP_INT_MAX);
		if (!is_a($order,'WC_Order') || empty($products) || empty(self::$cache['currency'])){
			return;
		}
		if (!self::get_enable()){
			return;
		}
		self::$settings->set_current_currency( self::$settings->get_default_currency() );
	}
	public static function get_enable(){
		if (self::$enable !== null){
			return self::$enable;
		}
		self::$settings = self::get_settings();
		if (!self::$settings){
			return self::$enable = null;
		}
		return apply_filters('viwcpr_curcy_enable',self::$settings->get_default_currency());
	}
	public static function get_settings(){
		if (self::$settings !== null){
			return self::$settings;
		}
		if (class_exists('WOOMULTI_CURRENCY_Data')){
			self::$settings = WOOMULTI_CURRENCY_Data::get_ins(true);
			self::$is_pro = true;
		}elseif(class_exists('WOOMULTI_CURRENCY_F_Data')){
			self::$settings = WOOMULTI_CURRENCY_F_Data::get_ins();
		}
		return self::$settings;
	}
}