For some of my product I need to send an additional pdf (not an invoice) to my customers.
With the help of this post: https://wordpress.org/support/topic/attach-pdf-to-confirmation-email-for-specific-product/
I was able to attach an attachment to every order confirmation email. Then I tried to change the code to filter by product sku.
In this post I found some infos about the variables that are available and read about some changes for WP3: How to get WooCommerce order details
Here my code that unfortunately doesn’t work and is not attaching anything to the confirmation email anymore:
add_filter( 'woocommerce_email_attachments', 'webroom_attach_to_wc_emails', 10, 3);
function webroom_attach_to_wc_emails ( $attachments , $email_id, $order ) {
// Avoiding errors and problems
if ( ! is_a( $order, 'WC_Order' ) || ! isset( $email_id ) ) {
return $attachments;
}
$file_path = get_stylesheet_directory() . '/Lizenzen/TestAttachment.pdf';
$product_sku = '1234';
if( $email_id === 'customer_processing_order' ){
foreach ($order->get_items() as $item_key => $item ):
$product = $item->get_product();
if ( $product_sku === $product->get_sku() ) {
$attachments[] = $file_path;
}
endforeach;
}
return $attachments;
}
How would I have to change it to check for product category instead of SKU?
A general question would be: How can I debug this php code? Is there a way to show e.g. variables like email_id etc to check if the code gets correct values?