Admin Tools
Admin Tools
Easy PDF Invoices for WooCommerce adds practical admin tooling for managing invoices at scale: an order list column, row-level quick actions, an order edit metabox, three bulk actions, a backfill tool, and CSV export.
Order list column
A new Invoice # column appears on the WooCommerce orders list (HPOS and legacy CPT). It shows the formatted display number plus a small label indicating the document type (Invoice, Receipt, Credit Note).
Hover any row to see the Download PDF quick icon next to the standard View / Complete actions. Click it to download the PDF immediately. The icon is hidden for cancelled, failed, and packing-slip-only orders.
Order edit metabox
Open any order in the admin. The Easy PDF Invoices metabox sits in the order edit sidebar with:
- Document type — Invoice, Receipt, Credit Note, or Packing Slip.
- Number — the formatted display number (e.g.,
INV-2026-000042). - Generated date — when the PDF was last rendered.
- File size — the PDF size on disk.
- Download — stream the existing PDF (or generate it if missing).
- Regenerate — discard the existing PDF and render a fresh one. Useful after editing order data, changing branding, or switching template variants.
- Email customer — re-send the WooCommerce customer-invoice email with the current PDF attached.
Bulk actions
Select multiple orders on the order list, then choose one of three bulk actions:
Regenerate PDFs
Regenerates the PDF for every selected order.
- Inline for the first 50 orders — processed in the same request.
- Action Scheduler for batches above 50 — queued asynchronously.
Skipped orders are usually cancelled or failed orders, where the plugin doesn't generate documents.
Download PDFs (ZIP)
Bundles the selected orders' PDFs into a single ZIP file and streams it to your browser.
- Capped at 200 orders to avoid memory issues.
- Lazy generation — orders without an existing PDF are generated on the fly during ZIP creation.
- Capability + token transient handoff — the ZIP streams on a clean follow-up request rather than during the original bulk-action POST. This avoids buffer issues with large outputs.
Email invoices to customers
Triggers the WooCommerce Customer Invoice / Order Details email for each selected order, with the PDF attached.
- Inline for the first 50 orders.
- Action Scheduler offload above.
Backfill tool
Generates PDFs for past orders that don't have one yet.
Find it under WooCommerce > Settings > Invoices > Advanced > Backfill past orders.
- From date and To date — filter the orders to backfill.
- Force checkbox — regenerate even orders that already have a PDF.
- Run button — queues each order via Action Scheduler.
This is the canonical way to onboard an existing store: install the plugin, run the wizard, then backfill the last few months of orders so customers can download historic receipts from My Account.
CSV export
The Tools panel also has a CSV export form.
- From date and To date — date range filter.
- Document type filter (optional) — invoice, receipt, credit-note, packing-slip, or all.
- Download CSV button — streams the file with a UTF-8 BOM so Excel opens it correctly.
- Invoice number
- Order ID
- Status
- Type
- Generated date
- Customer name
- Customer email
- Total
- Currency
Plugin row links
On the Plugins screen, the Easy PDF Invoices row has three quick links:
- Settings — jumps to WooCommerce > Settings > Invoices.
- Documentation — opens this site in a new tab.
- Support — opens themology.com/support.
Welcome notice
Right after activation, a one-time dismissible notice appears on the dashboard, plugins screen, and WooCommerce admin pages with a Set up now button that launches the wizard.
The notice never returns once dismissed or once the wizard is completed. This is a deliberate compliance choice — the WordPress.org plugin guidelines (specifically guideline 11) prohibit admin hijacking via persistent notices.
WP-CLI commands
The plugin ships with WP-CLI commands for diagnostics and bulk operations from the command line.
wp epdi diagnose
Reports on plugin health: settings status, counter values, storage directory permissions, DOMPDF availability, recent errors.
wp epdi diagnose
wp epdi test-pdf
Generates a test PDF for an order to verify rendering.
# Auto-resolve type from order status
wp epdi test-pdf 123
# Force a specific document type
wp epdi test-pdf 123 --type=invoice
wp epdi test-pdf 123 --type=receipt
wp epdi test-pdf 123 --type=credit-note
wp epdi test-pdf 123 --type=packing-slip
# Force regeneration even if a PDF exists
wp epdi test-pdf 123 --force
Output includes the file path, file size, and PDF object count.
wp epdi list-documents
Lists generated documents.
# All documents (most recent first)
wp epdi list-documents
# Cap to N rows
wp epdi list-documents --limit=50
wp epdi download-url
Prints the secure download URL for an order.
wp epdi download-url 123
Useful for debugging the download endpoint outside the email pipeline.
Audit trail and logging
The plugin uses the WooCommerce logger. View logs under WooCommerce > Status > Logs, source easy-pdf-invoices.
By default, only errors are logged. Enable Settings > Invoices > Advanced > Debug mode to log info events too: number assignments, PDF generation, attachments, downloads.
Debug mode is verbose. Turn it off in production once you've confirmed your flow works.
Permissions
All admin actions require the manage_woocommerce capability:
- Plugin settings
- Setup wizard
- Order metabox actions (Download, Regenerate, Email)
- Bulk actions (Regenerate, Download ZIP, Email)
- Backfill
- CSV export
- WP-CLI commands
manage_woocommercecapability (admins always pass).- Logged-in customer who owns the order.
- Order key match via
hash_equals()for guests.
Related
- Settings Reference — every setting documented.
- Customer Downloads — frontend download surfaces.
- Developer Guide — extend admin tools with hooks.