function get_setting($key)
 {
     $settings = $this->get_settings();
     // If legacy setting set, migrate settings
     if (isset($settings['wp-uploads']) && $settings['wp-uploads'] && in_array($key, array('copy-to-s3', 'serve-from-s3'))) {
         return '1';
     }
     // Default object prefix
     if ('object-prefix' == $key && !isset($settings['object-prefix'])) {
         $uploads = wp_upload_dir();
         $parts = parse_url($uploads['baseurl']);
         return substr($parts['path'], 1) . '/';
     }
     return parent::get_setting($key);
 }
 function get_setting($key)
 {
     $settings = $this->get_settings();
     // If legacy setting set, migrate settings
     if (isset($settings['wp-uploads']) && $settings['wp-uploads'] && in_array($key, array('copy-to-s3', 'serve-from-s3'))) {
         return '1';
     }
     // Default object prefix
     if ('object-prefix' == $key && !isset($settings['object-prefix'])) {
         $uploads = wp_upload_dir();
         $parts = parse_url($uploads['baseurl']);
         return substr($parts['path'], 1) . '/';
     }
     if ('bucket' == $key && defined('AS3CF_BUCKET')) {
         $value = AS3CF_BUCKET;
     } else {
         $value = parent::get_setting($key);
     }
     return apply_filters('as3cf_setting_' . $key, $value);
 }
 /**
  * Accessor for a plugin setting with conditions to defaults and upgrades
  *
  * @param string $key
  * @param mixed  $default
  *
  * @return int|mixed|string|WP_Error
  */
 function get_setting($key, $default = '')
 {
     // use settings from $_POST when generating URL preview via AJAX
     if (isset($_POST['action']) && 'as3cf-get-url-preview' == sanitize_key($_POST['action'])) {
         // input var okay
         $value = 0;
         if (isset($_POST[$key])) {
             // input var okay
             $value = $_POST[$key];
             // input var okay
             if (is_array($value)) {
                 // checkbox is checked
                 $value = 1;
             }
         }
         return $value;
     }
     $settings = $this->get_settings();
     // If legacy setting set, migrate settings
     if (isset($settings['wp-uploads']) && $settings['wp-uploads'] && in_array($key, array('copy-to-s3', 'serve-from-s3'))) {
         return '1';
     }
     // Turn on object versioning by default
     if ('object-versioning' == $key && !isset($settings['object-versioning'])) {
         return '1';
     }
     // Default object prefix
     if ('object-prefix' == $key && !isset($settings['object-prefix'])) {
         return $this->get_default_object_prefix();
     }
     // Default use year and month folders
     if ('use-yearmonth-folders' == $key && !isset($settings['use-yearmonth-folders'])) {
         return get_option('uploads_use_yearmonth_folders');
     }
     // Default enable object prefix - enabled unless path is empty
     if ('enable-object-prefix' == $key) {
         if (isset($settings['enable-object-prefix']) && '0' == $settings['enable-object-prefix']) {
             return 0;
         }
         if (isset($settings['object-prefix']) && '' == trim($settings['object-prefix'])) {
             return 0;
         } else {
             return 1;
         }
     }
     // Region of bucket if not already retrieved
     if ('region' == $key && !isset($settings['region'])) {
         $bucket = $this->get_setting('bucket');
         $region = $default;
         if ($bucket) {
             $region = $this->get_bucket_region($bucket);
         }
         // Store the region for future use
         parent::set_setting('region', $region);
         $this->save_settings();
         return $region;
     }
     // Region of bucket translation
     if ('region' == $key && isset($settings['region'])) {
         return $this->translate_region($settings['region']);
     }
     // Domain setting since 0.8
     if ('domain' == $key && !isset($settings['domain'])) {
         if ($this->get_setting('cloudfront')) {
             $domain = 'cloudfront';
         } elseif ($this->get_setting('virtual-host')) {
             $domain = 'virtual-host';
         } elseif ($this->use_ssl()) {
             $domain = 'path';
         } else {
             $domain = 'subdomain';
         }
         return $domain;
     }
     // SSL radio buttons since 0.8
     if ('ssl' == $key && !isset($settings['ssl'])) {
         if ($this->get_setting('force-ssl', false)) {
             $ssl = 'https';
         } else {
             $ssl = 'request';
         }
         return $ssl;
     }
     $value = parent::get_setting($key, $default);
     if ('bucket' == $key && defined('AS3CF_BUCKET')) {
         $bucket = AS3CF_BUCKET;
         if ($bucket !== $value) {
             // Save the defined bucket
             parent::set_setting('bucket', $bucket);
             // Clear region
             $this->remove_setting('region');
             $this->save_settings();
         }
         return $bucket;
     }
     return apply_filters('as3cf_setting_' . $key, $value);
 }
 /**
  * Accessor for a plugin setting with conditions to defaults and upgrades
  *
  * @param string $key
  * @param mixed  $default
  *
  * @return int|mixed|string|WP_Error
  */
 function get_setting($key, $default = '')
 {
     // use settings from $_POST when generating URL preview via AJAX
     if (isset($_POST['action']) && 'as3cf-get-url-preview' == sanitize_key($_POST['action'])) {
         // input var okay
         $value = 0;
         if (isset($_POST[$key])) {
             // input var okay
             $value = $_POST[$key];
             // input var okay
             if (is_array($value)) {
                 // checkbox is checked
                 $value = $value[1];
             }
         }
         return $value;
     }
     $settings = $this->get_settings();
     // If legacy setting set, migrate settings
     if (isset($settings['wp-uploads']) && $settings['wp-uploads'] && in_array($key, array('copy-to-s3', 'serve-from-s3'))) {
         return '1';
     }
     // Turn on object versioning by default
     if ('object-versioning' == $key && !isset($settings['object-versioning'])) {
         return '1';
     }
     // Default object prefix
     if ('object-prefix' == $key && !isset($settings['object-prefix'])) {
         return $this->get_default_object_prefix();
     }
     // Default use year and month folders
     if ('use-yearmonth-folders' == $key && !isset($settings['use-yearmonth-folders'])) {
         return get_option('uploads_use_yearmonth_folders');
     }
     // Default enable object prefix - enabled unless path is empty
     if ('enable-object-prefix' == $key) {
         if (isset($settings['enable-object-prefix']) && '0' == $settings['enable-object-prefix']) {
             return 0;
         }
         if (isset($settings['object-prefix']) && '' == trim($settings['object-prefix'])) {
             if (false === $this->get_defined_setting('object-prefix', false)) {
                 return 0;
             }
         } else {
             return 1;
         }
     }
     // Region
     if (false !== ($region = $this->get_setting_region($settings, $key, $default))) {
         return $region;
     }
     // Domain setting since 0.8
     if ('domain' === $key && !isset($settings['domain'])) {
         if ($this->get_setting('cloudfront')) {
             $domain = 'cloudfront';
         } elseif ($this->get_setting('virtual-host')) {
             $domain = $this->upgrade_virtual_host();
         } else {
             $domain = 'path';
         }
         return $domain;
     }
     // 1.1 Update 'Bucket as Domain' to new CloudFront/Domain UI
     if ('domain' === $key && 'virtual-host' === $settings[$key]) {
         return $this->upgrade_virtual_host();
     }
     // SSL radio buttons since 0.8
     if ('ssl' == $key && !isset($settings['ssl'])) {
         if ($this->get_setting('force-ssl', false)) {
             $ssl = 'https';
         } else {
             $ssl = 'request';
         }
         $this->set_setting('ssl', $ssl);
         $this->remove_setting('force-ssl');
         $this->save_settings();
         return $ssl;
     }
     // Force HTTPS since 1.3
     if ('force-https' === $key && !isset($settings['force-https'])) {
         $ssl = $this->get_setting('ssl', 'request');
         $force_https = false;
         if ('https' === $ssl) {
             $force_https = true;
         } elseif ('http' === $ssl) {
             $this->maybe_display_deprecated_http_notice();
         }
         $this->set_setting('force-https', $force_https);
         $this->remove_setting('ssl');
         $this->save_settings();
         return $force_https;
     }
     $value = parent::get_setting($key, $default);
     // Bucket
     if (false !== ($bucket = $this->get_setting_bucket($key, $value))) {
         return $bucket;
     }
     return apply_filters('as3cf_setting_' . $key, $value);
 }