简体   繁体   English

Wordpress 和 MDPF 包含外部 php 文件模板

[英]Wordpress & MDPF include external php file template

I am using mpdf for the first time and have integrated it with Wordpress.我第一次使用 mpdf 并将其与 Wordpress 集成。 I have it currently set up in the functions.php file writing out the html but i would like to use a seperate php file as the template for the pdf, is this possible?我目前在functions.php文件中设置了html,但我想使用单独的php文件作为pdf的模板,这可能吗? I can't find anything in the mpdf documentation.我在 mpdf 文档中找不到任何内容。

Here is my code so far:到目前为止,这是我的代码:

add_action('init', 'congres_redirect');

function congres_redirect() {
  if(isset($_GET['offer'])) {
    $restName = get_field('restaurant_name', $post->ID);
      view_conferinta();

  }
}
function view_conferinta() {
$post_id = false; // current post
$output = '<html>
<head><title>Voucher Download</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head>
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open+Sans" />
<style>
body {
font-family: open sans, san-serif;
}
.voucher {
padding: 20px;
}

</style>
<body>';

 $output .= ' 

 <div class="voucher-content">
    <div class="inner-voucher">
        <h1>Voucher Title</h1>
        <p>Voucher Description</p>
        <p>Voucher Code: EL-200DEG07022020-123AB</p>
    </div>
 </div>


 ';


//$output .='<div class="voucher">Restaurant Name: '.$restName.'</div>';   
$output .= ' 
</body>
</html>';


require_once __DIR__ . '/mpdf/vendor/autoload.php';

$mpdf = new \Mpdf\Mpdf(['debug' => true]);
$mpdf->WriteHTML($output);
$mpdf->Output('my-voucher.pdf','I');
//$mpdf->Output($pdfheader.'.pdf', 'D');
exit;
}

That is something weird... But it is possible..you need to put your template file into theme for security purpose.这很奇怪……但有可能……出于安全目的,您需要将模板文件放入主题中。 Then you need to get that file contents and use it as out put of your pdf.然后您需要获取该文件内容并将其用作 pdf 的输出。

// get contents of a file into a string
$filename = include get_stylesheet_directory() . '/template.php';
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
require_once __DIR__ . '/mpdf/vendor/autoload.php';

$mpdf = new \Mpdf\Mpdf(['debug' => true]);
$mpdf->WriteHTML($contents);
$mpdf->Output('my-voucher.pdf','I');
//$mpdf->Output($pdfheader.'.pdf', 'D');
exit;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM