/** * Purge the CloudFlare cache * @return void */ function flush_cloudflare() { $response = null; w3_require_once(W3TC_LIB_W3_DIR . '/Request.php'); $email = $this->_config->get_string('email'); $key = $this->_config->get_string('key'); $zone = $this->_config->get_string('zone'); if ($email && $key && $zone) { $config = array('email' => $email, 'key' => $key, 'zone' => $zone); w3_require_once(W3TC_CORE_EXTENSION_DIR . '/CloudFlare/CloudFlareAPI.php'); @($cloudflareAPI = new CloudFlareAPI($config)); $cloudflareAPI->purge(); } }
/** * @param W3_Config $config * @param $old * @param $config_admin * @return \W3_Config */ public function save_settings($config, $old, $config_admin) { w3_require_once(W3TC_CORE_EXTENSION_DIR . '/CloudFlare/CloudFlareAPI.php'); $this->cloudflareAPI = new CloudFlareAPI(); $this->cloudflareAPI->reset_settings_cache(); if ((bool) w3tc_get_extension_config('cloudflare', 'enabled') && $this->cloudflareAPI->minify_enabled() && $config->get_boolean('minify.enabled')) { $config->set('minify.enabled', false); } /** * Handle CloudFlare changes */ if (w3_get_blog_id() == 0 || w3_get_blog_id() != 0 && !w3_extension_is_sealed('cloudflare')) { /** * @var $this->cloudflareAPI W3_CloudFlare */ $cf_values = W3_Request::get_as_array('cloudflare_'); $this->cloudflareAPI->save_settings($cf_values); } return $config; }