我已经创建了一个销售培训的网站。购买后,我会向订购产品的客户发送通知。因此,我选择使用HTML2PDF来创建一个带有插件的动态pdf。但是我没能把pdf和邮寄发票联系起来。尽管如此,帐单表单工作正常
我使用钩子添加pdf来抓取处理订单后的电子邮件。归属权
require __DIR__.'/vendor/autoload.php';
use Spipu\Html2Pdf\Html2Pdf;
add_filter('woocommerce_email_attachments', 'attach_terms_conditions_pdf_to_email', 10, 3);
function attach_terms_conditions_pdf_to_email ( $attachments, $status , $order ) {
$allowed_statuses = array('customer_processing_order');
if( isset( $status ) && in_array ( $status, $allowed_statuses ) ) {
$html2pdf = new Html2Pdf();
$html2pdf->writeHTML('<h1>HelloWorld</h1>This is my first test');
$files=$html2pdf->output('convocation.pdf','S');
$attachments[] = $files;
}
return $attachments;
}感谢您的回复
发布于 2019-01-11 14:05:47
看一下this example,看起来不是将整个PDF作为字符串添加到$attachments中,而是应该添加文件路径。当第二个参数是字符'F‘时,$html2pdf->output会将文件保存到服务器,然后在保存后,您可以在$attachments变量中包含文件的文件路径。
所以你想要这样的东西。我还没有测试过这段代码。
require __DIR__.'/vendor/autoload.php';
use Spipu\Html2Pdf\Html2Pdf;
add_filter('woocommerce_email_attachments', 'attach_terms_conditions_pdf_to_email', 10, 3);
function attach_terms_conditions_pdf_to_email ( $attachments, $status , $order ) {
$allowed_statuses = array('customer_processing_order');
if( isset( $status ) && in_array ( $status, $allowed_statuses ) ) {
$html2pdf = new Html2Pdf();
$html2pdf->writeHTML('<h1>HelloWorld</h1>This is my first test');
$pdf_uploads_dir = wp_upload_dir()['basedir'] . '/pdfs/';
if ( ! is_dir( $pdf_uploads_dir ) ) {
mkdir( $pdf_uploads_dir, 0755 );
}
$file_path = $pdf_uploads_dir . 'convocation.pdf';
$files=$html2pdf->output( $file_path, 'F' );
$attachments[] = $files;
}
return $attachments;
}https://stackoverflow.com/questions/54138607
复制相似问题