J'utilise mpdf sur wordpress pour générer des fichiers PDF. Je travaille sur une fonctionnalité qui enverra un rapport hebdomadaire à mes utilisateurs et ce rapport devrait être envoyé comme email et pdf sera joint dans l'email. Mon problème est que je cours le code dans le fichier functions.php parce que pour exécuter ce code chaque semaine, je vais employer le travail cron de côté de serveur et ma fonction devrait être dans le fichier functions.php pour l'exécuter. Donc, j'ai ajouté ce code dans le fichier functions.php:générer un rapport hebdomadaire pdf avec mpdf - functions.php
function weeklyReportFunc(){
include('mpdf/mpdf.php');
$mpdf = new mPDF();
ob_start();
require get_template_directory() . '/includes/report.php';
$x = ob_get_contents();
ob_end_clean();
$mpdf->WriteHTML($x);
$today = date('Y-m-d');
$pdfName = 'weekly-report-'.$today;
$mpdf->Output($pdfName.'.pdf', 'D');
}
Et cela me montre ci-dessous erreur:
Warning: Cannot modify header information - headers already sent by (output started at
/home/user/public_html/doms/wp-admin/includes/template.php:1995) in /home/user/public_html/
doms/wp-content/themes/mytheme/mpdf/mpdf.php on line 8314
Warning: Cannot modify header information - headers already sent by (output started at
/home/user/public_html/doms/wp-admin/includes/template.php:1995) in
/home/user/public_html/doms/wp-content/themes/mytheme/mpdf/mpdf.php on line 1706
mPDF error: Some data has already been output to browser, can't send PDF file
Comment puis-je résoudre ce problème? Peut-être que je dois utiliser ma fonction dans une action? mais lequel? Des idées s'il vous plaît?
check: /home/user/public_html/doms/wp-admin/includes/template.php:1995 Souvent, le problème est un espace à la fin d'un fichier php (supprimer les balises de fermeture php pour éviter cela) –
mais il est fichier core wordpress. Si je supprime la balise de fermeture php, je devrai la refaire à la prochaine mise à jour. Et même sur chaque mise à jour wordpress. @SanderBackus – aidadev
J'ai vérifié et sur cette ligne (/home/user/public_html/doms/wp-admin/includes/template.php:1 995) il n'y a pas de balise espace/fermeture impaire et ce n'est même pas la dernière ligne de ce fichier. Il y a une balise php fermeture/ouverture mais il faut être là. D'autres suggestions? @SanderBackus – aidadev