public function set_all($settings) { $retval = array('old_settings' => $this->settings, 'new_settings' => $this->settings, 'errors' => array(), 'messages' => array(), 'saved' => false); $validator = ITSEC_Modules::get_validator($this->get_id()); if (is_null($validator)) { $retval['errors'][] = new WP_Error('itsec-settings-missing-validator-for-' . $this->get_id(), sprintf(__('The data validator for %1$s is missing. Data for the module cannot be saved without the validator. This error could indicate a bad install of iThemes Security. Please remove the plugin and reinstall it. If this message persists, please contact support and send them this error message.', 'better-wp-security'), $this->get_id())); } else { $validator->validate($settings); $retval['errors'] = $validator->get_errors(); $retval['messages'] = $validator->get_messages(); if ($validator->can_save()) { $this->settings = $validator->get_settings(); ITSEC_Storage::set($this->get_id(), $this->settings); $this->after_save(); $this->handle_settings_changes($retval['old_settings']); $retval['new_settings'] = $this->settings; $retval['saved'] = true; } else { ITSEC_Response::set_success(false); } } ITSEC_Response::add_errors($retval['errors']); ITSEC_Response::add_messages($retval['messages']); return $retval; }
/** * Save the validated form input data. * * This function should be left as-is in subclasses unless widget-specific handling is required. An example where a * custom function could be useful is a widget which stores some input in different locations. * * @access public * * @param array Array of data to be saved. */ protected function save($data) { ITSEC_Storage::set($this->id, $data); }