/**
  * Set extension's setting option value in database
  *
  * @param string|null $option_id
  * @param mixed $value
  */
 public final function set_db_settings_option($option_id = null, $value)
 {
     fw_set_db_ext_settings_option($this->get_name(), $option_id, $value);
 }
 /**
  * @param array $data
  * @return array
  * @internal
  */
 public function _extension_settings_form_save($data)
 {
     $extension = fw()->extensions->get(FW_Request::POST('fw_extension_name'));
     $options_before_save = (array) fw_get_db_ext_settings_option($extension->get_name());
     fw_set_db_ext_settings_option($extension->get_name(), null, array_merge($options_before_save, fw_get_options_values_from_input($extension->get_settings_options())));
     FW_Flash_Messages::add('fw_extension_settings_saved', __('Extensions settings successfully saved.', 'fw'), 'success');
     $data['redirect'] = fw_current_url();
     do_action('fw_extension_settings_form_saved:' . $extension->get_name(), $options_before_save);
     return $data;
 }
 /**
  * Enable flush_rules.
  */
 public function enable_flush_rules()
 {
     $flush_rules = (bool) fw_get_db_ext_settings_option($this->get_name(), 'flush_rules_enabled');
     if ($flush_rules === false) {
         flush_rewrite_rules();
         fw_set_db_ext_settings_option($this->get_name(), 'flush_rules_enabled', true);
     }
 }