Файловый менеджер - Редактировать - /home/tuudkjt/globeasy/wp-content/plugins/woo-multi-currency/plugins/google_index.php
Назад
<?php /** * Created by PhpStorm. * User: Villatheme-Thanh * Date: 30-09-19 * Time: 8:18 AM */ if ( ! defined( 'ABSPATH' ) ) { exit; } //$_SERVER['HTTP_USER_AGENT']='/google.com'; class WOOMULTI_CURRENCY_F_Plugin_Google_Index { protected $settings; protected $woosea_currency; public function __construct() { $this->settings = WOOMULTI_CURRENCY_F_Data::get_ins(); if ( $this->settings->get_enable() ) { add_action( 'init', array( $this, 'set_currency_for_bot' ), 999 ); /* Google Listings and Ads */ add_filter( 'woocommerce_gla_product_attribute_values', [ $this, 'modify_gg_product_attributes' ], 10, 3 ); // add_filter( 'woocommerce_gla_product_attribute_value_price', [ $this, 'convert_currency_regular_price' ], 10, 3 ); /*WooCommerce Google Product Feed - Ademti Software Ltd*/ add_filter( 'woocommerce_gpf_feed_item', [ $this, 'add_currency_arg_to_product_permalinks' ], 10, 2 ); add_filter( 'wmc_woosea_product_data', [ $this, 'woosea_product_permalinks' ], 10 ); add_action( 'woosea_start_render_product_feed', [ $this, 'add_change_price_hook' ], 10 ); add_action( 'woosea_end_render_product_feed', [ $this, 'remove_change_price_hook' ], 10 ); } } public function set_currency_for_bot() { $bot_currency = false; if ( $this->is_google_bot() ) { $bot_currency = apply_filters( 'wmc_set_currency_for_google_bot_index', $this->get_bot_currency() ); } elseif ( $this->isBot() ) { $bot_currency = apply_filters( 'wmc_set_currency_for_bot_index', $this->get_bot_currency() ); } if ( $bot_currency !== false ) { if ( $bot_currency ) { $this->settings->set_current_currency( $bot_currency ); } else { $this->settings->set_fallback_currency(); } } } private function get_bot_currency() { if ( isset( $_REQUEST['_woo_multi_currency_nonce'] ) && ! wp_verify_nonce( sanitize_text_field( $_REQUEST['_woo_multi_currency_nonce'] ), 'woo_multi_currency_plugin' ) ) { return ''; } $bot_currency = $this->settings->get_params( 'bot_currency' ); $list_currencies = $this->settings->get_list_currencies(); if ( $bot_currency === 'default_currency' ) { $bot_currency = $this->settings->get_default_currency(); } elseif ( $bot_currency ) { if ( empty( $list_currencies[ $bot_currency ] ) ) { $bot_currency = ''; } } $passed_currency = ''; if ( ! empty( $_GET['wmc-currency'] ) ) { $passed_currency = sanitize_text_field( $_GET['wmc-currency'] ); } elseif ( ! empty( $_GET['currency'] ) ) { $passed_currency = sanitize_text_field( $_GET['currency'] ); } if ( $passed_currency ) { if ( ! empty( $list_currencies[ $passed_currency ] ) ) { $bot_currency = $passed_currency; } } return $bot_currency; } public function is_google_bot() { $google_bots = apply_filters( 'wmc_google_bots_list', array( 'googlebot', 'google-sitemaps', 'appEngine-google', 'feedfetcher-google', 'googlealert.com', 'AdsBot-Google', 'google' ) ); foreach ( $google_bots as $bot ) { if ( self::check_bot( $bot ) ) { return true; } } return false; } public function isBot() { $bots = apply_filters( 'wmc_other_bots_list', array( // 'pixel',//confused with google pixel device 'facebook', 'rambler', 'aport', 'yahoo', 'msnbot', 'turtle', 'mail.ru', 'omsktele', 'yetibot', 'picsearch', 'sape.bot', 'sape_context', 'gigabot', 'snapbot', 'alexa.com', 'megadownload.net', 'askpeter.info', 'igde.ru', 'ask.com', 'qwartabot', 'yanga.co.uk', 'scoutjet', 'similarpages', 'oozbot', 'shrinktheweb.com', 'aboutusbot', 'followsite.com', 'dataparksearch', 'liveinternet.ru', 'xml-sitemaps.com', 'agama', 'metadatalabs.com', 'h1.hrn.ru', 'seo-rus.com', 'yaDirectBot', 'yandeG', 'yandex', 'yandexSomething', 'Copyscape.com', 'domaintools.com', 'Nigma.ru', 'bing.com', 'dotnetdotcom', ) ); foreach ( $bots as $bot ) { if ( self::check_bot( $bot ) ) { return true; } } return false; } private static function check_bot( $bot ) { return isset( $_SERVER['HTTP_USER_AGENT'] ) && ( stripos( $_SERVER['HTTP_USER_AGENT'], $bot ) !== false || preg_match( '/bot|crawl|slurp|spider|mediapartners/i', $_SERVER['HTTP_USER_AGENT'] ) ); } public function add_currency_query_to_product_link( $link ) { $bot_currency = $this->settings->get_params( 'bot_currency' ); $list_currencies = $this->settings->get_currencies(); if ( $bot_currency === 'default_currency' ) { $bot_currency = $this->settings->get_default_currency(); } elseif ( $bot_currency ) { if ( ! in_array( $bot_currency, $list_currencies ) ) { $bot_currency = ''; } } return $bot_currency ? add_query_arg( [ 'wmc-currency' => $bot_currency ], $link ) : $link; } /** * @param $attributes * @param $product WC_Product * @param $adapter * * @return mixed */ public function modify_gg_product_attributes( $attributes, $product, $adapter ) { $link = ! empty( $attributes['link'] ) ? $attributes['link'] : $product->get_permalink(); $attributes['link'] = $this->add_currency_query_to_product_link( $link ); return $attributes; } public function convert_currency_regular_price( $price, $product, $tax_excluded ) { return $price; } public function add_currency_arg_to_product_permalinks( $feed_item, $wc_product ) { $feed_item->purchase_link = $this->add_currency_query_to_product_link( $feed_item->purchase_link ); return $feed_item; } public function woosea_product_permalinks( $product_data ) { if ( ! empty( $product_data['link'] ) ) { $product_data['link'] = $this->add_currency_query_to_product_link( $product_data['link'] ); } return $product_data; } public function add_change_price_hook() { /*Simple product*/ add_filter( 'woocommerce_product_get_regular_price', array( $this, 'convert_price' ), 99, 2 ); add_filter( 'woocommerce_product_get_sale_price', array( $this, 'convert_price' ), 99, 2 ); add_filter( 'woocommerce_product_get_price', array( $this, 'convert_price' ), 99, 2 ); /*Variable price*/ add_filter( 'woocommerce_product_variation_get_price', array( $this, 'convert_price' ), 99, 2 ); add_filter( 'woocommerce_product_variation_get_regular_price', array( $this, 'convert_price' ), 99, 2 ); add_filter( 'woocommerce_product_variation_get_sale_price', array( $this, 'convert_price' ), 99, 2 ); } public function remove_change_price_hook() { /*Simple product*/ remove_filter( 'woocommerce_product_get_regular_price', array( $this, 'convert_price' ), 99 ); remove_filter( 'woocommerce_product_get_sale_price', array( $this, 'convert_price' ), 99 ); remove_filter( 'woocommerce_product_get_price', array( $this, 'convert_price' ), 99 ); /*Variable price*/ remove_filter( 'woocommerce_product_variation_get_price', array( $this, 'convert_price' ), 99 ); remove_filter( 'woocommerce_product_variation_get_regular_price', array( $this, 'convert_price' ), 99 ); remove_filter( 'woocommerce_product_variation_get_sale_price', array( $this, 'convert_price' ), 99 ); } public function convert_price( $price, $product ) { if ( ! $price ) { return $price; } if ( ! $this->woosea_currency ) { $this->woosea_currency = $this->settings->get_params( 'bot_currency' ); $list_currencies = $this->settings->get_currencies(); if ( $this->woosea_currency === 'default_currency' ) { $this->woosea_currency = $this->settings->get_default_currency(); } elseif ( $this->woosea_currency ) { if ( ! in_array( $this->woosea_currency, $list_currencies ) ) { $this->woosea_currency = ''; } } } if ( $this->woosea_currency ) { $price = wmc_get_price( $price, $this->woosea_currency ); } return $price; } }
| ver. 1.6 |
Github
|
.
| PHP 8.1.34 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка