This handy code snippet will add Featured Images to your WooCommerce PDF Invoices. It simply just pulls each featured image and inserts it into each line-item on the PDF invoice.
This will only work with the WPOvernight PDF Invoices & Packing Slips plugin
Required Plugin: https://en-au.wordpress.org/plugins/woocommerce-pdf-invoices-packing-slips/
Use your your own risk
<?php
add_filter('wpo_wcpdf_use_path','v8_wcpdf_use_local_image_paths',10,2);
function v8_wcpdf_use_local_image_paths($use_path,$document_type=''){
return ($document_type==='invoice') ? true : $use_path;
}
add_filter('wpo_wcpdf_order_item_data','v8_wcpdf_thumb_float_left_for_entire_item',10,3);
function v8_wcpdf_thumb_float_left_for_entire_item($data,$order,$document_type){
if($document_type!=='invoice'){ return $data; }
if(empty($data['product']) || !is_object($data['product'])){ return $data; }
$product = $data['product'];
$image_id = (int) $product->get_image_id();
if($image_id<=0){ return $data; }
$src = wp_get_attachment_image_url($image_id,'thumbnail');
if(empty($src)){ return $data; }
$uploads = wp_get_upload_dir();
if(!empty($uploads['baseurl']) && !empty($uploads['basedir'])){
$local_path = str_replace($uploads['baseurl'],$uploads['basedir'],$src);
if($local_path && file_exists($local_path)){
$src = $local_path;
}
}
$thumb_html = '<img class="v8-wcpdf-thumb-float" src="'.esc_attr($src).'" alt="" />';
if(!empty($data['name'])){
$data['name'] = $thumb_html.$data['name'];
}
return $data;
}
add_action('wpo_wcpdf_custom_styles','v8_wcpdf_thumb_float_css',10,2);
function v8_wcpdf_thumb_float_css($document_type,$document){
if($document_type!=='invoice'){ return; }
?>
.v8-wcpdf-thumb-float{float:left;height:16mm;width:16mm;margin:0 2mm 1.5mm 0;display:block;}
.wpo-wcpdf-item-meta,.wpo-wcpdf-item-meta *,.meta,.meta *{clear:none !important;}
table.order-details tbody tr td:first-child:after{content:"";display:block;clear:both;}
<?php
}


