Example #1
0
 /**
  * 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');
 }