public function w3tc_ajax_extension_cloudflare_zones_done()
 {
     $email = $_REQUEST['email'];
     $key = $_REQUEST['key'];
     $zone_id = Util_Request::get('zone_id');
     if (empty($zone_id)) {
         return $this->_render_extension_cloudflare_zones(array('email' => $email, 'key' => $key, 'error_message' => 'Please select zone'));
     }
     $zone_name = '';
     // get zone name
     try {
         $api = new Extension_CloudFlare_Api(array('email' => $email, 'key' => $key));
         $zone = $api->zone($zone_id);
         $zone_name = $zone['name'];
     } catch (\Exception $ex) {
         $details['error_message'] = 'Can\'t authenticate: ' . $ex->getMessage();
         include W3TC_DIR . '/Extension_CloudFlare_Popup_View_Intro.php';
         exit;
     }
     $c = Dispatcher::config();
     $c->set(array('cloudflare', 'email'), $email);
     $c->set(array('cloudflare', 'key'), $key);
     $c->set(array('cloudflare', 'zone_id'), $zone_id);
     $c->set(array('cloudflare', 'zone_name'), $zone_name);
     $c->save();
     delete_transient('w3tc_cloudflare_stats');
     $postfix = Util_Admin::custom_message_id(array(), array('extension_cloudflare_configuration_saved' => 'CloudFlare credentials are saved successfully'));
     echo 'Location admin.php?page=w3tc_extensions&extension=cloudflare&' . 'action=view&' . $postfix;
     exit;
 }
 function set_comment_status($id, $status)
 {
     if ($status == "spam") {
         $comment = get_comment($id);
         $value = array('a' => $comment->comment_author, 'am' => $comment->comment_author_email, 'ip' => $comment->comment_author_IP, 'con' => substr($comment->comment_content, 0, 100));
         $c = Dispatcher::config();
         $api = new Extension_CloudFlare_Api(array('email' => $c->get_string(array('cloudflare', 'email')), 'key' => $c->get_string(array('cloudflare', 'key')), 'zone_id' => $c->get_string(array('cloudflare', 'zone_id')), 'timelimit_api_request' => $c->get_integer(array('cloudflare', 'timelimit.api_request'))));
         $api->external_event('WP_SPAM', json_encode($value));
     }
 }
 public function w3tc_cloudflare_flush()
 {
     $c = Dispatcher::config();
     $api = new Extension_CloudFlare_Api(array('email' => $c->get_string(array('cloudflare', 'email')), 'key' => $c->get_string(array('cloudflare', 'key')), 'zone_id' => $c->get_string(array('cloudflare', 'zone_id')), 'timelimit_api_request' => $c->get_integer(array('cloudflare', 'timelimit.api_request'))));
     try {
         $v = $api->purge();
     } catch (\Exception $ex) {
         Util_Admin::redirect_with_custom_messages2(array('errors' => array('cloudflare_flush' => __('Failed to flush CloudFlare cache: ', 'w3-total-cache') . $ex->getMessage())));
         return;
     }
     Util_Admin::redirect_with_custom_messages2(array('notes' => array('cloudflare_flush' => __('CloudFlare cache successfully emptied.', 'w3-total-cache'))));
 }