В вашем коде есть некоторые ошибки: Аргумент функции $email_object
является неправильным именем переменной и должен быть вместо $order
, чтобы соответствовать первому оператору if.
Теперь для пути присоединения, связанного стема, которую вы будете использовать:
get_stylesheet_directory()
для дочерней темы get_template_directory()
для родительской темы (веб-сайт без дочерней темы)
Идентификатор электронной почты customer_completed_order
правильный для целевого "завершенного" уведомления по электронной почте.
Поскольку в вашем коде не используется переменный аргумент $order
, ! is_a( $order, 'WC_Order' )
не требуется, поэтому рабочий код будет:
add_filter( 'woocommerce_email_attachments', 'attach_pdf_file_to_customer_completed_email', 10, 3);
function attach_pdf_file_to_customer_completed_email( $attachments, $email_id, $order ) {
if( isset( $email_id ) && $email_id === 'customer_completed_order' ){
$attachments[] = get_stylesheet_directory() . '/Q-0319B.pdf'; // Child theme
}
return $attachments;
}
Код помещается в файл functions.php вашей активной дочерней темы (или активной темы).Протестировано и работает.
Для родительской темы замените:
$attachments[] = get_stylesheet_directory() . '/Q-0319B.pdf'; // Child theme
на следующую строку:
$attachments[] = get_template_directory() . '/Q-0319B.pdf'; // Parent theme