WPC PDF Invoices & Packing Slips is a powerful and flexible WooCommerce plugin that automatically generates PDF invoices for your orders and attaches them to customer confirmation emails.
What sets this plugin apart is its robust Custom Template Engine. You are not limited to the built-in professional designs; you can easily create, upload, and preview your own layouts. With a dedicated Preview System, you can instantly see how your templates look using data from your latest order—without assigning real invoice numbers or saving temporary files to your database.

The templates are built with developers in mind, offering numerous action and filter hooks at every output point (header, items, totals, footer, etc.), making it incredibly easy for other plugins or custom code to inject additional information like barcodes, tracking numbers, or custom metadata.
Main Features
- Dynamic Preview Mode: Instantly preview any standard or custom template with your latest order data in a new tab. No new invoice numbers are assigned, and no files are saved during preview.
- Custom Template Support: Upload your own PHP templates to your theme’s `wpcpi_templates/` folder and select them directly from the admin interface.
- Professional Built-in Templates: Choose from minimalist, modern, or elegant designs for both invoices and packing slips.
- Developer Friendly: Extensive use of hooks (`do_action` and `apply_filters`) throughout the templates for deep customization.
- Automatic Email Attachment: Attach PDF invoice and/or packing slip to any standard WooCommerce email (Processing, Completed, etc.).
- Sequential Numbering: Robust sequential invoice numbering with configurable format (`[prefix][year][number][suffix]`), reset cycles (monthly/yearly), and zero-padding.
- Bulk Actions: Download multiple invoices or packing slips at once as a ZIP archive from the order list.
- Flexible Paper Settings: Independence between invoice and packing slip for paper size (A4, Letter, Legal) and orientation.
- Shop Branding: Upload your shop logo (supported in Base64 for fast PDF rendering) and configure tax/VAT details.
- My Account Integration: Allow customers to download their invoices directly from their order history on the frontend.
Template Customization & Developer Hooks
Overriding Templates
To customize the default templates or add your own, copy the PHP files from the plugin’s `templates/pdf/` folder into your theme:
- wp-content/themes/your-theme/wpcpi_templates/invoice-my-style.php
- wp-content/themes/your-theme/wpcpi_templates/packing-slip-standard.php
Any file following the naming convention `invoice-*.php` or `packing-slip-*.php` inside that folder will automatically appear in the “Custom Template” dropdown in the settings.
Action & Filter Hooks
The plugin is highly extensible. Here are some key hooks available in the templates:
- `wpcpi_before_document_content`: Fires before the main content container.
- `wpcpi_template_header`: Customize the logo and shop information area.
- `wpcpi_after_customer_details`: Great for adding custom order metadata.
- `wpcpi_order_item_meta`: Inject item-specific data (like serial numbers or barcodes).
- `wpcpi_template_footer`: Add dynamic legal notices or seasonal promotional text.
- `wpcpi_formatted_invoice_number`: Filter to adjust how the final invoice string is displayed.