/** * CSVの各行を生成 * * @param array $posts * @param array $headings * @return array */ protected function get_rows(array $posts, array $headings) { global $post; $rows = array(); foreach ($posts as $post) { setup_postdata($post); $columns = array(); foreach ($headings as $key => $value) { $Contact_Data_Setting = new MW_WP_Form_Contact_Data_Setting($post->ID); $response_statuses = $Contact_Data_Setting->get_response_statuses(); $column = ''; if ($value === __('Response Status', MWF_Config::DOMAIN)) { $response_status = $Contact_Data_Setting->get('response_status'); $column = $response_statuses[$response_status]; } elseif ($value === __('Memo', MWF_Config::DOMAIN)) { $column = $Contact_Data_Setting->get('memo'); } elseif ($value === MWF_Functions::get_tracking_number_title($this->post_type)) { $column = get_post_meta(get_the_ID(), MWF_Config::TRACKINGNUMBER, true); } elseif (isset($post->{$value})) { $post_meta = $post->{$value}; if ($Contact_Data_Setting->is_upload_file_key($post, $value)) { // 過去バージョンでの不具合でメタデータが空になっていることがあるのでその場合は代替処理 if ($post_meta === '') { $post_meta = MWF_Functions::get_multimedia_id__fallback($post, $value); } $column = wp_get_attachment_url($post_meta); } else { $column = $post_meta ? $post_meta : ''; } } $columns[$key] = $column; } $rows[] = $columns; } wp_reset_postdata(); return $rows; }
/** * 各カラムのデータを出力 * * @param string $column カラム名 * @param int $post_id */ public function add_form_columns($column, $post_id) { $post = get_post($post_id); $post_custom_keys = get_post_custom_keys($post_id); $Contact_Data_Setting = new MW_WP_Form_Contact_Data_Setting($post_id); if ($column === 'post_date') { $value = esc_html($post->post_date); } elseif ($column === 'response_status') { $response_statuses = $Contact_Data_Setting->get_response_statuses(); $response_status = $Contact_Data_Setting->get('response_status'); $value = $response_statuses[$response_status]; } elseif (is_array($post_custom_keys) && in_array($column, $post_custom_keys)) { $post_meta = get_post_meta($post_id, $column, true); if ($Contact_Data_Setting->is_upload_file_key($post, $column)) { // 過去バージョンでの不具合でメタデータが空になっていることがあるのでその場合は代替処理 if ($post_meta === '') { $post_meta = MWF_Functions::get_multimedia_id__fallback($post, $column); } $value = MWF_Functions::get_multimedia_data($post_meta); } elseif ($post_meta) { $value = esc_html($post_meta); } else { $value = ' '; } } else { $value = ' '; } $this->assign('column', $value); $this->render('contact-data-list/column'); }