/** * リビジョンデータを保存 * *_post_meta はリビジョンIDのときに自動的に本物IDに変換して処理してしまうので、*_metadata を使うこと * * @param int $post_id リビジョンの投稿ID */ public function wp_insert_post($post_id) { if (!isset($_POST[SCF_Config::NAME])) { return; } if (!wp_is_post_revision($post_id)) { return; } $settings = SCF::get_settings(get_post($post_id)); if (!$settings) { return; } check_admin_referer(SCF_Config::NAME . '-fields', SCF_Config::PREFIX . 'fields-nonce'); $Meta = new Smart_Custom_Fields_Meta(get_post($post_id)); $Meta->save($_POST); }
/** * 送信されたデータを保存 * * @param array $data * @param WP_Post|WP_User|object $object */ protected function save($data, $object) { check_admin_referer(SCF_Config::NAME . '-fields', SCF_Config::PREFIX . 'fields-nonce'); $Meta = new Smart_Custom_Fields_Meta($object); $Meta->save($_POST); }
/** * @group get_multiple_data_field_value */ public function test_get_multiple_data_field_value__空値を保存済みの場合は空配列を返す() { $object = get_post($this->post_id); $Meta = new Smart_Custom_Fields_Meta($object); $POST = array(SCF_Config::NAME => array('checkbox3' => array(array(), array(1, 2), array(2, 3)))); $Meta->save($POST); $Field = SCF::get_field($object, 'checkbox3'); $index = 0; // 空配列が返るべきキー $this->assertSame(array(), $this->Controller->get_multiple_data_field_value($object, $Field, $index)); }
/** * A wrapper of Smart_Custom_Fields_Meta()->save() * * @param (array) $data */ protected function scfSave($data) { $post = $this->getPost(); if ($post instanceof WP_Post) { if (class_exists('Smart_Custom_Fields_Meta') && is_array($data)) { $_data = array(); $_data['smart-custom-fields'] = $data; $meta = new Smart_Custom_Fields_Meta($post); $meta->save($_data); } elseif (is_array($data)) { foreach ($data as $key => $array) { foreach ((array) $array as $value) { $this->updateMeta($key, $value); } } } } else { $this->addError('post_is_not_set', __('WP_Post object is not set.', 'really-simple-csv-importer')); } }