Файловый менеджер - Редактировать - /var/www/xthruster/html/wp-content/uploads/flags/cookie.tar
Назад
class-wpml-cookie-admin-ui.php 0000644 00000003627 14721744245 0012331 0 ustar 00 <?php /** * Class WPML_Cookie_Admin_UI */ class WPML_Cookie_Admin_UI { const BOX_TEMPLATE = 'admin-cookie-box.twig'; const BUTTON_ID = 'js-wpml-store-frontend-cookie'; /** * @var WPML_Twig_Template */ private $template_service; /** * @var WPML_Cookie_Setting */ private $cookie_setting; /** * WPML_Cookie_Admin_UI constructor. * * @param WPML_Twig_Template $template_service * @param WPML_Cookie_Setting $cookie_setting */ public function __construct( WPML_Twig_Template $template_service, WPML_Cookie_Setting $cookie_setting ) { $this->template_service = $template_service; $this->cookie_setting = $cookie_setting; } public function add_hooks() { add_action( 'wpml_after_settings', array( $this, 'render_cookie_box' ) ); } public function render_cookie_box() { echo $this->template_service->show( $this->get_model(), self::BOX_TEMPLATE ); } /** * @return array */ private function get_model() { return array( 'strings' => array( 'title' => __( 'Language filtering for AJAX operations', 'sitepress' ), 'field_name' => WPML_Cookie_Setting::COOKIE_SETTING_FIELD, 'field_label' => __( 'Store a language cookie to support language filtering for AJAX', 'sitepress' ), 'tooltip' => __( 'Select this option if your theme or plugins use AJAX operations on the front-end, that WPML needs to filter. WPML will set a cookie using JavaScript which will allow it to return the correct content for AJAX operations.', 'sitepress' ), 'button_text' => __( 'Save', 'sitepress' ), 'button_id' => self::BUTTON_ID, ), 'ajax_response_id' => WPML_Cookie_Setting_Ajax::AJAX_RESPONSE_ID, 'nonce_field' => WPML_Cookie_Setting_Ajax::NONCE_COOKIE_SETTING, 'nonce_value' => wp_create_nonce( WPML_Cookie_Setting_Ajax::NONCE_COOKIE_SETTING ), 'checked' => checked( $this->cookie_setting->get_setting(), true, false ), ); } } class-wpml-cookie-admin-scripts.php 0000644 00000001546 14721744245 0013401 0 ustar 00 <?php /** * Class WPML_Cookie_Admin_Scripts */ class WPML_Cookie_Admin_Scripts { public function enqueue() { add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); } public function enqueue_scripts() { wp_enqueue_style( 'wp-pointer' ); wp_enqueue_script( 'wpml-cookie-ajax-setting', ICL_PLUGIN_URL . '/res/js/cookies/cookie-ajax-setting.js', array( 'jquery', 'wp-pointer' ), ICL_SITEPRESS_VERSION ); wp_localize_script( 'wpml-cookie-ajax-setting', 'wpml_cookie_setting', array( 'nonce' => WPML_Cookie_Setting_Ajax::NONCE_COOKIE_SETTING, 'button_id' => WPML_Cookie_Admin_UI::BUTTON_ID, 'ajax_response_id' => WPML_Cookie_Setting_Ajax::AJAX_RESPONSE_ID, 'field_name' => WPML_Cookie_Setting::COOKIE_SETTING_FIELD, 'ajax_action' => WPML_Cookie_Setting_Ajax::ACTION, ) ); } } class-wpml-cookie-scripts.php 0000644 00000002067 14721744245 0012312 0 ustar 00 <?php /** * Class WPML_Cookie_Scripts */ class WPML_Cookie_Scripts { /** * @var string */ private $language_cookie_name; /** * @var string */ private $current_language; /** * WPML_Cookie_Scripts constructor. * * @param string $language_cookie_name * @param string $current_language */ public function __construct( $language_cookie_name, $current_language ) { $this->language_cookie_name = $language_cookie_name; $this->current_language = $current_language; } public function add_hooks() { add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), - PHP_INT_MAX ); } public function enqueue_scripts() { wp_enqueue_script( 'wpml-cookie', ICL_PLUGIN_URL . '/res/js/cookies/language-cookie.js', array(), ICL_SITEPRESS_VERSION, false ); wp_script_add_data( 'wpml-cookie', 'strategy', 'defer' ); $cookies = array( $this->language_cookie_name => array( 'value' => $this->current_language, 'expires' => 1, 'path' => '/', ), ); wp_localize_script( 'wpml-cookie', 'wpml_cookies', $cookies ); } } class-wpml-cookie-setting-ajax.php 0000644 00000003045 14721744245 0013216 0 ustar 00 <?php /** * Class WPML_Frontend_Cookie_Setting_Ajax */ class WPML_Cookie_Setting_Ajax { const NONCE_COOKIE_SETTING = 'wpml-frontend-cookie-setting-nonce'; const AJAX_RESPONSE_ID = 'icl_ajx_response_cookie'; const ACTION = 'wpml_update_cookie_setting'; /** * @var WPML_Cookie_Setting */ private $wpml_frontend_cookie_setting; /** * WPML_Frontend_Cookie_Setting_Ajax constructor. * * @param WPML_Cookie_Setting $wpml_frontend_cookie_setting */ public function __construct( WPML_Cookie_Setting $wpml_frontend_cookie_setting ) { $this->wpml_frontend_cookie_setting = $wpml_frontend_cookie_setting; } public function add_hooks() { add_action( 'wp_ajax_wpml_update_cookie_setting', array( $this, 'update_cookie_setting' ) ); } public function update_cookie_setting() { if ( ! $this->is_valid_request() ) { wp_send_json_error(); } else { if ( array_key_exists( WPML_Cookie_Setting::COOKIE_SETTING_FIELD, $_POST ) ) { $store_frontend_cookie = filter_var( $_POST[ WPML_Cookie_Setting::COOKIE_SETTING_FIELD ], FILTER_SANITIZE_NUMBER_INT, FILTER_NULL_ON_FAILURE ); $this->wpml_frontend_cookie_setting->set_setting( $store_frontend_cookie ); } else { $this->wpml_frontend_cookie_setting->set_setting( 0 ); } wp_send_json_success(); } } /** * @return bool */ private function is_valid_request() { $valid_request = false; if ( array_key_exists( 'nonce', $_POST ) ) { $valid_request = wp_verify_nonce( $_POST['nonce'], self::NONCE_COOKIE_SETTING ); } return $valid_request; } } class-wpml-cookie.php 0000644 00000003737 14721744245 0010632 0 ustar 00 <?php class WPML_Cookie { /** * @param string $name * @param string $value * @param int $expires * @param string $path * @param string $domain * @param bool $HTTPOnly * @param string|null $sameSite */ public function set_cookie( $name, $value, $expires, $path, $domain, $HTTPOnly = false, $sameSite = null ) { wp_cache_add_non_persistent_groups( __CLASS__ ); $entryHash = md5( (string) wp_json_encode( [ $name, $value, $path, $domain, $HTTPOnly, $sameSite ] ) ); if ( wp_cache_get( $name, __CLASS__ ) !== $entryHash ) { $this->handle_cache_plugins( $name ); if ($sameSite) { header( 'Set-Cookie: ' . rawurlencode( $name ) . '=' . rawurlencode( $value ) . ( $domain ? '; Domain=' . $domain : '' ) . ( $expires ? '; expires=' . gmdate( 'D, d-M-Y H:i:s', $expires ) . ' GMT' : '' ) . ( $path ? '; Path=' . $path : '' ) . ( $this->is_secure_connection() ? '; Secure' : '') . ( $HTTPOnly ? '; HttpOnly' : '' ) . '; SameSite=' . $sameSite, false ); } else { setcookie( $name, (string) $value, $expires, $path, $domain, $this->is_secure_connection(), $HTTPOnly ); } wp_cache_set( $name, $entryHash, __CLASS__ ); } } /** * @param string $name * * @return string */ public function get_cookie( $name ) { if ( isset( $_COOKIE[ $name ] ) ) { return $_COOKIE[ $name ]; } return ''; } /** * simple wrapper for \headers_sent * * @return bool */ public function headers_sent() { return headers_sent(); } /** * @param string $name */ private function handle_cache_plugins( $name ) { // @todo uncomment or delete when #wpmlcore-5796 is resolved // do_action( 'wpsc_add_cookie', $name ); } private function is_secure_connection() { if ( \WPML\FP\Obj::prop( 'HTTPS', $_SERVER ) === 'on' || \WPML\FP\Obj::prop( 'HTTP_X_FORWARDED_PROTO', $_SERVER ) === 'https' || \WPML\FP\Obj::prop( 'HTTP_X_FORWARDED_SSL', $_SERVER ) === 'on' ) { return true; } return false; } } class-wpml-cookie-setting.php 0000644 00000001275 14721744245 0012300 0 ustar 00 <?php /** * Class WPML_Frontend_Cookie_Setting */ class WPML_Cookie_Setting { const COOKIE_SETTING_FIELD = 'store_frontend_cookie'; /** * @var SitePress */ private $sitepress; /** * WPML_Frontend_Cookie_Setting constructor. * * @param SitePress $sitepress */ public function __construct( SitePress $sitepress ) { $this->sitepress = $sitepress; } /** * @return bool|mixed */ public function get_setting() { return $this->sitepress->get_setting( self::COOKIE_SETTING_FIELD ); } /** * @param mixed $value */ public function set_setting( $value ) { $this->sitepress->set_setting( self::COOKIE_SETTING_FIELD, $value ); $this->sitepress->save_settings(); } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.3-4ubuntu2.24 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка