Woocommerce HTML2PDF отправить PDF - PullRequest
0 голосов
/ 11 января 2019

Я создал сайт для продажи обучения. После покупки я хотел бы отправить уведомление клиенту, который заказывает товар. Итак, я решил использовать 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 голосов
/ 11 января 2019

Глядя на в этом примере , похоже, что вместо добавления всего PDF к $attachments в виде строки необходимо добавить путь к файлу. $html2pdf->output сохранит PDF-файл на сервере, если вторым аргументом является символ «F», а затем после его сохранения вы сможете включить путь к файлу в файл $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;
}
...