Невозможно загрузить CSV после обновления версии WordPress - PullRequest
0 голосов
/ 14 апреля 2020

Мой сайт работал нормально с версией WordPress 4.9.8, но после обновления версии до 5.4 функция загрузки CSV перестала работать. В журнале отладки отображается предупреждение Невозможно изменить информацию заголовка - заголовки уже отправлены . Пожалуйста, введите код go и помогите мне решить эту ошибку -

<?php if(isset($_GET['process'])){ 
if($_GET['process'] === 'download'){
global $wpdb;
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=refreshertracker.csv');
ob_end_clean();
$ptp_id = $_GET['topic'];
$pct_nm = $_GET['center'];
if(!empty($pct_nm))
$query = 'select * from wp_refresher_tracker where post_id ='.$ptp_id.' and centre_name = "'.$pct_nm.'"';
else
$query = 'select * from wp_refresher_tracker where post_id ='.$ptp_id;
//echo $query;
$presult = $wpdb->get_results($query);
//print_r($presult);
// create a file pointer connected to the output stream
$output = fopen('php://output', 'w');

// output the column headings
fputcsv($output, array('Sr_no', 'Name', 'EID', 'Center', 'Topic', 'Brand', 'LOB', 'Skill', 'TrainerName', 'Obt_Marks', 'Total_Marks','Score_%', 'ETime','RefDate'));
$cnt = 0;
$refdata = array();
foreach($presult as $prt){
$cnt=$cnt+1;
$refdata['Sr_no']= $cnt;
$refdata['Name']= $prt->name;
$refdata['EID']= $prt->eid;
$refdata['Center']= $prt->centre_name; 
$refdata['Topic']= $prt->topic; 
$refdata['Brand']= $prt->brand; 
$refdata['LOB']= $prt->lob; 
$refdata['Skill']= $prt->skill; 
$refdata['TrainerName']= $prt->trainer; 
$refdata['Obt_Marks']= $prt->obt_marks; 
$refdata['Total_Marks']= $prt->total_marks; 
$refdata['Score_%'] = round(($prt->obt_marks/$prt->total_marks)*100,2)." %";
$refdata['Time']= $prt->etime; 
$refdata['RefDate']= $prt->Post_Pub_Date;; 
//print_r($refdata);
fputcsv($output, $refdata);
}
fclose($output);
exit;
}}?>

Пожалуйста, помогите, поскольку я не могу найти проблему.

1 Ответ

0 голосов
/ 18 апреля 2020

Наконец, я не смог найти решение, но получил хитрость. Публикация этого сообщения может помочь кому-то еще -

  1. Я добавил туда расположение файла и сохраненный файл -

    $ filename = time () .'_ readerlist.csv ' ;
    $ output = fopen ('/ var / www/html/wp-content/themes/theme-name/temp/'. $ Filename, 'w');

  2. После fputcsv () и exit - добавлен код / ​​скрипт в скачать вот так

    fputcsv (массив, строка); fclose ($ output);

    $ url = site_url (). '/ wp-content / themes / theme-name / temp /'.$ filename; echo 'download ("'. $ url. '", "mylist.csv");';

  3. Добавлен скрипт ниже в заголовке страницы

    загрузка функции (dataurl, имя файла) {var a = document.createElement ("a"); a.href = dataurl; a.setAttribute («скачать», имя файла); a.click (); }

Надеюсь, этот подход поможет вам.

...