Файловый менеджер - Редактировать - /home/tuudkjt/globeasy/wp-content/plugins/woo-multi-currency/includes/data.php
Назад
<?php if ( ! defined( 'ABSPATH' ) ) { exit; } class WOOMULTI_CURRENCY_F_Data { protected static $instance = null; protected static $allow_html = null; private $params; /** * WOOMULTI_CURRENCY_F_Data constructor. * Init setting */ public function __construct() { global $wmc_settings; if ( ! $wmc_settings ) { $wmc_settings = get_option( 'woo_multi_currency_params', array() ); $wmc_settings['currency_core'] = get_option( 'woocommerce_currency' ); $wmc_settings['decimals_core'] = get_option( 'woocommerce_price_num_decimals' ); $wmc_settings['currency_pos_core'] = get_option( 'woocommerce_currency_pos' ); } $this->params = $wmc_settings; $args = array( 'enable' => 0, 'enable_fixed_price' => 0, 'currency_default' => $wmc_settings['currency_core'], 'cache_compatible' => 0, 'currency' => array( $wmc_settings['currency_core'] ), 'currency_rate' => array( 1 ), 'currency_rate_fee' => array( 0 ), 'currency_hidden' => array( 0 ), 'currency_decimals' => array( $wmc_settings['decimals_core'] ), 'currency_custom' => array( '' ), 'currency_pos' => array( $wmc_settings['currency_pos_core'] ), 'auto_detect' => 0, 'enable_currency_by_country' => 0, /*Checkout*/ 'enable_multi_payment' => 0, 'enable_cart_page' => 0, /*Design*/ 'enable_design' => 0, 'title' => '', 'design_position' => 0, 'enable_collapse' => 0, 'text_color' => '#fff', 'background_color' => '#212121', 'main_color' => '#f78080', 'flag_custom' => '', 'sidebar_style' => 0, //Product price switcher 'price_switcher' => 0, 'price_switcher_position' => 0, //Shortcode 'shortcode_bg_color' => '#ffffff', 'shortcode_active_bg_color' => '#ffffff', 'shortcode_color' => '#212121', 'shortcode_active_color' => '#212121', 'shortcode_border_color' => 0, /*Auto update*/ 'is_checkout' => 0, 'is_cart' => 0, 'conditional_tags' => '', 'custom_css' => '', 'rate_decimals' => 5, 'checkout_currency' => $wmc_settings['currency_core'], 'checkout_currency_args' => array(), 'geo_api' => 0, 'rel_nofollow' => 0, 'bot_currency' => 'default_currency', ); $this->params = apply_filters( 'wmc_settings_args', wp_parse_args( $this->params, $args ) ); } public static function get_ins() { // If the single instance hasn't been set, set it now. if ( null == self::$instance ) { self::$instance = new self; } return self::$instance; } /** * Get option Price switcher * @return mixed */ public function get_price_switcher() { return apply_filters( 'wmc_get_price_switcher', $this->params['price_switcher'] ); } /** * Enable collapse * @return mixed */ public function enable_collapse() { return apply_filters( 'wmc_enable_collapse', $this->params['enable_collapse'] ); } /** * Get sidebar style * @return mixed */ public function get_sidebar_style() { return apply_filters( 'wmc_get_sidebar_style', $this->params['sidebar_style'] ); } /** * Check Geo APi * @return mixed */ public function get_geo_api() { return apply_filters( 'wmc_get_geo_api', $this->params['geo_api'] ); } /** * Check Conditional tag * @return mixed */ public function get_conditional_tags() { return apply_filters( 'wmc_get_conditional_tags', $this->params['conditional_tags'] ); } /** * Check hidden on cart page * @return mixed */ public function is_cart() { return apply_filters( 'wmc_is_cart', $this->params['is_cart'] ); } /** * Check hidden on checkout page * @return mixed */ public function is_checkout() { return apply_filters( 'wmc_is_checkout', $this->params['is_checkout'] ); } /** * Get custom CSS * @return mixed */ public function get_custom_css() { return apply_filters( 'wmc_get_custom_css', $this->params['custom_css'] ); } /**237 countries. * Two-letter country code (ISO 3166-1 alpha-2) => Three-letter currency code (ISO 4217). * * @param $country_code * * @return bool|mixed */ function get_currency_code( $country_code ) { if ( ! $country_code ) { return false; } $arg = array( 'AF' => 'AFN', 'AL' => 'ALL', 'DZ' => 'DZD', 'AS' => 'USD', 'AD' => 'EUR', 'AO' => 'AOA', 'AI' => 'XCD', 'AQ' => 'XCD', 'AG' => 'XCD', 'AR' => 'ARS', 'AM' => 'AMD', 'AW' => 'AWG', 'AU' => 'AUD', 'AT' => 'EUR', 'AZ' => 'AZN', 'BS' => 'BSD', 'BH' => 'BHD', 'BD' => 'BDT', 'BB' => 'BBD', 'BY' => 'BYR', 'BE' => 'EUR', 'BZ' => 'BZD', 'BJ' => 'XOF', 'BM' => 'BMD', 'BT' => 'BTN', 'BO' => 'BOB', 'BA' => 'BAM', 'BW' => 'BWP', 'BV' => 'NOK', 'BR' => 'BRL', 'IO' => 'USD', 'BN' => 'BND', 'BG' => 'BGN', 'BF' => 'XOF', 'BI' => 'BIF', 'KH' => 'KHR', 'CM' => 'XAF', 'CA' => 'CAD', 'CV' => 'CVE', 'KY' => 'KYD', 'CF' => 'XAF', 'TD' => 'XAF', 'CL' => 'CLP', 'CN' => 'CNY', 'HK' => 'HKD', 'CX' => 'AUD', 'CC' => 'AUD', 'CO' => 'COP', 'KM' => 'KMF', 'CG' => 'XAF', 'CD' => 'CDF', 'CK' => 'NZD', 'CR' => 'CRC', 'HR' => 'HRK', 'CU' => 'CUP', 'CY' => 'EUR', 'CZ' => 'CZK', 'DK' => 'DKK', 'DJ' => 'DJF', 'DM' => 'XCD', 'DO' => 'DOP', 'EC' => 'ECS', 'EG' => 'EGP', 'SV' => 'SVC', 'GQ' => 'XAF', 'ER' => 'ERN', 'EE' => 'EUR', 'ET' => 'ETB', 'FK' => 'FKP', 'FO' => 'DKK', 'FJ' => 'FJD', 'FI' => 'EUR', 'FR' => 'EUR', 'GF' => 'EUR', 'TF' => 'EUR', 'GA' => 'XAF', 'GM' => 'GMD', 'GE' => 'GEL', 'DE' => 'EUR', 'GH' => 'GHS', 'GI' => 'GIP', 'GR' => 'EUR', 'GL' => 'DKK', 'GD' => 'XCD', 'GP' => 'EUR', 'GU' => 'USD', 'GT' => 'QTQ', 'GG' => 'GGP', 'GN' => 'GNF', 'GW' => 'GWP', 'GY' => 'GYD', 'HT' => 'HTG', 'HM' => 'AUD', 'HN' => 'HNL', 'HU' => 'HUF', 'IS' => 'ISK', 'IN' => 'INR', 'ID' => 'IDR', 'IR' => 'IRR', 'IQ' => 'IQD', 'IE' => 'EUR', 'IM' => 'GBP', 'IL' => 'ILS', 'IT' => 'EUR', 'JM' => 'JMD', 'JP' => 'JPY', 'JE' => 'GBP', 'JO' => 'JOD', 'KZ' => 'KZT', 'KE' => 'KES', 'KI' => 'AUD', 'KP' => 'KPW', 'KR' => 'KRW', 'KW' => 'KWD', 'KG' => 'KGS', 'LA' => 'LAK', 'LV' => 'EUR', 'LB' => 'LBP', 'LS' => 'LSL', 'LR' => 'LRD', 'LY' => 'LYD', 'LI' => 'CHF', 'LT' => 'EUR', 'LU' => 'EUR', 'MK' => 'MKD', 'MG' => 'MGF', 'MW' => 'MWK', 'MY' => 'MYR', 'MV' => 'MVR', 'ML' => 'XOF', 'MT' => 'EUR', 'MH' => 'USD', 'MQ' => 'EUR', 'MR' => 'MRO', 'MU' => 'MUR', 'YT' => 'EUR', 'MX' => 'MXN', 'FM' => 'USD', 'MD' => 'MDL', 'MC' => 'EUR', 'MN' => 'MNT', 'ME' => 'EUR', 'MS' => 'XCD', 'MA' => 'MAD', 'MZ' => 'MZN', 'MM' => 'MMK', 'NA' => 'NAD', 'NR' => 'AUD', 'NP' => 'NPR', 'NL' => 'EUR', 'AN' => 'ANG', 'NC' => 'XPF', 'NZ' => 'NZD', 'NI' => 'NIO', 'NE' => 'XOF', 'NG' => 'NGN', 'NU' => 'NZD', 'NF' => 'AUD', 'MP' => 'USD', 'NO' => 'NOK', 'OM' => 'OMR', 'PK' => 'PKR', 'PW' => 'USD', 'PA' => 'PAB', 'PG' => 'PGK', 'PY' => 'PYG', 'PE' => 'PEN', 'PH' => 'PHP', 'PN' => 'NZD', 'PL' => 'PLN', 'PT' => 'EUR', 'PR' => 'USD', 'QA' => 'QAR', 'RE' => 'EUR', 'RO' => 'RON', 'RU' => 'RUB', 'RW' => 'RWF', 'SH' => 'SHP', 'KN' => 'XCD', 'LC' => 'XCD', 'PM' => 'EUR', 'VC' => 'XCD', 'WS' => 'WST', 'SM' => 'EUR', 'ST' => 'STD', 'SA' => 'SAR', 'SN' => 'XOF', 'RS' => 'RSD', 'SC' => 'SCR', 'SL' => 'SLL', 'SG' => 'SGD', 'SK' => 'EUR', 'SI' => 'EUR', 'SB' => 'SBD', 'SO' => 'SOS', 'ZA' => 'ZAR', 'GS' => 'GBP', 'SS' => 'SSP', 'ES' => 'EUR', 'LK' => 'LKR', 'SD' => 'SDG', 'SR' => 'SRD', 'SJ' => 'NOK', 'SZ' => 'SZL', 'SE' => 'SEK', 'CH' => 'CHF', 'SY' => 'SYP', 'TW' => 'TWD', 'TJ' => 'TJS', 'TZ' => 'TZS', 'TH' => 'THB', 'TG' => 'XOF', 'TK' => 'NZD', 'TO' => 'TOP', 'TT' => 'TTD', 'TN' => 'TND', 'TR' => 'TRY', 'TM' => 'TMT', 'TC' => 'USD', 'TV' => 'AUD', 'UG' => 'UGX', 'UA' => 'UAH', 'AE' => 'AED', 'GB' => 'GBP', 'US' => 'USD', 'UM' => 'USD', 'UY' => 'UYU', 'UZ' => 'UZS', 'VU' => 'VUV', 'VE' => 'VEF', 'VN' => 'VND', 'VI' => 'USD', 'WF' => 'XPF', 'EH' => 'MAD', 'YE' => 'YER', 'ZM' => 'ZMW', 'ZW' => 'ZWD', ); return apply_filters( 'wmc_get_currency_code', $arg[ $country_code ], $arg, $country_code ); } /**Get country code by currency * * @param $currency_code * * @return array */ public function get_country_data( $currency_code ) { $countries = array( 'AFN' => 'AF', 'ALL' => 'AL', 'DZD' => 'DZ', 'USD' => 'US', 'EUR' => 'EU', 'AOA' => 'AO', 'XCD' => 'LC', 'ARS' => 'AR', 'AMD' => 'AM', 'AWG' => 'AW', 'AUD' => 'AU', 'AZN' => 'AZ', 'BSD' => 'BS', 'BHD' => 'BH', 'BDT' => 'BD', 'BBD' => 'BB', 'BYR' => 'BY', 'BYN' => 'BY', 'BZD' => 'BZ', 'XOF' => 'BJ', 'BMD' => 'BM', 'BTN' => 'BT', 'BOB' => 'BO', 'BAM' => 'BA', 'BWP' => 'BW', 'NOK' => 'NO', 'BRL' => 'BR', 'BND' => 'BN', 'BGN' => 'BG', 'BIF' => 'BI', 'KHR' => 'KH', 'XAF' => 'CM', 'CAD' => 'CA', 'CVE' => 'CV', 'KYD' => 'KY', 'CLP' => 'CL', 'CNY' => 'CN', 'HKD' => 'HK', 'COP' => 'CO', 'KMF' => 'KM', 'CDF' => 'CD', 'NZD' => 'NZ', 'CRC' => 'CR', 'HRK' => 'HR', 'CUP' => 'CU', 'CZK' => 'CZ', 'DKK' => 'DK', 'DJF' => 'DJ', 'DOP' => 'DO', 'ECS' => 'EC', 'EGP' => 'EG', 'SVC' => 'SV', 'ERN' => 'ER', 'ETB' => 'ET', 'FKP' => 'FK', 'FJD' => 'FJ', 'GMD' => 'GM', 'GEL' => 'GE', 'GHS' => 'GH', 'GIP' => 'GI', 'QTQ' => 'GT', 'GGP' => 'GG', 'GNF' => 'GN', 'GWP' => 'GW', 'GYD' => 'GY', 'HTG' => 'HT', 'HNL' => 'HN', 'HUF' => 'HU', 'ISK' => 'IS', 'INR' => 'IN', 'IDR' => 'ID', 'IRR' => 'IR', 'IQD' => 'IQ', 'GBP' => 'GB', 'ILS' => 'IL', 'JMD' => 'JM', 'JPY' => 'JP', 'JOD' => 'JO', 'KZT' => 'KZ', 'KES' => 'KE', 'KPW' => 'KP', 'KRW' => 'KR', 'KWD' => 'KW', 'KGS' => 'KG', 'LAK' => 'LA', 'LBP' => 'LB', 'LSL' => 'LS', 'LRD' => 'LR', 'LYD' => 'LY', 'CHF' => 'CH', 'MKD' => 'MK', 'MGF' => 'MG', 'MWK' => 'MW', 'MYR' => 'MY', 'MVR' => 'MV', 'MRO' => 'MR', 'MUR' => 'MU', 'MXN' => 'MX', 'MDL' => 'MD', 'MNT' => 'MN', 'MAD' => 'MA', 'MZN' => 'MZ', 'MMK' => 'MM', 'NAD' => 'NA', 'NPR' => 'NP', 'ANG' => 'AN', 'XPF' => 'WF', 'NIO' => 'NI', 'NGN' => 'NG', 'OMR' => 'OM', 'PKR' => 'PK', 'PAB' => 'PA', 'PGK' => 'PG', 'PYG' => 'PY', 'PEN' => 'PE', 'PHP' => 'PH', 'PLN' => 'PL', 'QAR' => 'QA', 'RON' => 'RO', 'RUB' => 'RU', 'RWF' => 'RW', 'SHP' => 'SH', 'WST' => 'WS', 'STD' => 'ST', 'SAR' => 'SA', 'RSD' => 'RS', 'SCR' => 'SC', 'SLL' => 'SL', 'SGD' => 'SG', 'SBD' => 'SB', 'SOS' => 'SO', 'ZAR' => 'ZA', 'SSP' => 'SS', 'LKR' => 'LK', 'SDG' => 'SD', 'SRD' => 'SR', 'SZL' => 'SZ', 'SEK' => 'SE', 'SYP' => 'SY', 'TWD' => 'TW', 'TJS' => 'TJ', 'TZS' => 'TZ', 'THB' => 'TH', 'TOP' => 'TO', 'TTD' => 'TT', 'TND' => 'TN', 'TRY' => 'TR', 'TMT' => 'TM', 'UGX' => 'UG', 'UAH' => 'UA', 'AED' => 'AE', 'UYU' => 'UY', 'UZS' => 'UZ', 'VUV' => 'VU', 'VEF' => 'VE', 'VND' => 'VN', 'YER' => 'YE', 'ZMW' => 'ZM', 'ZWD' => 'ZW', 'BTC' => 'XBT', 'ETH' => 'ETH', 'MOP' => 'MO', 'ZWL' => 'ZW', ); $country_names = WC()->countries->countries; $data = array(); /*Custom Flag*/ $custom_flags = $this->get_flag_custom(); if ( is_array( $custom_flags ) && count( array_filter( $custom_flags ) ) ) { $countries = array_merge( $countries, $custom_flags ); } if ( isset( $countries[ $currency_code ] ) && $currency_code ) { $data['code'] = $countries[ $currency_code ]; switch ( $currency_code ) { case 'EUR': $data['name'] = esc_attr__( 'European Union', 'woo-multi-currency' ); break; default: $data['name'] = isset( $country_names[ $countries[ $currency_code ] ] ) ? $country_names[ $countries[ $currency_code ] ] : 'Unknown'; } } else { $data['code'] = '_unknown'; $data['name'] = 'Unknown'; } return $data; } /** * Custom flag * @return mixed */ public function get_flag_custom() { $value = array(); $data_codes = $this->params['flag_custom']; if ( $data_codes ) { $args = array_filter( explode( "\n", $data_codes ) ); if ( count( $args ) ) { foreach ( $args as $arg ) { $code = array_filter( explode( ",", strtoupper( $arg ) ) ); if ( count( $code ) == 2 ) { $code = array_map( 'trim', $code ); $value[ $code[0] ] = $code[1]; } } } } else { return array(); } return apply_filters( 'wmc_get_flag_custom', $value ); } /** * Get Links to redirect * @return array */ public function get_links() { if ( isset( $_REQUEST['_woo_multi_currency_nonce'] ) && ! wp_verify_nonce( sanitize_text_field( $_REQUEST['_woo_multi_currency_nonce'] ), 'woo_multi_currency_data' ) ) { return array(); } $links = array(); $selected_currencies = $this->get_list_currencies(); $current_currency = $this->get_current_currency(); $url = ! empty( $_POST['wmc_current_url'] ) ? sanitize_text_field( $_POST['wmc_current_url'] ) : false; if ( count( $selected_currencies ) ) { foreach ( $selected_currencies as $k => $currency ) { if ( $currency['hide'] ) { continue; } /*Remove unsupported currencies from widget and currency bar on checkout and cart page*/ // if ( ( is_checkout() ) ) { // continue; // } /*Override min price and max price*/ $arg = array( 'wmc-currency' => $k ); if ( $current_currency == $k ) { if ( isset( $_GET['min_price'] ) ) { $arg['min_price'] = floatval( sanitize_text_field( $_GET['min_price'] ) ); } if ( isset( $_GET['max_price'] ) ) { $arg['max_price'] = floatval( sanitize_text_field( $_GET['max_price'] ) ); } } else { if ( isset( $_GET['min_price'] ) ) { $arg['min_price'] = ( floatval( sanitize_text_field( $_GET['min_price'] ) ) / $selected_currencies[ $current_currency ]['rate'] ) * $currency['rate']; } if ( isset( $_GET['max_price'] ) ) { $arg['max_price'] = ( floatval( sanitize_text_field( $_GET['max_price'] ) ) / $selected_currencies[ $current_currency ]['rate'] ) * $currency['rate']; } } $link = apply_filters( 'wmc_get_link', add_query_arg( $arg, $url ), $k, $currency ); $links[ $k ] = $link; } } return apply_filters( 'wmc_get_links', $links ); } /** * Get list currencies * @return mixed */ public function get_list_currencies() { $data = array(); if ( count( $this->params['currency'] ) ) { foreach ( $this->params['currency'] as $k => $currency ) { if ( ! isset( $this->params['currency_rate_fee'][ $k ] ) ) { $this->params['currency_rate_fee'][ $k ] = 0; } $data[ $currency ]['rate'] = ! $this->params['currency_rate_fee'][ $k ] ? $this->params['currency_rate'][ $k ] : floatval( $this->params['currency_rate'][ $k ] ) + floatval( $this->params['currency_rate_fee'][ $k ] ); $data[ $currency ]['pos'] = $this->params['currency_pos'][ $k ]; $data[ $currency ]['decimals'] = $this->params['currency_decimals'][ $k ]; $data[ $currency ]['custom'] = $this->params['currency_custom'][ $k ]; $data[ $currency ]['hide'] = isset( $this->params['currency_hidden'][ $k ] ) ? $this->params['currency_hidden'][ $k ] : 0; } } return apply_filters( 'wmc_get_list_currencies', $data ); } /** * Get current currency * @return mixed */ public function get_current_currency() { /*Check currency*/ $selected_currencies = $this->get_currencies(); $current_currency = $this->getcookie( 'wmc_current_currency' ); if ( ! $current_currency || ! in_array( $current_currency, $selected_currencies ) ) { $current_currency = get_option( 'woocommerce_currency' ); } return $current_currency; } public function get_currencies() { return apply_filters( 'wmc_get_currencies', $this->params['currency'] ); } /** * Get Cookie or Session * * @param $name * * @return bool */ public function getcookie( $name ) { return isset( $_COOKIE[ $name ] ) ? sanitize_text_field( wp_unslash( $_COOKIE[ $name ] ) ) : false; } /** * List shortcodes on widget or content * @return mixed */ public function get_list_shortcodes() { return apply_filters( 'wmc_get_list_shortcodes', array( '' => esc_html__( 'Default', 'woo-multi-currency' ), 'plain_horizontal' => esc_html__( 'Plain Horizontal', 'woo-multi-currency' ), 'plain_vertical' => esc_html__( 'Plain Vertical', 'woo-multi-currency' ), 'plain_vertical_2' => esc_html__( 'Listbox currency code', 'woo-multi-currency' ), 'layout3' => esc_html__( 'List Flag Horizontal', 'woo-multi-currency' ), 'layout4' => esc_html__( 'List Flag Vertical', 'woo-multi-currency' ), 'layout5' => esc_html__( 'List Flag + Currency Code', 'woo-multi-currency' ), 'layout6' => esc_html__( 'Horizontal Currency Symbols', 'woo-multi-currency' ), 'layout9' => esc_html__( 'Horizontal Currency Slide', 'woo-multi-currency' ), 'layout7' => esc_html__( 'Vertical Currency Symbols', 'woo-multi-currency' ), 'layout8' => esc_html__( 'Vertical Currency Symbols (circle)', 'woo-multi-currency' ), 'layout10' => esc_html__( 'Flag + Country + Currency + Symbol', 'woo-multi-currency' ), ) ); } /** * Check fixed price * @return mixed */ public function check_fixed_price() { return apply_filters( 'wmc_check_fixed_price', $this->params['enable_fixed_price'] ); } /** * Get title on design * @return mixed */ public function get_design_title() { return apply_filters( 'wmc_get_design_title', $this->params['design_title'] ); } /** * Get Main color * @return mixed */ public function get_main_color() { return apply_filters( 'wmc_get_main_color', $this->params['main_color'] ); } /** * Check design enable * @return mixed */ public function get_enable_design() { if ( $this->params['enable_design'] && $this->params['enable'] ) { return apply_filters( 'wmc_get_enable_design', $this->params['enable_design'] ); } else { return false; } } /** * Get design position * @return mixed */ public function get_design_position() { return apply_filters( 'wmc_get_design_position', $this->params['design_position'] ); } /** * Get text color on design * @return mixed */ public function get_text_color() { return apply_filters( 'wmc_text_color', $this->params['text_color'] ); } /** * Get backround color of design * @return mixed */ public function get_background_color() { return apply_filters( 'wmc_background_color', $this->params['background_color'] ); } /** * @param string $orginal_price * @param string $other_price * * @return array */ public function get_exchange( $orginal_price = '', $other_price = '' ) { $rates = array(); $data_rates = $this->get_default_exchange( $orginal_price, $other_price ); if ( ! isset( $rates[ $orginal_price ] ) ) { $rates[ $orginal_price ] = 1; } if ( ( is_array( $data_rates ) || $data_rates instanceof Countable ) && count( $rates ) ) { foreach ( $data_rates as $k => $rate ) { $rates[ $k ] = $rate == 1 ? 1 : number_format( round( $rate, $this->get_rate_decimals() ), $this->get_rate_decimals(), '.', '' ); } } return $rates; } /** * @param $orginal_price * @param $other_price * * @return array|bool */ private function get_default_exchange( $orginal_price, $other_price ) { global $wp_version; $rates = array(); if ( $orginal_price && $other_price ) { $url = 'https://api.villatheme.com/wp-json/exchange/v1'; $request = wp_remote_post( $url, array( 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_site_url(), 'timeout' => 10, 'body' => array( 'from' => $orginal_price, 'to' => $other_price ) ) ); if ( ! is_wp_error( $request ) || wp_remote_retrieve_response_code( $request ) === 200 ) { $rates = json_decode( trim( $request['body'] ), true ); } } else { return false; } return apply_filters( 'wmc_get_exchange', $rates ); } /** * Get custom CSS * @return mixed */ public function get_rate_decimals() { return apply_filters( 'wmc_get_rate_decimals', $this->params['rate_decimals'] ); } public function get_country_freebase( $country_code ) { $countries = array( "AED" => "/m/02zl8q", "AFN" => "/m/019vxc", "ALL" => "/m/01n64b", "AMD" => "/m/033xr3", "ANG" => "/m/08njbf", "AOA" => "/m/03c7mb", "ARS" => "/m/024nzm", "AUD" => "/m/0kz1h", "AWG" => "/m/08s1k3", "AZN" => "/m/04bq4y", "BAM" => "/m/02lnq3", "BBD" => "/m/05hy7p", "BDT" => "/m/02gsv3", "BGN" => "/m/01nmfw", "BHD" => "/m/04wd20", "BIF" => "/m/05jc3y", "BMD" => "/m/04xb8t", "BND" => "/m/021x2r", "BOB" => "/m/04tkg7", "BRL" => "/m/03385m", "BSD" => "/m/01l6dm", "BTC" => "/m/05p0rrx", "BWP" => "/m/02nksv", "BYN" => "/m/05c9_x", "BZD" => "/m/02bwg4", "CAD" => "/m/0ptk_", "CDF" => "/m/04h1d6", "CHF" => "/m/01_h4b", "CLP" => "/m/0172zs", "CNY" => "/m/0hn4_", "COP" => "/m/034sw6", "CRC" => "/m/04wccn", "CUC" => "/m/049p2z", "CUP" => "/m/049p2z", "CVE" => "/m/06plyy", "CZK" => "/m/04rpc3", "DJF" => "/m/05yxn7", "DKK" => "/m/01j9nc", "DOP" => "/m/04lt7_", "DZD" => "/m/04wcz0", "EGP" => "/m/04phzg", "ETB" => "/m/02_mbk", "EUR" => "/m/02l6h", "FJD" => "/m/04xbp1", "GBP" => "/m/01nv4h", "GEL" => "/m/03nh77", "GHS" => "/m/01s733", "GMD" => "/m/04wctd", "GNF" => "/m/05yxld", "GTQ" => "/m/01crby", "GYD" => "/m/059mfk", "HKD" => "/m/02nb4kq", "HNL" => "/m/04krzv", "HRK" => "/m/02z8jt", "HTG" => "/m/04xrp0", "HUF" => "/m/01hfll", "IDR" => "/m/0203sy", "ILS" => "/m/01jcw8", "INR" => "/m/02gsvk", "IQD" => "/m/01kpb3", "IRR" => "/m/034n11", "ISK" => "/m/012nk9", "JMD" => "/m/04xc2m", "JOD" => "/m/028qvh", "JPY" => "/m/088n7", "KES" => "/m/05yxpb", "KGS" => "/m/04k5c6", "KHR" => "/m/03_m0v", "KMF" => "/m/05yxq3", "KRW" => "/m/01rn1k", "KWD" => "/m/01j2v3", "KYD" => "/m/04xbgl", "KZT" => "/m/01km4c", "LAK" => "/m/04k4j1", "LBP" => "/m/025tsrc", "LKR" => "/m/02gsxw", "LRD" => "/m/05g359", "LSL" => "/m/04xm1m", "LYD" => "/m/024xpm", "MAD" => "/m/06qsj1", "MDL" => "/m/02z6sq", "MGA" => "/m/04hx_7", "MKD" => "/m/022dkb", "MMK" => "/m/04r7gc", "MOP" => "/m/02fbly", "MRO" => "/m/023c2n", "MUR" => "/m/02scxb", "MVR" => "/m/02gsxf", "MWK" => "/m/0fr4w", "MXN" => "/m/012ts8", "MYR" => "/m/01_c9q", "MZN" => "/m/05yxqw", "NAD" => "/m/01y8jz", "NGN" => "/m/018cg3", "NIO" => "/m/02fvtk", "NOK" => "/m/0h5dw", "NPR" => "/m/02f4f4", "NZD" => "/m/015f1d", "OMR" => "/m/04_66x", "PAB" => "/m/0200cp", "PEN" => "/m/0b423v", "PGK" => "/m/04xblj", "PHP" => "/m/01h5bw", "PKR" => "/m/02svsf", "PLN" => "/m/0glfp", "PYG" => "/m/04w7dd", "QAR" => "/m/05lf7w", "RON" => "/m/02zsyq", "RSD" => "/m/02kz6b", "RUB" => "/m/01hy_q", "RWF" => "/m/05yxkm", "SAR" => "/m/02d1cm", "SBD" => "/m/05jpx1", "SCR" => "/m/01lvjz", "SDG" => "/m/08d4zw", "SEK" => "/m/0485n", "SGD" => "/m/02f32g", "SLL" => "/m/02vqvn", "SOS" => "/m/05yxgz", "SRD" => "/m/02dl9v", "SSP" => "/m/08d4zw", "STD" => "/m/06xywz", "SZL" => "/m/02pmxj", "THB" => "/m/0mcb5", "TJS" => "/m/0370bp", "TMT" => "/m/0425kx", "TND" => "/m/04z4ml", "TOP" => "/m/040qbv", "TRY" => "/m/04dq0w", "TTD" => "/m/04xcgz", "TWD" => "/m/01t0lt", "TZS" => "/m/04s1qh", "UAH" => "/m/035qkb", "UGX" => "/m/04b6vh", "USD" => "/m/09nqf", "UYU" => "/m/04wblx", "UZS" => "/m/04l7bl", "VEF" => "/m/021y_m", "VND" => "/m/03ksl6", "XAF" => "/m/025sw2b", "XCD" => "/m/02r4k", "XOF" => "/m/025sw2q", "XPF" => "/m/01qyjx", "YER" => "/m/05yxwz", "ZAR" => "/m/01rmbs", "ZMW" => "/m/0fr4f" ); $data = ''; if ( $country_code && isset( $countries[ $country_code ] ) ) { $data = $countries[ $country_code ]; } return $data; } /**Set currency in Cookie * * @param $currency_code * @param bool $checkout */ public function set_current_currency( $currency_code, $checkout = true ) { if ( $currency_code ) { $this->setcookie( 'wmc_current_currency', $currency_code, time() + 60 * 60 * 24, '/' ); } if ( ! $this->get_enable_multi_payment() && $checkout ) { $this->setcookie( 'wmc_current_currency_old', $currency_code, time() + 60 * 60 * 24, '/' ); } } /** * Set Cookie or Session * * @param $name * @param $value * @param int $time * @param string $path */ public function setcookie( $name, $value, $time = 86400, $path = '/' ) { @setcookie( $name, $value, $time, $path ); $_COOKIE[ $name ] = $value; } /** * Check enable pay with multi currencies * @return mixed */ public function get_enable_multi_payment() { return apply_filters( 'wmc_get_enable_multi_payment', $this->params['enable_multi_payment'] ); } /**Get currency by country with WPML.org * * @param $language_slug * * @return array|mixed */ public function get_wpml_currency_by_language( $language_slug ) { if ( $language_slug ) { if ( isset( $this->params[ $language_slug . '_wpml_by_language' ] ) ) { $currency_code = $this->params[ $language_slug . '_wpml_by_language' ]; } else { return array(); } return apply_filters( 'wmc_get_currency_wpml_by_language' . $language_slug, $currency_code ); } else { return array(); } } /**Get currency by language * * @param $language_slug * * @return array|mixed */ public function get_currency_by_language( $language_slug ) { if ( $language_slug ) { if ( isset( $this->params[ $language_slug . '_by_language' ] ) ) { $currency_code = $this->params[ $language_slug . '_by_language' ]; } else { return array(); } return apply_filters( 'wmc_get_currency_by_language_' . $language_slug, $currency_code ); } else { return array(); } } /**Get currency by country * * @param $currency_code * * @return array|mixed */ public function get_currency_by_countries( $currency_code ) { if ( $currency_code ) { if ( isset( $this->params[ $currency_code . '_by_country' ] ) ) { $countries_code = $this->params[ $currency_code . '_by_country' ]; } else { return array(); } return apply_filters( 'wmc_get_currency_by_countries_' . $currency_code, $countries_code ); } else { return array(); } } /**Get payments available by currency code. * * @param $currency_code * * @return array|mixed */ public function get_payments_by_currency( $currency_code ) { if ( $currency_code ) { if ( isset( $this->params[ 'currency_payment_method_' . $currency_code ] ) ) { $payments = $this->params[ 'currency_payment_method_' . $currency_code ]; } else { return array(); } return apply_filters( 'wmc_get_payments_by_currency_' . $currency_code, $payments ); } else { return array(); } } /** * Check enable currency by country * @return mixed */ public function get_enable_currency_by_country() { return apply_filters( 'wmc_get_enable_currency_by_country', $this->params['enable_currency_by_country'] ); } /** * Get type of auto detect * @return mixed */ public function get_auto_detect() { return apply_filters( 'wmc_get_auto_detect', $this->params['auto_detect'] ); } /** * Check Enable plugin * @return mixed */ public function get_enable() { return apply_filters( 'wmc_get_enable', $this->params['enable'] ); } /** * Get currency default * @return mixed */ public function get_default_currency() { return apply_filters( 'wmc_get_default_currency', $this->params['currency_default'] ); } public function get_param( $param ) { return isset( $this->params[ $param ] ) ? $this->params[ $param ] : ''; } public static function is_request_to_rest_api() { if ( empty( $_SERVER['REQUEST_URI'] ) ) { return false; } $rest_prefix = '/' . untrailingslashit( rest_get_url_prefix() ) . '/'; $request_uri = esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ) ); return false !== strpos( $request_uri, $rest_prefix ); } public static function get_rel_nofollow() { $instance = self::get_ins(); return $instance->get_param( 'rel_nofollow' ) ? 'rel=nofollow' : ''; } public function get_params( $name = "", $language = '' ) { if ( ! $name ) { return $this->params; } elseif ( isset( $this->params[ $name ] ) ) { if ( $language ) { $name_language = $name . '_' . $language; if ( isset( $this->params[ $name_language ] ) ) { return apply_filters( 'woo_multi_currency_params-' . $name_language, $this->params[ $name_language ] ); } else { return apply_filters( 'woo_multi_currency_params-' . $name_language, $this->params[ $name ] ); } } else { return apply_filters( 'woo_multi_currency_params-' . $name, $this->params[ $name ] ); } } else { return false; } } /** * @param $price * @param array $args * * @return float */ public static function convert_price_to_float( $price, $args = array() ) { $args = apply_filters( 'wc_price_args', wp_parse_args( $args, array( 'ex_tax_label' => false, 'currency' => '', 'decimal_separator' => wc_get_price_decimal_separator(), 'thousand_separator' => wc_get_price_thousand_separator(), 'decimals' => wc_get_price_decimals(), 'price_format' => get_woocommerce_price_format(), ) ) ); $original_price = $price; $negative = $price < 0; $price = apply_filters( 'raw_woocommerce_price', floatval( $negative ? $price * - 1 : $price ), $original_price ); $price = apply_filters( 'formatted_woocommerce_price', number_format( $price, $args['decimals'], $args['decimal_separator'], $args['thousand_separator'] ), $price, $args['decimals'], $args['decimal_separator'], $args['thousand_separator'] ); return floatval( str_replace( array( $args['thousand_separator'], $args['decimal_separator'] ), array( '', '.' ), $price ) ); } public function set_fallback_currency() { $default_currency = $this->get_default_currency(); $list_currencies = $this->get_list_currencies(); if ( $list_currencies[ $default_currency ]['hide'] !== '1' ) { $this->set_current_currency( $default_currency ); } else { $need_set_default = true; foreach ( $list_currencies as $currency_code => $currency_data ) { if ( $currency_data['hide'] !== '1' ) { $this->set_current_currency( $currency_code ); $need_set_default = false; break; } } if ( $need_set_default ) { $this->set_current_currency( $default_currency ); } } } public static function wp_kses_post( $content ) { if ( self::$allow_html === null ) { self::$allow_html = wp_kses_allowed_html( 'post' ); self::$allow_html = array_merge_recursive( self::$allow_html, array( 'input' => array( 'type' => 1, 'id' => 1, 'name' => 1, 'class' => 1, 'placeholder' => 1, 'autocomplete' => 1, 'style' => 1, 'value' => 1, 'size' => 1, 'checked' => 1, 'disabled' => 1, 'readonly' => 1, 'data-*' => 1, ), 'form' => array( 'method' => 1, 'id' => 1, 'class' => 1, 'action' => 1, 'data-*' => 1, ), 'select' => array( 'id' => 1, 'name' => 1, 'class' => 1, 'multiple' => 1, 'onchange' => 1, 'data-*' => 1, ), 'option' => array( 'value' => 1, 'selected' => 1, 'data-*' => 1, ), ) ); foreach ( self::$allow_html as $key => $value ) { if ( $key === 'input' ) { self::$allow_html[ $key ]['data-*'] = 1; self::$allow_html[ $key ]['checked'] = 1; self::$allow_html[ $key ]['disabled'] = 1; self::$allow_html[ $key ]['readonly'] = 1; } elseif ( in_array( $key, array( 'div', 'span', 'a', 'form', 'select', 'option', 'tr', 'td' ) ) ) { self::$allow_html[ $key ]['data-*'] = 1; } } } add_filter( 'safe_style_css', array( __CLASS__, 'safe_style_css' ) ); add_filter( 'safecss_filter_attr_allow_css', array( __CLASS__, 'safecss_filter_attr_allow_css' ), 10, 2 ); $content = wp_kses( $content, self::$allow_html ); remove_filter( 'safe_style_css', array( __CLASS__, 'safe_style_css' ) ); remove_filter( 'safecss_filter_attr_allow_css', array( __CLASS__, 'safecss_filter_attr_allow_css' ) ); return $content; } /** * Allow transform * * @param $allow_css * @param $css_test_string * * @return bool */ public static function safecss_filter_attr_allow_css( $allow_css, $css_test_string ) { if ( $css_test_string ) { if ( explode( ':', $css_test_string )[0] === 'transform' ) { $allow_css = true; } } return $allow_css; } /** * Support transform * * @param $css * * @return array */ public static function safe_style_css( $css ) { $css[] = 'transform'; return $css; } }
| ver. 1.6 |
Github
|
.
| PHP 8.1.34 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка