我已经创建了一个销售培训的网站。购买后,我想向订购产品的客户发送通知。 因此,我选择使用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;
}
感谢您的答复
答案 0 :(得分:0)
看this example,您似乎应该添加文件路径,而不是将整个PDF作为字符串添加到$attachments
。当第二个参数为字符“ F”时,$html2pdf->output
将PDF保存到服务器,然后将其保存在$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;
}