Woocommerce HTML2PDF发送pdf

时间:2019-01-10 23:54:27

标签: php wordpress woocommerce html2pdf

我已经创建了一个销售培训的网站。购买后,我想向订购产品的客户发送通知。 因此,我选择使用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;
}

感谢您的答复

1 个答案:

答案 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;
}