Exemplo n.º 1
0
 /**
  * Runs validate, then save on $_POST data
  *
  * @param  int $post_ID The id of the object we're saving
  * @return void
  */
 public function validate_and_save($post_ID)
 {
     if (empty($this->fields)) {
         wp_die("Empty fields array");
     }
     // create an array that will be saved
     $validated = array();
     // duplicate metabox's fields to modify to match with $_POST array's keys
     $saved = array();
     foreach (array_keys($this->fields) as $key) {
         //verify meta_key/slug/taxonomy and assign keys
         $this->fields[$key]['old_key'] = Models::validate_keys($this->fields[$key]);
         $this->fields[$key]['key'] = $this->fields[$key]['old_key'];
         //create keys in array that are to be saved
         $validated[$this->fields[$key]['old_key']] = "";
         // retrieve saved data
         $saved[$this->fields[$key]['old_key']] = get_post_meta($post_ID, $this->fields[$key]['old_key'], $single = true);
         //start validation
         $this->validate($post_ID, $this->fields[$key], $validated[$this->fields[$key]['old_key']], $saved[$this->fields[$key]['old_key']]);
     }
     // delete old formatted data for phasing out backwards compatibility
     $this->delete_old_data($post_ID, $this->fields);
     Models::save($post_ID, $validated);
 }