function maybe_disable_save_button($defined_settings = array())
{
$attr = 'disabled="disabled"';
$defined_settings = !empty($defined_settings) ? $defined_settings : $this->get_defined_settings();
$whitelisted_settings = $this->get_settings_whitelist();
$settings_to_skip = array('bucket', 'region', 'permissions', 'virtual-host');
foreach ($whitelisted_settings as $setting) {
if (in_array($setting, $settings_to_skip)) {
continue;
}
if ('object-prefix' === $setting) {
if (isset($defined_settings['enable-object-prefix']) && '0' === $defined_settings['enable-object-prefix']) {
continue;
}
}
if ('cloudfront' === $setting) {
if (isset($defined_settings['domain']) && 'cloudfront' !== $defined_settings['domain']) {
continue;
}
}
if (!isset($defined_settings[$setting])) {
// If we're here, there's a setting that hasn't been defined.
return '';
}
}
return $attr;
}