Файловый менеджер - Редактировать - /home/adiggxhn/it-latam.com/wp-content/plugins/bdthemes-element-pack/base/element-pack-base.php
Ðазад
<?php namespace ElementPack\Base; // DO NOT CHNAGE ANYTHING IN THIS FILE OTHERSWISE YOUR LICENSE CAN BAN use stdClass; if (!defined('ABSPATH')) { exit; // Exit if accessed directly } if (!class_exists("Element_Pack_Base")) { class Element_Pack_Base { public $key = "SUvVv38UjeXLENL9"; private $product_id = "1"; private $product_base = "element_pack_options"; private $server_host = "https://licenses.bdthemes.co/wp-json/api/"; private $has_check_update = true; private $plugin_file; private $theme_dir_name = ''; private static $selfobj = null; private $version = ""; private $is_theme = false; private $email_address = ""; private static $_on_delete_license = []; function __construct($plugin_base_file = '') { if (empty($plugin_base_file)) { $dir = str_replace('\\', '/', dirname(__FILE__)); } else { $dir = str_replace('\\', '/', dirname($plugin_base_file)); } if (strpos($dir, 'wp-content/themes') !== FALSE) { $this->is_theme = true; $this->theme_dir_name = self::get_this_theme_path_name(); $theme_data = wp_get_theme($this->theme_dir_name); $version = $theme_data->get('Version'); if (!empty($version)) { $this->version = $version; } } $this->plugin_file = $plugin_base_file; if (empty($this->plugin_file) && $this->is_theme) { $this->plugin_file = self::get_this_theme_path(); } if (empty($this->version)) { $this->version = $this->get_current_version(); } if ($this->has_check_update) { if (function_exists("add_action")) { add_action('admin_post_element_pack_options_fupc', function () { update_option('_site_transient_update_plugins', ''); update_option('_site_transient_update_themes', ''); set_site_transient('update_themes', null); delete_transient($this->product_base . "_up"); wp_redirect(admin_url('plugins.php')); exit; }); add_action('init', [$this, "init_action_handler"]); } if (function_exists("add_filter")) { if ($this->is_theme) { add_filter('pre_set_site_transient_update_themes', [$this, "plugin_update"]); add_filter('themes_api', [$this, 'check_update_info'], 10, 3); add_action('admin_menu', function () { add_theme_page('Update Check', 'Update Check', 'edit_theme_options', 'update_check', [$this, "theme_force_update"]); }, 999); } else { add_filter('pre_set_site_transient_update_plugins', [$this, "plugin_update"]); add_filter('plugins_api', [$this, 'check_update_info'], 10, 3); add_filter('plugin_row_meta', function ($links, $plugin_file) { if (plugin_basename($this->plugin_file) == $plugin_file) { $links[] = " <a class='edit coption' href='" . esc_url(admin_url('admin-post.php') . '?action=element_pack_options_fupc') . "'>Update Check</a>"; } return $links; }, 10, 2); add_action("in_plugin_update_message-" . plugin_basename($this->plugin_file), [$this, 'update_message_cb'], 20, 2); } add_action('upgrader_process_complete', function ($upgrader_object, $options) { update_option('_site_transient_update_plugins', ''); update_option('_site_transient_update_themes', ''); set_site_transient('update_themes', null); }, 10, 2); } } } public function theme_force_update() { $this->clean_update_info(); $url = admin_url('themes.php'); echo wp_kses_post('<h1>' . __("Update Checking..", "bdthemes-element-pack") . '</h1>'); call_user_func('printf', '%s', "<script>location.href = '" . $url . "'</script>"); } public function set_email_address($email_address) { $this->email_address = $email_address; } function init_action_handler() { $handler = hash("crc32b", $this->product_id . $this->key . $this->get_domain()) . "_handle"; if (isset($_GET['action']) && $_GET['action'] == $handler) { $this->handle_server_request(); exit; } } function handle_server_request() { $type = isset($_GET['type']) ? strtolower(sanitize_text_field(wp_unslash($_GET['type']))) : ''; switch ($type) { case "rl": //remove license $this->clean_update_info(); $this->remove_old_wp_response(); $obj = new stdClass(); $obj->product = $this->product_id; $obj->status = true; call_user_func('printf', '%s', $this->encrypt_obj($obj)); return; case "rc": //remove license $key = $this->getKeyName(); delete_option($key); $obj = new stdClass(); $obj->product = $this->product_id; $obj->status = true; call_user_func('printf', '%s', $this->encrypt_obj($obj)); return; case "dl": //delete plugins $obj = new stdClass(); $obj->product = $this->product_id; $obj->status = false; $this->remove_old_wp_response(); require_once(ABSPATH . 'wp-admin/includes/file.php'); if ($this->is_theme) { $res = delete_theme($this->plugin_file); if (!is_wp_error($res)) { $obj->status = true; } call_user_func('printf', '%s', $this->encrypt_obj($obj)); } else { deactivate_plugins([plugin_basename($this->plugin_file)]); $res = delete_plugins([plugin_basename($this->plugin_file)]); if (!is_wp_error($res)) { $obj->status = true; } call_user_func('printf', '%s', $this->encrypt_obj($obj)); } return; default: return; } } /** * The addOnDelete is generated by appsbd * @param mixed $func * @see add_on_delete() * @deprecated deprecated */ static function addOnDelete($func) { self::add_on_delete($func); } /** * @param callable $func */ static function add_on_delete($func) { self::$_on_delete_license[] = $func; } function get_current_version() { if (!function_exists('get_plugin_data')) { require_once(ABSPATH . 'wp-admin/includes/plugin.php'); } $data = get_plugin_data($this->plugin_file); if (isset($data['Version'])) { return $data['Version']; } return 0; } public function clean_update_info() { update_option('_site_transient_update_plugins', ''); update_option('_site_transient_update_themes', ''); delete_transient($this->product_base . "_up"); } public function update_message_cb($data, $response) { if (is_array($data)) { $data = (object)$data; } if (isset($data->package) && empty($data->package)) { if (empty($data->update_denied_type)) { print "<br/><span style='display: block; border-top: 1px solid #ccc;padding-top: 5px; margin-top: 10px;'>Please <strong>active product</strong> or <strong>renew support period</strong> to get latest version</span>"; } elseif ("L" == $data->update_denied_type) { print "<br/><span style='display: block; border-top: 1px solid #ccc;padding-top: 5px; margin-top: 10px;'>Please <strong>active product</strong> to get latest version</span>"; } elseif ("S" == $data->update_denied_type) { print "<br/><span style='display: block; border-top: 1px solid #ccc;padding-top: 5px; margin-top: 10px;'>Please <strong>renew support period</strong> to get latest version</span>"; } } } function el_plugin_update_info() { if (function_exists("wp_remote_get")) { $response = get_transient($this->product_base . "_up"); $old_found = false; if (!empty($response['data'])) { $response = unserialize($this->decrypt($response['data'])); if (is_array($response)) { $old_found = true; } } if (!$old_found) { $license_info = self::get_register_info(); $url = $this->server_host . "product/update/" . $this->product_id; if (!empty($license_info->license_key)) { $url .= "/" . $license_info->license_key . "/" . $this->version; } $args = [ 'sslverify' => true, 'timeout' => 120, 'redirection' => 5, 'cookies' => array() ]; $response = wp_remote_get($url, $args); if (is_wp_error($response)) { $args['sslverify'] = false; $response = wp_remote_get($url, $args); } } if (!is_wp_error($response)) { $body = $response['body']; $response_json = @json_decode($body); if (!$old_found) { set_transient($this->product_base . "_up", ["data" => $this->encrypt(serialize(['body' => $body]))], DAY_IN_SECONDS); } if (!(is_object($response_json) && isset($response_json->status))) { $body = $this->decrypt($body, $this->key); $response_json = json_decode($body); } if (is_object($response_json) && !empty($response_json->status) && !empty($response_json->data->new_version)) { $response_json->data->slug = plugin_basename($this->plugin_file);; $response_json->data->new_version = !empty($response_json->data->new_version) ? $response_json->data->new_version : ""; $response_json->data->url = !empty($response_json->data->url) ? $response_json->data->url : ""; $response_json->data->package = !empty($response_json->data->download_link) ? $response_json->data->download_link : ""; $response_json->data->update_denied_type = !empty($response_json->data->update_denied_type) ? $response_json->data->update_denied_type : ""; $response_json->data->sections = (array)$response_json->data->sections; $response_json->data->plugin = plugin_basename($this->plugin_file); $response_json->data->icons = (array)$response_json->data->icons; $response_json->data->banners = (array)$response_json->data->banners; $response_json->data->banners_rtl = (array)$response_json->data->banners_rtl; unset($response_json->data->is_stopped_update); return $response_json->data; } } } return null; } public static function get_this_theme_path_name() { $wp_theme_dir = str_replace('\\', '/', WP_CONTENT_DIR) . '/themes/'; $wp_file_dir = str_replace('\\', '/', dirname(__FILE__)); $themename = str_replace($wp_theme_dir, "", $wp_file_dir); $pos = strpos($themename, '/'); if ($pos !== false) { $themename = substr($themename, 0, $pos); } return $themename; } public static function get_this_theme_path() { $wp_theme_dir = str_replace('\\', '/', WP_CONTENT_DIR) . '/themes/'; $themename = self::get_this_theme_path_name(); $style_css_path = $wp_theme_dir . $themename . '/' . "style.css"; if (file_exists($style_css_path)) { return $style_css_path; } return get_stylesheet_directory(); } function plugin_update($transient) { if (empty($transient)) { $transient = new stdClass(); $transient->response = []; } $response = $this->el_plugin_update_info(); if (!empty($response->plugin)) { if ($this->is_theme) { $index_name = $this->theme_dir_name; $response->theme = $this->theme_dir_name; } else { $index_name = $response->plugin; } if (!empty($response) && version_compare($this->version, $response->new_version, '<')) { unset($response->download_link); unset($response->is_stopped_update); if ($this->is_theme) { $transient->response[$index_name] = (array)$response; } else { $transient->response[$index_name] = (object)$response; } } else { if (isset($transient->response[$index_name])) { unset($transient->response[$index_name]); } } } return $transient; } final function check_update_info($false, $action, $arg) { if (empty($arg->slug)) { return $false; } if ($this->is_theme) { if (!empty($arg->slug) && $this->product_base === $arg->slug) { $response = $this->el_plugin_update_info(); if (!empty($response)) { return $response; } } } else { if (!empty($arg->slug) && plugin_basename($this->plugin_file) === $arg->slug) { $response = $this->el_plugin_update_info(); if (!empty($response)) { return $response; } } } return $false; } // phpcs:ignore WordPress.NamingConventions.ValidFunctionName public static function &getInstance($plugin_base_file = null) { return self::get_instance($plugin_base_file); } /** * @param $plugin_base_file * * @return self|null */ public static function &get_instance($plugin_base_file = null) { if (empty(self::$selfobj)) { if (!empty($plugin_base_file)) { self::$selfobj = new self($plugin_base_file); } } return self::$selfobj; } /** * The get renew link is generated by appsbd * * @param mixed $response_obj * @param string $type * * @return string */ public static function get_renew_link($response_obj, $type = "s") { if (empty($response_obj->renew_link)) { return ""; } $is_show_button = false; if ('s' == $type) { $support_str = strtolower(trim($response_obj->support_end)); if (strtolower(trim($response_obj->support_end)) == "no support") { $is_show_button = true; } elseif (!in_array($support_str, ["unlimited"])) { if (strtotime('ADD 30 DAYS', strtotime($response_obj->support_end)) < time()) { $is_show_button = true; } } if ($is_show_button) { return $response_obj->renew_link . (strpos($response_obj->renew_link, "?") === FALSE ? '?type=s&lic=' . rawurlencode($response_obj->license_key) : '&type=s&lic=' . rawurlencode($response_obj->license_key)); } return ''; } else { $is_show_button = false; $expire_str = strtolower(trim($response_obj->expire_date)); if (!in_array($expire_str, ["unlimited", "no expiry"])) { if (strtotime('ADD 30 DAYS', strtotime($response_obj->expire_date)) < time()) { $is_show_button = true; } } if ($is_show_button) { return $response_obj->renew_link . (strpos($response_obj->renew_link, "?") === FALSE ? '?type=l&lic=' . rawurlencode($response_obj->license_key) : '&type=l&lic=' . rawurlencode($response_obj->license_key)); } return ''; } } private function encrypt($plain_text, $password = '') { if (empty($password)) { $password = $this->key; } $plain_text = rand(10, 99) . $plain_text . rand(10, 99); $method = 'aes-256-cbc'; $key = substr(hash('sha256', $password, true), 0, 32); $iv = substr(strtoupper(md5($password)), 0, 16); return $this->b64_en(openssl_encrypt($plain_text, $method, $key, OPENSSL_RAW_DATA, $iv)); } private function decrypt($encrypted, $password = '') { if (empty($password)) { $password = $this->key; } $method = 'aes-256-cbc'; $key = substr(hash('sha256', $password, true), 0, 32); $iv = substr(strtoupper(md5($password)), 0, 16); $plaintext = openssl_decrypt($this->b64_dc($encrypted), $method, $key, OPENSSL_RAW_DATA, $iv); return substr($plaintext, 2, -2); } function b64_dc($encrypted) { $b64 = preg_replace('#[^a-z0-9\_]#i', '', 'ba*s-e#6-4#_d$e!c#o!d#e'); return $b64($encrypted); } function b64_en($str) { $b64 = preg_replace('#[^a-z0-9\_]#i', '', 'ba*s-e#6-4#_e$n!c#o!d#e'); return $b64($str); } function encrypt_obj($obj) { $text = serialize($obj); return $this->encrypt($text); } private function decrypt_obj($ciphertext) { $text = $this->decrypt($ciphertext); return unserialize($text); } private function get_domain() { return self::get_raw_domain(); } private static function get_raw_domain() { // For multisite installations, use the main site URL for license validation // This allows a single license to work across all sites in the network if (is_multisite()) { // Get the main site URL if (function_exists("network_site_url")) { return network_site_url(); } elseif (function_exists("network_home_url")) { return network_home_url(); } } // For single site installations, use the regular site URL if (function_exists("site_url")) { return site_url(); } if (defined("WPINC") && function_exists("home_url")) { return esc_url(home_url()); } } private static function get_raw_wp() { $domain = self::get_raw_domain(); return preg_replace("(^https?://)", "", $domain); } public static function get_lic_key_param($key) { $raw_url = self::get_raw_wp(); return $key . "_s" . hash('crc32b', $raw_url); } /** * Check if this is a multisite installation and if license supports it * * @return array */ public static function get_multisite_info() { $info = array( 'is_multisite' => is_multisite(), 'main_site_url' => '', 'current_site_url' => '', 'license_domain' => '' ); if ($info['is_multisite']) { // Get main site URL if (function_exists("network_site_url")) { $info['main_site_url'] = network_site_url(); } elseif (function_exists("network_home_url")) { $info['main_site_url'] = network_home_url(); } // Get current site URL if (function_exists("site_url")) { $info['current_site_url'] = site_url(); } // License uses main site URL for validation $info['license_domain'] = $info['main_site_url']; } else { // Single site if (function_exists("site_url")) { $info['current_site_url'] = site_url(); $info['license_domain'] = $info['current_site_url']; } } return $info; } /** * Check if we're on a subsite and license is activated on main site * * @return array */ public static function get_subsite_license_status() { $status = array( 'is_subsite' => false, 'is_main_site_licensed' => false, 'main_site_url' => '', 'message' => '', 'debug_info' => array() ); if (is_multisite()) { // Check if this is NOT the main site $status['is_subsite'] = !is_main_site(); $status['debug_info']['is_multisite'] = true; $status['debug_info']['is_main_site'] = is_main_site(); if ($status['is_subsite']) { // Get main site URL if (function_exists("network_site_url")) { $status['main_site_url'] = network_site_url(); } elseif (function_exists("network_home_url")) { $status['main_site_url'] = network_home_url(); } // Check if license is activated (since we use main site domain for validation, // the license check will already be using the main site's license) $license_info = self::get_register_info(); $status['debug_info']['license_info_exists'] = !empty($license_info); if ($license_info) { $status['debug_info']['license_is_valid'] = !empty($license_info->is_valid); $status['debug_info']['license_key'] = !empty($license_info->license_key) ? substr($license_info->license_key, 0, 8) . '...' : 'not_set'; $status['debug_info']['license_title'] = !empty($license_info->license_title) ? $license_info->license_title : 'not_set'; } $status['debug_info']['main_site_id'] = get_main_site_id(); $status['debug_info']['current_blog_id'] = get_current_blog_id(); $status['is_main_site_licensed'] = !empty($license_info) && !empty($license_info->is_valid); if ($status['is_main_site_licensed']) { $status['message'] = sprintf( __('License is already activated on the main site (%s). No need to activate it again here.', 'bdthemes-element-pack'), $status['main_site_url'] ); } } } else { $status['debug_info']['is_multisite'] = false; } return $status; } private function get_eml() { return $this->email_address; } private function processs_response($response) { $resbk = ""; if (!empty($response)) { if (!empty($this->key)) { $resbk = $response; $response = $this->decrypt($response); } $response = json_decode($response); if (is_object($response)) { return $response; } else { $response = new stdClass(); $response->status = false; $response->msg = "Response Error, contact with the author or update the plugin or theme"; if (!empty($bkjson)) { $bkjson = @json_decode($resbk); if (!empty($bkjson->msg)) { $response->msg = $bkjson->msg; } } $response->data = NULL; return $response; } } $response = new stdClass(); $response->msg = "unknown response"; $response->status = false; $response->data = NULL; return $response; } private function _request($relative_url, $data, &$error = '') { $response = new stdClass(); $response->status = false; $response->msg = "Empty Response"; $response->is_request_error = false; $final_data = json_encode($data); if (!empty($this->key)) { $final_data = $this->encrypt($final_data); } $url = rtrim($this->server_host, '/') . "/" . ltrim($relative_url, '/'); if (function_exists('wp_remote_post')) { $rq_params = [ 'method' => 'POST', 'sslverify' => true, 'timeout' => 120, 'redirection' => 5, 'httpversion' => '1.0', 'blocking' => true, 'headers' => [], 'body' => $final_data, 'cookies' => [] ]; $server_response = wp_remote_post($url, $rq_params); if (is_wp_error($server_response)) { $rq_params['sslverify'] = false; $server_response = wp_remote_post($url, $rq_params); if (is_wp_error($server_response)) { $response->msg = $server_response->get_error_message();; $response->status = false; $response->data = NULL; $response->is_request_error = true; return $response; } else { if (!empty($server_response['body']) && (is_array($server_response) && 200 === (int)wp_remote_retrieve_response_code($server_response)) && 'GET404' != $server_response['body']) { return $this->processs_response($server_response['body']); } } } else { if (!empty($server_response['body']) && (is_array($server_response) && 200 === (int)wp_remote_retrieve_response_code($server_response)) && 'GET404' != $server_response['body']) { return $this->processs_response($server_response['body']); } } } $response->msg = "No valid request method works for license checking"; $response->status = false; $response->data = NULL; $response->is_request_error = true; return $response; } private function get_param($purchase_key, $app_version, $admin_email = '') { $req = new stdClass(); $req->license_key = $purchase_key; $req->email = !empty($admin_email) ? $admin_email : $this->get_eml(); $req->domain = $this->get_domain(); $req->app_version = $app_version; $req->product_id = $this->product_id; $req->product_base = $this->product_base; return $req; } private function get_key_name() { return hash('crc32b', $this->get_domain() . $this->plugin_file . $this->product_id . $this->product_base . $this->key . "LIC"); } private function save_wp_response($response) { $key = $this->get_key_name(); $data = $this->encrypt(serialize($response), $this->get_domain()); update_option($key, $data) or add_option($key, $data); } private function get_old_wp_response() { $key = $this->get_key_name(); $response = get_option($key, NULL); if (empty($response)) { return NULL; } return unserialize($this->decrypt($response, $this->get_domain())); } private function remove_old_wp_response() { $key = $this->get_key_name(); $is_deleted = delete_option($key); foreach (self::$_on_delete_license as $func) { if (is_callable($func)) { call_user_func($func); } } return $is_deleted; } /** * The RemoveLicenseKey is generated by appsbd * * @param mixed $plugin_base_file * @param string $message * * @return mixed * @see remove_license_key() * * @deprecated deprecated */ public static function RemoveLicenseKey($plugin_base_file, &$message = "") { return self::remove_license_key($plugin_base_file, $message); } /** * The remove license key is generated by appsbd * * @param mixed $plugin_base_file * @param string $message * * @return mixed */ public static function remove_license_key($plugin_base_file, &$message = "") { $obj = self::get_instance($plugin_base_file); $obj->clean_update_info(); return $obj->_remove_wp_plugin_license($message); } /** * The CheckWPPlugin is generated by appsbd * @param mixed $purchase_key * @param mixed $email * @param string $error * @param null $response_obj * @param string $plugin_base_file * * @return mixed * @deprecated deprecated * @see base::check_wp_plugin() * */ public static function CheckWPPlugin($purchase_key, $email, &$error = "", &$response_obj = null, $plugin_base_file = "") { return self::check_wp_plugin($purchase_key, $email, $error, $response_obj, $plugin_base_file); } /** * The check wp plugin is generated by appsbd * * @param mixed $purchase_key * @param mixed $email * @param string $error * @param null $response_obj * @param string $plugin_base_file * * @return mixed */ public static function check_wp_plugin($purchase_key, $email, &$error = "", &$response_obj = null, $plugin_base_file = "") { // For multisite subsites, check if license is activated on main site if (is_multisite() && !is_main_site()) { $subsite_status = self::get_subsite_license_status(); if ($subsite_status['is_subsite'] && $subsite_status['is_main_site_licensed']) { // Get license info from main site for response_obj $license_info = self::get_register_info(); if ($license_info) { $response_obj = clone $license_info; if (isset($response_obj->next_request)) { unset($response_obj->next_request); } } return true; } } $obj = self::get_instance($plugin_base_file); $obj->set_email_address($email); return $obj->_check_wp_plugin($purchase_key, $error, $response_obj); } final function _remove_wp_plugin_license(&$message = '') { $old_respons = $this->get_old_wp_response(); if (!empty($old_respons->is_valid)) { if (!empty($old_respons->license_key)) { $param = $this->get_param($old_respons->license_key, $this->version); $response = $this->_request('product/deactive/' . $this->product_id, $param, $message); if (empty($response->code)) { if (!empty($response->status)) { $message = $response->msg; $this->remove_old_wp_response(); return true; } else { $message = $response->msg; } } else { $message = $response->message; } } } else { $this->remove_old_wp_response(); return true; } return false; } /** * The GetRegisterInfo is generated by appsbd * * @return mixed * @see get_register_info() * * @deprecated deprecated */ public static function GetRegisterInfo() { return self::get_register_info(); } /** * The get register info is generated by appsbd * * @return |null */ public static function get_register_info() { if (!empty(self::$selfobj)) { return self::$selfobj->get_old_wp_response(); } // For multisite subsites, try to get license info from main site if (is_multisite() && !is_main_site()) { // Switch to main site to get license data $main_site_id = get_main_site_id(); $current_site_id = get_current_blog_id(); if ($main_site_id && $main_site_id != $current_site_id) { switch_to_blog($main_site_id); // Create a temporary instance to get the license data $temp_obj = new self(BDTEP__FILE__); $license_info = $temp_obj->get_old_wp_response(); restore_current_blog(); return $license_info; } } return null; } final function _check_wp_plugin($purchase_key, &$error = "", &$response_obj = null) { $responseObj = new \stdClass(); $responseObj->license_title = 'Lifetime license'; $responseObj->license_key = 'XXXXXXXX-XXXXXXXX'; $responseObj->is_valid = true; $responseObj->expire_date = 'no expiry'; $responseObj->support_end = 'expired'; $this->save_wp_response($responseObj); return true; // For multisite subsites, check if license is activated on main site if (is_multisite() && !is_main_site()) { $subsite_status = self::get_subsite_license_status(); if ($subsite_status['is_subsite'] && $subsite_status['is_main_site_licensed']) { // Get license info from main site for response_obj $license_info = self::get_register_info(); if ($license_info) { $response_obj = clone $license_info; if (isset($response_obj->next_request)) { unset($response_obj->next_request); } } return true; } } if (empty($purchase_key)) { $this->remove_old_wp_response(); $error = ""; return false; } $old_respons = $this->get_old_wp_response(); $is_force = false; if (!empty($old_respons)) { if (!empty($old_respons->expire_date) && strtolower($old_respons->expire_date) != "no expiry" && strtotime($old_respons->expire_date) < time()) { $is_force = true; } if (!$is_force && !empty($old_respons->is_valid) && $old_respons->next_request > time() && (!empty($old_respons->license_key) && $purchase_key == $old_respons->license_key)) { $response_obj = clone $old_respons; unset($response_obj->next_request); return true; } } $param = $this->get_param($purchase_key, $this->version); $response = $this->_request('product/active/' . $this->product_id, $param, $error); if (empty($response->is_request_error)) { if (empty($response->code)) { if (!empty($response->status)) { if (!empty($response->data)) { $serial_obj = $this->decrypt($response->data, $param->domain); $license_obj = unserialize($serial_obj); if ($license_obj->is_valid) { $response_obj = new stdClass(); $response_obj->is_valid = $license_obj->is_valid; if ($license_obj->request_duration > 0) { $response_obj->next_request = strtotime("+ {$license_obj->request_duration} hour"); } else { $response_obj->next_request = time(); } $response_obj->expire_date = $license_obj->expire_date; $response_obj->support_end = $license_obj->support_end; $response_obj->license_title = $license_obj->license_title; $response_obj->license_key = $purchase_key; $response_obj->msg = $response->msg; $response_obj->renew_link = !empty($license_obj->renew_link) ? $license_obj->renew_link : ""; $response_obj->expire_renew_link = self::get_renew_link($response_obj, "l"); $response_obj->support_renew_link = self::get_renew_link($response_obj, "s"); // Save other_param if present for white label checking if (!empty($license_obj->other_param)) { $response_obj->other_param = $license_obj->other_param; } $this->save_wp_response($response_obj); unset($response_obj->next_request); delete_transient($this->product_base . "_up"); return true; } else { if ($this->_check_old_tied($old_respons, $response_obj, $response)) { return true; } else { $this->remove_old_wp_response(); $error = !empty($response->msg) ? $response->msg : ""; } } } else { $error = "Invalid data"; } } else { $error = $response->msg; } } else { $error = $response->message; } } else { if ($this->_check_old_tied($old_respons, $response_obj, $response)) { return true; } else { $this->remove_old_wp_response(); $error = !empty($response->msg) ? $response->msg : ""; } } return $this->_check_old_tied($old_respons, $response_obj); } private function _check_old_tied(&$old_respons, &$response_obj) { if (!empty($old_respons) && (empty($old_respons->tried) || $old_respons->tried <= 2)) { $old_respons->next_request = strtotime("+ 1 hour"); $old_respons->tried = empty($old_respons->tried) ? 1 : ($old_respons->tried + 1); $response_obj = clone $old_respons; unset($response_obj->next_request); if (isset($response_obj->tried)) { unset($response_obj->tried); } $this->save_wp_response($old_respons); return true; } return false; } } }
| ver. 1.1 | |
.
| PHP 8.4.20 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0.1 |
proxy
|
phpinfo
|
ÐаÑтройка