Im пытается экспортировать данные из массового действия в пользовательский класс WP_List_Table. У меня есть следующая функция для экспорта данных, но я получаю «заголовки уже отправленные» ошибки все время, когда я хочу экспортировать данные. Не могли бы вы указать, что я делаю неправильно?Экспорт CSV-файла из пользовательского класса WP_List_Table
public static function export_mailings ($data) {
if (!current_user_can('manage_options')) {
return;
}
global $wpdb;
$filename = 'mailings-' . date('d-M-Y') . '.csv';
$sql = "SELECT * FROM {$wpdb->prefix}wpsml WHERE `id` IN (" . implode(',', array_map('intval', $data)) . ")";
$results = $wpdb->get_results($sql);
$csv_headers = array();
$csv_headers[] = 'Date';
$csv_headers[] = 'Name';
$csv_headers[] = 'Email';
$filename = 'export' . date('d-M-Y');
$output_handle = fopen('php://output', 'w');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Description: File Transfer');
header('Content-type: text/csv');
header('Content-Disposition: attachment; filename=' . $output_filename);
header('Expires: 0');
header('Pragma: public');
fputcsv($output_handle, $csv_headers);
foreach ($results as $result) {
fputcsv($output_handle, (array)$result);
}
fclose($output_handle);
die();
}
Вы проверили print_r ($ results); ? вы получаете данные или пустой массив? –
Wel, я на самом деле получаю полный вывод при ошибках. Проблема в том, что этот вывод не загружается как файл, вызывающий ошибку заголовков (я предполагаю). – mkolodziejczak