public static function remote_request($args) { $name = x_addons_get_api_key_option_name(); $api_key = strip_tags(get_option($name)); $api_key == '' ? $api_key = 'unverified' : false; $url = add_query_arg(wp_parse_args($args, array('action' => 'autoupdates', 'api-key' => $api_key, 'siteurl' => urlencode(network_site_url()))), self::$api_url); $request = wp_remote_get($url); $connection_error = array('code' => 4, 'message' => __('Could not establish connection. Please ensure your firewall is not blocking requests to <strong>theme.co</strong>', '__x__')); if (is_wp_error($request)) { self::store_error($request); return $connection_error; } $data = json_decode($request['body'], true); if (!isset($data['code'])) { return $connection_error; } // // Key was good but is now invalid (revoked). // if ($api_key != '' && $data['code'] == 3) { delete_option($name); delete_transient('x_addon_list_cache'); } return $data; }
public static function remote_request($args) { $name = x_addons_get_api_key_option_name(); $api_key = esc_attr(get_option($name)); if ($api_key == '') { $api_key = 'unverified'; } $args = wp_parse_args($args, array('action' => 'autoupdates', 'api-key' => $api_key, 'siteurl' => preg_replace('#(https?:)?//#', '', esc_attr(untrailingslashit(network_home_url()))), 'xversion' => X_VERSION)); $request_url = self::$base_url . trailingslashit($args['action']) . trailingslashit($args['api-key']); unset($args['action']); unset($args['api-key']); $uri = add_query_arg($args, $request_url); $request = wp_remote_get($uri, array('timeout' => 15)); $connection_error = array('code' => 4, 'message' => __('Could not establish connection. For assistance, please start by reviewing our article on troubleshooting <a href="https://community.theme.co/kb/connection-issues/">connection issues.</a>', '__x__')); if (is_wp_error($request) || $request['response']['code'] != 200) { self::store_error($request); return $connection_error; } $data = json_decode($request['body'], true); if (!isset($data['code'])) { return $connection_error; } // // Key was good but is now invalid (revoked). // if ($api_key != '' && $data['code'] == 3) { delete_option($name); delete_site_option('x_addon_list_cache'); } return $data; }
public function register($args) { if (!isset($this->api_key) || !$this->api_key) { $this->api_key = esc_attr(get_option(x_addons_get_api_key_option_name(), '')); } $args['api-key'] = $this->api_key; $args['xversion'] = X_VERSION; return $args; }
function x_addons_product_validation() { if (isset($_POST['validate']) && check_admin_referer('x-addons-product-validation')) { if (strip_tags($_POST['x_addons_product_validation_submitted']) == 'submitted') { // // If $input is set and an empty string, delete the option and provide a // message to confirm that the key has been removed. // // Else, check the value returned by $response['code'] and provide an // appropriate action and message. // // $response['code'] == 1 - Success // $response['code'] == 2 - General Error // $response['code'] == 3 - Invalid API Key // $response['code'] == 4 - Connection Error // $name = x_addons_get_api_key_option_name(); $input = strip_tags($_POST[$name]); if (isset($input) && $input == '') { delete_option($name); echo '<div class="updated"><p>API key removed successfully!</p></div>'; } else { $response = X_Update_API::validate_key($input); if ($response['code'] == 2 || $response['code'] == 3 || $response['code'] == 4) { delete_option($name); echo '<div class="error"><p>' . $response['message'] . '</p></div>'; if (isset($_GET['x-verbose']) && $_GET['x-verbose'] == 1) { x_dump(X_Update_API::get_errors(), 350, 'var_dump'); } } else { update_option($name, $input); echo '<div class="updated"><p>' . $response['message'] . '</p></div>'; } } delete_site_option('x_addon_list_cache'); } } }
function x_addons_product_validation() { if (isset($_POST['validate']) && check_admin_referer('x-addons-product-validation')) { if (strip_tags($_POST['x_addons_product_validation_submitted']) == 'submitted') { $name = x_addons_get_api_key_option_name(); $input = strip_tags($_POST[$name]); if (isset($input) && $input == '') { delete_option($name); Themeco_Update_Api::refresh(); echo '<div class="updated"><p>' . __('API key removed successfully!', '__x__') . '</p></div>'; } else { $validation = X_Update_API::validate_key($input); if ($validation['valid']) { update_option($name, $input); echo '<div class="updated"><p>' . $validation['message'] . '</p></div>'; } else { delete_option($name); echo '<div class="error"><p>' . $validation['message'] . '</p></div>'; if (isset($_GET['x-verbose']) && $_GET['x-verbose'] == 1) { x_dump($validation['verbose'], 350, 'var_dump'); } } } } } }