Customer can’t find their invoices. Accountant needs bulk PDFs. Invoice went to the wrong email. Here is what is actually happening and how to fix every one of these.
Extract Invoice Data → See All ProblemsSourced from WordPress support forums and plugin review threads across WooCommerce invoice and ERP plugins.
Customer logs into their WooCommerce account, goes to Orders, and there is no PDF download button. They email you asking for a copy of every invoice manually.
woocommerce_my_account_my_orders_actions filter — see the code example below.The buyer ordered but the accountant needs the invoice at a separate finance@ address. WooCommerce only resends to the billing email on the order.
End of quarter or audit time. Accountant asks for all invoices as PDFs. You have 200+ orders and no bulk export button.
wp-content/uploads/wpo_wcpdf/ — download the entire folder via FTP. If PDFs are not stored to disk, use WP-CLI with a loop script to generate them on demand.Using Sliced Invoices or a non-WooCommerce invoice plugin and there is no way to add or manage client records. Every invoice requires manually typing the client details.
Customer checked out as guest, email got lost or went to spam, and now they need the invoice. There is no account to log into and no way to retrieve it.
Comparing 4 WooCommerce invoice and ERP plugins on client-facing workflow features.
| Feature | Print Invoices & Delivery Notes | Sliced Invoices | WP ERP | Flexible PDF Invoices |
|---|---|---|---|---|
| My Account download button | ✓ Automatic | ⚠ Pro only | ✗ N/A | ✓ Configurable |
| Email resend from admin | ✓ | ✓ | ✓ | ✓ |
| Custom email recipient | ✗ No | ✓ Per-invoice | ✓ CRM contacts | ✗ No |
| Bulk PDF export | ✗ No | ⚠ Pro only | ✓ Built-in | ⚠ Pro only |
| Client management | ✗ No | ✓ Custom post type | ✓ Full CRM | ✗ No |
| Guest invoice access | ✗ Email only | ✓ Unique link | ✗ Login required | ✗ Email only |
Based on plugin documentation, support forum features, and free-tier capabilities as of April 2026.
If your invoice plugin does not add a My Account download button natively, use this filter in your theme’s functions.php:
// Add invoice download button to My Account orders
add_filter('woocommerce_my_account_my_orders_actions',
function($actions, $order) {
$invoice_url = wp_nonce_url(
add_query_arg(array(
'action' => 'download_invoice',
'order_id' => $order->get_id(),
), home_url('/')),
'download_invoice_' . $order->get_id()
);
// Only show if order is processing or completed
if (in_array($order->get_status(),
array('processing', 'completed'))) {
$actions['invoice_download'] = array(
'url' => $invoice_url,
'name' => 'Download Invoice',
);
}
return $actions;
}, 10, 2);
Pair this with an init action that handles the download request — check the nonce, generate or locate the PDF, and serve it with the appropriate headers.
This snippet adds a BCC header to every customer invoice email so your accountant automatically receives a copy without the customer seeing the extra recipient:
// BCC accountant on all WooCommerce invoice emails
add_filter('woocommerce_email_headers',
function($headers, $email_id, $order) {
if ($email_id === 'customer_invoice') {
$headers .= "Bcc: accountant@yourcompany.com\r\n";
}
return $headers;
}, 10, 3);
Replace accountant@yourcompany.com with the actual email address. Use Cc: instead of Bcc: if you want the customer to see that the accountant was copied.
If you do not have a premium invoice plugin with bulk export, there are two practical approaches:
wp-content/uploads/wpo_wcpdf/ or a similar directory. Connect via SFTP and download the entire folder. Filter by date modified if you only need a specific quarter.Enable “Allow My Account invoice download” in your invoice plugin settings. In WooCommerce PDF Invoices & Packing Slips, this is under Documents → Invoice. Print Invoice & Delivery Notes shows the link by default. If your plugin lacks this, add a custom action button using the woocommerce_my_account_my_orders_actions filter in functions.php.
Edit the order, temporarily change the billing email to the desired recipient, use Order Actions → “Email invoice / order details”, then change the email back. For a permanent solution, add a BCC filter in functions.php targeting the customer_invoice email ID to automatically copy invoice emails to your accountant.
Premium plugins like WooCommerce PDF Invoices & Packing Slips Pro support Bulk Actions → “PDF Invoices” from the orders list. Without premium, connect via FTP and download the wp-content/uploads/wpo_wcpdf/ directory. If PDFs are generated on demand, use WP-CLI to loop through orders and trigger generation.
Not through My Account — they have no login. Sliced Invoices gives each invoice a unique permalink that works without authentication. Other plugins rely on the PDF attachment in the order confirmation email. Resend the email from admin if the customer lost it, or enable account creation at checkout to prevent this going forward.
Use the woocommerce_email_headers filter in your theme’s functions.php. Target the customer_invoice email ID and append a Bcc: header with your accountant’s email. This automatically copies every invoice email without changing the visible recipient the customer sees.
If you have accumulated invoice PDFs and need structured data — client names, addresses, line items, totals, tax amounts — for reporting or migration, use Useful Patch. Upload WooCommerce invoices (including custom templates) and get structured JSON with every field extracted. The PDF never leaves your browser.
Upload any WooCommerce invoice and get back structured JSON with client details, line items, and totals — without the file leaving your browser.
Try Free — No Signup Start Developer Plan — £29/mo