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 = '';
     try {
         $api = new Extension_CloudFlare_Api(array('email' => $email, 'key' => $key));
         $zones = $api->zones();
         foreach ($zones as $z) {
             if ($z['id'] == $zone_id) {
                 $zone_name = $z['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;
 }
 private function _render_extension_cloudflare_zones($details)
 {
     $email = $details['email'];
     $key = $details['key'];
     $page = $details['page'];
     $details = array('email' => $email, 'key' => $key, 'page' => $page, 'zones' => array(), 'total_pages' => 1);
     try {
         $api = new Extension_CloudFlare_Api(array('email' => $email, 'key' => $key));
         $r = $api->zones($page);
         $details['zones'] = $r['result'];
         $details['total_pages'] = $r['result_info']['total_pages'];
     } catch (\Exception $ex) {
         $details['error_message'] = 'Can\'t authenticate: ' . $ex->getMessage();
         include W3TC_DIR . '/Extension_CloudFlare_Popup_View_Intro.php';
         exit;
     }
     include W3TC_DIR . '/Extension_CloudFlare_Popup_View_Zones.php';
     exit;
 }