web-dev-qa-db-ja.com

woocommerce_email_attachmentsフィルター引数

WooCommerceの新規注文メールにPDF添付ファイルを生成しようとしていますが、これが私の発見です。

add_filter('woocommerce_email_attachments', 'attach_terms_conditions_pdf_to_email');
function attach_terms_conditions_pdf_to_email($attachments, $type, $object) {
    $your_pdf_path = get_template_directory() . '/file.pdf';
    $attachments[] = $your_pdf_path;
    return $attachments;
}

これは動作しますが、順序に基づいて動的にPDFを生成する必要があります($object->orderにある必要があります)。ただし、$attachmentsがコールバック関数に渡される - $typeおよび$objectは常にnullです。 func_get_args()は空の$attachments配列だけを与えます。

1
Avram

暗闇の中での軽度の刺し傷、あなたはadd_filterにあなたの受け入れられた引数の数を言っていません。それは重要な要素です。優先順位についても明確にする必要があります。

add_filter( 'woocommerce_email_attachments',
  'attach_terms_conditions_pdf_to_email', 10, 3 );
1
totels