]> _ Git - cube-wp-translate.git/commitdiff
Fix problem with missing filename when post is in draft mode. WIP #3211 @0.5
authorStephen Cameron <stephen@cubedesigners.com>
Mon, 31 May 2021 07:05:51 +0000 (09:05 +0200)
committerStephen Cameron <stephen@cubedesigners.com>
Mon, 31 May 2021 07:05:51 +0000 (09:05 +0200)
src/Elementor/Translation.php

index 97023d98f45ed054e6114102518e75c2645a3cbd..ba11be4d10b844755e0cf76a6538a37093b2b0bd 100644 (file)
@@ -580,7 +580,9 @@ class Translation
         $spreadsheet->getActiveSheet()->getColumnDimension('E')->setWidth(70); // Translation
 
         // Rename worksheet
-        $spreadsheet->getActiveSheet()->setTitle(substr($this->post->post_name,0,30)); // 31 char maximum for sheet title
+        // We can't rely on post_name being set (eg. on drafts) so we fallback to the post title
+        $sheet_title = !empty($this->post->post_name) ? $this->post->post_name : sanitize_title($this->post->post_title);
+        $spreadsheet->getActiveSheet()->setTitle(substr($sheet_title,0,30)); // 31 char maximum for sheet title
 
         // Set active sheet index to the first sheet, so Excel opens this as the first sheet
         $spreadsheet->setActiveSheetIndex(0);
@@ -753,10 +755,11 @@ class Translation
     public function export_XLS($id) {
 
         $spreadsheet = $this->prepare_spreadsheet($id);
+        $filename = !empty($this->post->post_name) ? $this->post->post_name : sanitize_title($this->post->post_title);
 
         // Redirect output to the client's web browser (xls)
         header('Content-Type: application/vnd.ms-excel');
-        header('Content-Disposition: attachment;filename="'. $this->post->post_name .'.xls"');
+        header('Content-Disposition: attachment;filename="'. $filename .'.xls"');
         header('Cache-Control: max-age=0');
 
         $writer = IOFactory::createWriter($spreadsheet, 'Xls');