/** * Save data from meta box * @param int $post_id Post ID */ public function save_post($post_id) { if (!$this->validate()) { return; } $this->saved = true; // Make sure meta is added to the post, not a revision if ($the_post = wp_is_post_revision($post_id)) { $post_id = $the_post; } // Before save action do_action('rwmb_before_save_post', $post_id); do_action("rwmb_{$this->meta_box['id']}_before_save_post", $post_id); foreach ($this->fields as $field) { $single = $field['clone'] || !$field['multiple']; $old = get_post_meta($post_id, $field['id'], $single); $new = isset($_POST[$field['id']]) ? $_POST[$field['id']] : ($single ? '' : array()); // Allow field class change the value if ($field['clone']) { $new = RWMB_Clone::value($new, $old, $post_id, $field); } else { $new = RWMB_Field::call($field, 'value', $new, $old, $post_id); $new = RWMB_Field::filter('sanitize', $new, $field); } $new = RWMB_Field::filter('value', $new, $field, $old); // Call defined method to save meta value, if there's no methods, call common one RWMB_Field::call($field, 'save', $new, $old, $post_id); } // After save action do_action('rwmb_after_save_post', $post_id); do_action("rwmb_{$this->meta_box['id']}_after_save_post", $post_id); }