public function save_data($post_id) { global $post; if (is_object($post) && self::CPT_NAME !== $post->post_type) { return; } $input = new SpectrOMInput(); // TODO: nonce verification $form_data = $_POST['spectrom_metabox']; $this->_create_settings($post_id); $valid = new SpectrOMValidation(); if ($valid->validate_all($this->_settings, $form_data)) { // save meta data } }
/** * Performs validation operations on posted data from form * @param $input Input data */ public function validate_options($input) { $valid = array(); $validator = new SpectrOMValidation(); if (NULL !== $input) { foreach ($this->_args['sections'] as $section_id => $section) { foreach ($section['fields'] as $field_id => $field) { $data = ''; if (isset($input[$field_id])) { $data = $input[$field_id]; } $is_valid = TRUE; if (isset($field['validation'])) { $rules = explode(' ', $field['validation']); $is_valid = $validator->validate($data, $rules, $field); } if ($is_valid) { $valid[$field_id] = $data; } else { if (isset($this->_args['revert_unvalidated'])) { $valid[$field_id] = isset($field['value']) ? $field['value'] : ''; } } } } } return $valid; }