Title: Invoices for WooCommerce
Author: Bas Elbers
Published: <strong>December 7, 2013</strong>
Last modified: February 8, 2025

---

Search plugins

![](https://ps.w.org/woocommerce-pdf-invoices/assets/banner-772x250.png?rev=1148369)

This plugin **hasn’t been tested with the latest 3 major releases of WordPress**.
It may no longer be maintained or supported and may have compatibility issues when
used with more recent versions of WordPress.

![](https://ps.w.org/woocommerce-pdf-invoices/assets/icon-128x128.png?rev=1128583)

# Invoices for WooCommerce

 By [Bas Elbers](https://profiles.wordpress.org/baaaaas/)

[Download](https://downloads.wordpress.org/plugin/woocommerce-pdf-invoices.3.2.1.zip)

 * [Details](https://wordpress.org/plugins/woocommerce-pdf-invoices/#description)
 * [Reviews](https://wordpress.org/plugins/woocommerce-pdf-invoices/#reviews)
 *  [Installation](https://wordpress.org/plugins/woocommerce-pdf-invoices/#installation)
 * [Development](https://wordpress.org/plugins/woocommerce-pdf-invoices/#developers)

 [Support](https://wordpress.org/support/plugin/woocommerce-pdf-invoices/)

## Description

_Invoicing can be time consuming. Well, not anymore! Invoices for WooCommerce automates
the invoicing process by generating and sending it to your customers._

This WooCommerce plugin generates PDF invoices and PDF packing slips, attaches it
to WooCommerce email types of your choice and sends invoices to your customers’ 
Dropbox, Google Drive, OneDrive or Egnyte. Choose between multiple clean and customizable
templates.

#### Main features

 * Automatic PDF invoice generation and attachment.
 * Manually create or delete PDF invoice.
 * Attach PDF invoice to multiple WooCommerce email types of your choice.
 * Generate PDF packing slips.
 * Connect with Google Drive, Egnyte, Dropbox or OneDrive.
 * Multiple clean and highly customizable PDF Invoice templates.
 * WooCommerce order numbering or built-in sequential invoice numbering.
 * Many invoice and date format customization options.
 * Advanced items table with refunds, discounts, different item tax rates columns
   and more.
 * Download invoice from My Account page.
 * Mark invoices as paid.

**Invoices for WooCommerce Premium**

This plugin offers a premium version which comes with the following features:

– Attach PDF invoices to many more email types including third party plugins
 – 
Send credit notes and cancelled PDF invoices – Fully customize PDF invoice table
content by modifying line item columns and total rows – Automatically send a reminder
email configurable within a specific period of time and display a payment due date–
Bulk generate PDF invoices – Bulk export and/or download PDF invoices – Bill periodically
by generating and sending global invoices – Let customers decide to generate a PDF
invoice on checkout – Change the font of the PDF invoices – Add additional PDF files
to PDF invoices – Send customer invoices directly to multiple recipients – Compatible
with [WooCommerce Subscriptions](http://www.woothemes.com/products/woocommerce-subscriptions)
plugin emails.

– [Upgrade to Invoices for WooCommerce Premium >>](http://wcpdfinvoices.com)

#### Support

Support can take place on the [forum page](https://wordpress.org/support/plugin/woocommerce-pdf-invoices),
where we will try to respond as soon as possible.

#### Contributing

If you want to add code to the source code, report an issue or request an enhancement,
feel free to use [GitHub](https://github.com/baselbers/woocommerce-pdf-invoices).

#### Translating

Contribute a translation on [GitHub](https://github.com/baselbers/woocommerce-pdf-invoices#translating).

## Screenshots

[⌊General settings⌉⌊General settings⌉[

General settings

[⌊Template settings⌉⌊Template settings⌉[

Template settings

[⌊View or Cancel invoice from the order page.⌉⌊View or Cancel invoice from the order
page.⌉[

View or Cancel invoice from the order page.

[⌊Create new invoice from the order page.⌉⌊Create new invoice from the order page
.⌉[

Create new invoice from the order page.

[⌊View invoice from the shop order page.⌉⌊View invoice from the shop order page.⌉[

View invoice from the shop order page.

[⌊Download invoice from account.⌉⌊Download invoice from account.⌉[

Download invoice from account.

[⌊Nice and clean template called 'Micro'.⌉⌊Nice and clean template called 'Micro'
.⌉[

Nice and clean template called ‘Micro’.

[⌊Nice and clean template called 'Minimal'.⌉⌊Nice and clean template called 'Minimal'
.⌉[

Nice and clean template called ‘Minimal’.

## Installation

#### Automatic installation

Automatic installation is the easiest option as WordPress handles the file transfers
itself and you don’t even need to leave your web browser. To do an automatic install
of WooCommerce, log in to your WordPress admin panel, navigate to the Plugins menu
and click Add New.

In the search field type “Invoices for WooCommerce” and click Search Plugins. Once
you’ve found our plugin you can view details about it such as the the point release,
rating and description. Most importantly of course, you can install it by simply
clicking Install Now. After clicking that link you will be asked if you’re sure 
you want to install the plugin. Click yes and WordPress will automatically complete
the installation.

#### Manual installation

The manual installation method involves downloading our plugin and uploading it 
to your webserver via your favourite FTP application.

 1. Download the plugin file to your computer and unzip it
 2. Using an FTP program, or your hosting control panel, upload the unzipped plugin
    folder to your WordPress installation’s wp-content/plugins/ directory.
 3. Activate the plugin from the Plugins menu within the WordPress admin.

## FAQ

### How to add your custom template?

Copy the default template files (including folder) you’ll find in `plugins/woocommerce-
pdf-invoices/includes/templates/invoice/simple` to `uploads/woocommerce-pdf-invoices/
templates/invoice/simple`. The plugin will automatically detect the template and
makes it available for selection within the Template Settings. Now go ahead and 
start making some changes to the template files! 🙂

Important: Before you update the plugin, always have a look at the Changelog if 
their have been any changes to the template files. There will be updates that require
updating your custom template!

### How to add a fee to the invoice?

To add a fee to WooCommerce and your invoice, simply add the following action to
your themes `functions.php`.

    ```
    function add_woocommerce_fee() {
        global $woocommerce;

        if ( is_admin() && ! defined( 'DOING_AJAX' ) )
            return;

        $amount = 5;
        $woocommerce->cart->add_fee( 'FEE_NAME', $amount, true, 'standard' );
    }
    add_action( 'woocommerce_cart_calculate_fees','add_woocommerce_fee' );
    ```

### How to hide order item meta?

To hide order item meta from the invoice, simply add the following filter to your
themes `functions.php`.

    ```
    /**
     * Hide order itemmeta on Invoices for WooCommerce' invoice template.
     *
     * @param array $hidden_order_itemmeta itemmeta.
     *
     * @return array
     */
    function bewpi_alter_hidden_order_itemmeta( $hidden_order_itemmeta ) {
        $hidden_order_itemmeta[] = '_wc_cog_item_cost';
        $hidden_order_itemmeta[] = '_wc_cog_item_total_cost';
        $hidden_order_itemmeta[] = '_subscription_interval';
        $hidden_order_itemmeta[] = '_subscription_length';
        // end so on..
        return $hidden_order_itemmeta;
    }
    add_filter( 'bewpi_hidden_order_itemmeta', 'bewpi_alter_hidden_order_itemmeta', 10, 1 );
    ```

### How to change the common PDF options?

To change the more common options of the PDF, use below example.

    ```
    function custom_bewpi_mpdf_options( $options ) {
        $options['mode'] = '';
        $options['format'] = ''; // use [format]-L or [format]-P to force orientation (A4-L will be size A4 with landscape orientation)
        $options['default_font_size'] = 0;
        $options['default_font'] = 'opensans';
        $options['margin_left'] = 14;
        $options['margin_right'] = 14;
        $options['margin_top'] = 14;
        $options['margin_bottom'] = 0;
        $options['margin_header'] = 14;
        $options['margin_footer'] = 6;
        $options['orientation'] = 'P'; // Also try to force with format option

        return $options;
    }
    add_filter( 'bewpi_mpdf_options', 'custom_bewpi_mpdf_options' );
    ```

### How to change the more advanced PDF options?

To fully customize the PDF, use below code. This filter gives you full control over
the mPDF library. Check the mPDF [manual](https://www.dropbox.com/s/h44f7v5anvcmmvl/mpdfmanual.pdf?dl=0)
for more info.

    ```
    function bewpi_mpdf( $mpdf, $document ) {
        // change the direction of the invoice to RTL
        $mpdf->SetDirectionality( 'rtl' );

        return $mpdf;
    }
    add_filter( 'bewpi_mpdf', 'bewpi_mpdf', 10, 2 );
    ```

### How to display invoice download button on specific template files?

Add below code for example to your “thankyou” page or “customer-completed-order”
email template.

    ```
    echo do_shortcode( '[bewpi-download-invoice title="Download (PDF) Invoice {formatted_invoice_number}" order_id="' . $order->get_id() . '"]' );
    ```

For use in WordPress editor use below shortcode. This will only work if you replace“
ORDER_ID” with an actual order id.

    ```
    [bewpi-download-invoice title="Download (PDF) Invoice {formatted_invoice_number}" order_id="ORDER_ID"]
    ```

Note: Download button will only be displayed when PDF exists and order has been 
paid.

### How to skip invoice generation based on specific payment methods?

Add the name of the payment method to the array.

    ```
    function bewpi_attach_invoice_excluded_payment_methods( $payment_methods ) {
        return array( 'bacs', 'cod', 'cheque', 'paypal' );
    }
    add_filter( 'bewpi_attach_invoice_excluded_payment_methods', 'bewpi_attach_invoice_excluded_payment_methods', 10, 2 );
    ```

### How to skip invoice generation in general?

Add below function to your themes ‘functions.php’ file.

    ```
    function bewpi_skip_invoice_generation( $skip, $status, $order ) {
        // Do your stuff based on the order.

        return true; // True to skip.
    }
    add_filter( 'bewpi_skip_invoice_generation', 'bewpi_skip_invoice_generation', 10, 3 );
    ```

### How to allow specific roles to download invoice?

Add the name of the role to the array. By default shop managers and administrators
are allowed to download invoices.

    ```
    function bewpi_allowed_roles_to_download_invoice($allowed_roles) {
        // available roles: shop_manager, customer, contributor, author, editor, administrator
        $allowed_roles[] = "editor";
        // end so on..
        return $allowed_roles;
    }
    add_filter( 'bewpi_allowed_roles_to_download_invoice', 'bewpi_allowed_roles_to_download_invoice', 10, 2 );
    ```

### How to alter formatted invoice number?

Add following filter function to your ‘functions.php’ within your theme.

    ```
    function alter_formatted_invoice_number( $formatted_invoice_number, $document_type ) {
       if ( $document_type === 'invoice/global' ) { // 'simple' or 'global'.
          // add M for global invoices.
          return 'M' . $formatted_invoice_number;
       }

       return $formatted_invoice_number;
    }
    add_filter( 'bewpi_formatted_invoice_number', 'alter_formatted_invoice_number', 10, 2 );
    ```

### How to add custom fields/meta-data to the PDF invoice template?

Use below code to display meta-data. Replace `{META_KEY}` with the actual key. If
you use another plugin, just ask the key from the author of that plugin.

    ```
    <?php echo BEWPI()->templater()->get_meta( '{META_KEY}' ); ?>
    ```

Important: A custom template is required to add a custom field to the PDF invoice.

### How to use a different template based on some order variable?

Use below code to use a different template based on WPML order language. You can
for example change the function to use a different template based on the payment
method instead.

    ```
    /**
     * Change template based on WPML order language.
     * Make sure to create custom templates with the correct names or the templates won't be found.
     *
     * @param string $template_name template name.
     * @param string $template_type template type like global or simple.
     * @param int    $order_id WC Order ID.
     *
     * @return string
     */
    function change_template_based_on_order_language( $template_name, $template_type, $order_id ) {
        $order_language = get_post_meta( $order_id, 'wpml_language', true );

        if ( false === $order_language ) {
            return $template_name;
        }

        switch ( $order_language ) {
            case 'en':
                $template_name = 'minimal-en';
                break;
            case 'nl':
                $template_name = 'minimal-nl';
                break;
        }

        return $template_name;
    }
    add_filter( 'wpi_template_name', 'change_template_based_on_order_language', 10, 3 );
    ```

### How to add invoice information meta?

Use below code to add invoice information meta to the PDF invoice template.

    ```
    /**
     * Add PDF invoice information meta (from third party plugins).
     *
     * @param array         $info Invoice info meta.
     * @param BEWPI_Invoice $invoice Invoice object.
     * @since 2.9.8
     *
     * @return array.
     */
    function add_invoice_information_meta( $info, $invoice ) {
        $payment_gateway = wc_get_payment_gateway_by_order( $invoice->order );

        // Add PO Number from 'WooCommerce Purchase Order Gateway' plugin.
        if ( $payment_gateway && 'woocommerce_gateway_purchase_order' === $payment_gateway->get_method_title() ) {
            $po_number = WPI()->get_meta( $invoice->order, '_po_number' );
            if ( $po_number ) {
                $info['po_number'] = array(
                    'title' => __( 'Purchase Order Number:', 'woocommerce-pdf-invoices' ),
                    'value' => $po_number,
                );
            }
        }

        // Add VAT Number from 'WooCommerce EU VAT Number' plugin.
        $vat_number = WPI()->get_meta( $invoice->order, '_vat_number' );
        if ( $vat_number ) {
            $info['vat_number'] = array(
                'title' => __( 'VAT Number:', 'woocommerce-pdf-invoices' ),
                'value' => $vat_number,
            );
        }

        return $info;
    }
    add_filter( 'wpi_invoice_information_meta', 'add_invoice_information_meta', 10, 2 );
    ```

### How to change the invoice date?

Use below filter to change the invoice date.

    ```
    /**
     * Change invoice date to order date in order to regenerate old invoices and keep the date.
     *
     * @param string                 $invoice_date date of invoice.
     * @param BEWPI_Abstract_Invoice $invoice      invoice object.
     *
     * @return string needs to be in mysql format.
     */
    function change_invoice_date_to_order_date( $invoice_date, $invoice ) {
        // get_date_paid() or get_date_created().
        $date_completed = $invoice->order->get_date_completed();
        if ( null !== $date_completed ) {
            return $date_completed->date( 'Y-m-d H:i:s' );
        }

        return $invoice_date;
    }
    add_filter( 'wpi_invoice_date', 'change_invoice_date_to_order_date', 10, 2 );
    ```

### How to update the PDF invoice when it already has been sent to the customer?

Since version 2.9.4 the plugin removed the ability to update the PDF invoice when
it already has been sent to the customer. If in what manner you still want to update
the invoice, you can do so by resetting a custom field.

 1. Go to Edit Order page.
 2. Change custom field ‘bewpi_pdf_invoice_sent’ value within custom field widget to
    0.
 3. Refresh page and Update button will appear.

## Reviews

![](https://secure.gravatar.com/avatar/6dffb23c0683caa763183dc3dfa85a54eab92f4a85972d162633259e882b38a3?
s=60&d=retro&r=g)

### 󠀁[Shocking product and support!](https://wordpress.org/support/topic/shocking-product-and-support/)󠁿

 [whdsolutions](https://profiles.wordpress.org/whdsolutions/) March 31, 2023

The plugin (premium and free) does not work as intended. Support is NON EXISTENT!
We feel a bit ripped-off as we purchased the premium version.

![](https://secure.gravatar.com/avatar/40a297f6795be2d4306c24877d1422fe71d860b214a5902e14c75a5e4fba0c0e?
s=60&d=retro&r=g)

### 󠀁[Plugin itself is great, but no premium support](https://wordpress.org/support/topic/plugin-itself-is-great-but-no-premium-support/)󠁿

 [rootagency](https://profiles.wordpress.org/rootagency/) October 27, 2022

I believe this plugin, as well as the premium version, is no longer supported by
the developer. We’ve contacted the developer 2 weeks ago regarding an issue with
meta data showing HTML tags as plain text on invoices. After a second follow-up 
via email on our end we still haven’t gotten a response regarding this issue. The
plugin itself is great but the lack of premium support makes us lose confidence 
and pushes us to look for another solution.

![](https://secure.gravatar.com/avatar/815532cba861e2d4a4103963efeee4283559ebd3c17e163405d03bd1bccaecb4?
s=60&d=retro&r=g)

### 󠀁[Full of Fatal errors](https://wordpress.org/support/topic/full-of-fatal-errors/)󠁿

 [Saurav Sharma](https://profiles.wordpress.org/sauravhny/) September 13, 2022 1
reply

From last 1 month my website was very slow. Today I get response from server. Lots
of error PHP Fatal error: Uncaught Error: Call to undefined function WPO\\WC\\PDF_Invoices\\
list_files() in /woocommerce-pdf-invoices-packing-slips/includes/class-wcpdf-main.
php:909 woocommerce-pdf-invoices-packing-slips/includes/class-wcpdf-main.php(882):
WPO\\WC\\PDF_Invoices\\Main->temporary_files_cleanup(1662349171)\n#1 php(138): do_action_ref_array('
wp_scheduled_de…', Array)\n#5 {main}\n thrown in /plugins/woocommerce-pdf-invoices-
packing-slips/includes/class-wcpdf-main.php on line 909, referer:/wp-cron.php?doing_wp_cron
=1662953971.6180651187896728515625 PHP Fatal error: Uncaught Error: Call to undefined
function WPO\\WC\\PDF_Invoices\\list_files() in /woocommerce-pdf-invoices-packing-
slips/includes/class-wcpdf-main.php:909\n Stack trace:\n#0 /woocommerce-pdf-invoices-
packing-slips/includes/class-wcpdf-main.php(882): WPO\\WC\\PDF_Invoices\\Main->temporary_files_cleanup(
1662262768)\n#1 php(138): do_action_ref_array('wp_scheduled_de…', Array)\n#5 {main}\
n thrown in plugins/woocommerce-pdf-invoices-packing-slips/includes/class-wcpdf-
main.php on line 909, referer: wp-cron.php?doing_wp_cron=1662867567.9611198902130126953125

![](https://secure.gravatar.com/avatar/21126189939a16a09320e11383d902163b57cac7b98c2d72456fab3b9d336cab?
s=60&d=retro&r=g)

### 󠀁[ZERO support!!!](https://wordpress.org/support/topic/euro-symbol-side/)󠁿

 [Don](https://profiles.wordpress.org/openwebie/) July 20, 2022

Paid for the premium plugin but receive zero support. The invoices have started 
to get generated blank. Tried to get through to support via the support forum and
official website but no response as of today. It has been a month or so at this 
stage.

![](https://secure.gravatar.com/avatar/6bb224edc18b7e314bdba0d0a1d8416ad0522655a225c74973dfb112ce78bcfd?
s=60&d=retro&r=g)

### 󠀁[Great but too expensive](https://wordpress.org/support/topic/great-but-too-expensive/)󠁿

 [pepinieredescarlines](https://profiles.wordpress.org/pepinieredescarlines/) June
8, 2022

Great plug in i use for several years now. Only minus one star because, as a small
online business, i’ve never understood why premium plugins are so expensive. I’d
be happy to pay 10$/year for 1 site personal use on several plugins, but multiply
50-60$ by 10-20 plugins is just unaffordable… So bad

![](https://secure.gravatar.com/avatar/0572f9cecd29b88c132f5f128928c31fdf46b0e8105a5eb7b8362c905e29baea?
s=60&d=retro&r=g)

### 󠀁[Lack of support, failing premium feature, no refund](https://wordpress.org/support/topic/lack-of-support-failing-premium-feature-no-refund/)󠁿

 [argosmedia](https://profiles.wordpress.org/argosmedia/) November 21, 2021 2 replies

It seems the maker has no interest in supporting this plugin anymore. Most support
topics here stay unanswered. I have even bought the premium version for a particular
extra feature and hope on decent support. Very, very slow and incomplete support
and in the end just no response anymore at all. However, he did remove the (buggy)
feature I tried to get working from his promo website, instead of helping me out.
I asked for a refund more than once, but never got a reply. I wasted money, several
weeks time and effort on this plugin.

 [ Read all 470 reviews ](https://wordpress.org/support/plugin/woocommerce-pdf-invoices/reviews/)

## Contributors & Developers

“Invoices for WooCommerce” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Bas Elbers ](https://profiles.wordpress.org/baaaaas/)
 *   [ George Ciobanu ](https://profiles.wordpress.org/giucu91/)

“Invoices for WooCommerce” has been translated into 13 locales. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/woocommerce-pdf-invoices/contributors)
for their contributions.

[Translate “Invoices for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/woocommerce-pdf-invoices)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/woocommerce-pdf-invoices/),
check out the [SVN repository](https://plugins.svn.wordpress.org/woocommerce-pdf-invoices/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/woocommerce-pdf-invoices/)
by [RSS](https://plugins.trac.wordpress.org/log/woocommerce-pdf-invoices/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 3.2.1 – February 8. 2025

 * Downgrade psr/log to 1.1 in order to ensure compatibility with php 7.4.x and 
   some plugins like WooCommerce PayPal Payments.

#### 3.2.0 – February 7. 2025

 * Made a review of plugin’s code.

#### 3.1.9 – October 12, 2021

 * Fixed: Fixed action name.

#### 3.1.8 – September 17, 2021

 * Fixed: Fatal error.

#### 3.1.7 – July 13, 2021

 * Improved: Plugin name.
 * Improved: Translation files.

#### 3.1.6 – April 23, 2021

 * Removed: Iframe and other sidebar social media links.

#### 3.1.5 – April 21, 2021

 * Improved: Translation files.

#### 3.1.4 – September 17, 2020

 * Fixed: Translation files by adding keywords.

#### 3.1.3 – August 31, 2020

 * Fixed: Fatal error.

#### 3.1.2 – August 31, 2020

 * Added: Filter to add custom information.
 * Fixed: Fixed last total row border weight.
 * Fixed: jQuery .live() has been removed.
 * Fixed: Inconsistent number of args passed to woocommerce_order_item_meta_start
   thanks to @cyjosh.

#### 3.1.1 – June 21, 2020

 * Fixed: Company logo PNG not working.
 * Fixed: Company details not showing in template.

#### 3.1.0 – June 17, 2020

 * Added: Packing slip meta box to Edit Order page to generate packing slip.
 * Added: Param to filters wpi_after_invoice_content and wpi_before_invoice_content
   and changed prefix.
 * Added: Filter ‘wpi_after_document_generation’.
 * Added: Filter ‘wpi_pdf_invoice_filename’ to change the name of the pdf invoice
   file.
 * Added: Filters ‘wpi_show_my_account_pdf’ and ‘wpi_show_download_invoice_shortcode’
   to override displaying the invoice based on paid status.
 * Added: Filter ‘wpi_invoice_number’ to change the invoice number.
 * Improved: Filter ‘bewpi_formatted_invoice_number’ to ‘wpi_formatted_invoice_number’.
 * Improved: NL translation files thanks to @freasy.
 * Improved: Invoice number format only allowing letters, numbers, whitespaces and
   hyphens minuses.
 * Improved: Formatted company address and details by splitting into separate functions.
 * Fixed: Settings error notices not showing.
 * Fixed: Replacing placeholders while getting options.
 * Fixed: mPDF compatibility with PHP 7.4.

#### 3.0.11 – November 8, 2019

 * Added: Company registration number.

#### 3.0.10 – October 28, 2019

 * Fixed: Fatal errors when using micro template.

#### 3.0.9 – October 26, 2019

 * Improved: Custom logo upload setting by using the native media library.

#### 3.0.8 – August 30, 2019

 * Fixed: Reset invoice counter not deleting invoices.

#### 3.0.7 – June 11, 2019

 * Fixed: Packing slip not displaying custom meta and user meta fields.

#### 3.0.6 – June 7, 2019

 * Improved: Sequential invoice numbering by refactoring code.

#### 3.0.5 – May 31, 2019

 * Fixed: Sequential invoice numbering not incrementing.

#### 3.0.4 – May 21, 2019

 * Fixed: Moving get_formatted_base_address() to WPI() instance.

#### 3.0.3 – May 20, 2019

 * Improved: Renamed ‘wpi_invoice_date’ filter to ‘wpi_invoice_custom_date’.
 * Fixed: Debug button not showing on edit order page.
 * Fixed: Accessing constant directly from function causing syntax errors.

#### 3.0.2 – April 25, 2019

 * Fixed: Using order number as invoice number.
 * Fixed: Fatal error sabre ubl_invoice dependency.
 * Fixed: Formatted base address not showing on packing slips.

#### 3.0.1 – April, 2019

 * Fixed: Fatal error PLUGIN_SLUG constant.

#### 3.0.0 – April, 2019

 * Added: Debug settings tab with debug information.
 * Added: Loading textdomain from Loco Translate folder wp-content/languages/loco/
   plugins.
 * Added: Filters to add (custom) customer address fields.
 * Improved: Translations and updated language files.
 * Improved: Options not loading on every request.
 * Improved: Only show admin notices when enabled within wp-config.php.
 * Improved: Admin notices JS code only loading on plugins.php page.
 * Fixed: Not printing invoice details which have empty values.
 * Fixed: Translations not working due to update WordPress.

#### 2.9.17 – August 9, 2018

 * Fixed: Removing logo url from settings.

#### 2.9.16 – August 3, 2018

 * Added: ‘wpi_order_item_totals_left’ action to template.
 * Improved: Translation files.
 * Fixed: VAT column not always displayed.

#### 2.9.15 – July 26, 2018

 * Added: Check for EU B2B zero rated vat.
 * Improved: Templates in general.

#### 2.9.14 – July 23, 2018

 * Improved: Margin between template header and body.

#### 2.9.13 – July 18, 2018

 * Improved: PDF margin and general template design.
 * Fixed: PHP 7.2 compatibility.

#### 2.9.12 – February 18, 2018

 * Fixed: Invoice number column displayed at first place of shop order table.

#### 2.9.11 – January 17, 2018

 * Added: ‘wpi_invoice_date’ filter to change the date of the invoice.
 * Added: Bulk Print PDF Packing Slips action that merges selected packing slips.
 * Added: Filter to change the default value of the request invoice checkout field.
 * Added: Filter ‘bewpi_settings_capability’ to change settings permissions.
 * Added: Allowance for network admin to view pdf invoice without registering for
   single site.
 * Improved: Alignment of invoice actions within Edit Order page.
 * Improved: Language files and translations.
 * Fixed: Not existing attachments year folder.

#### 2.9.10 – November 13, 2017

 * Added: Multisite compatibility by changing uploads directory.
 * Added: WC required version comments.
 * Fixed: Missing $line_items on invoice template for has_only_virtual_products().
 * Fixed: Fatal error non-numeric value.
 * Fixed: Enhanced select options not removable.

#### 2.9.9 – October 19, 2017

 * Fixed: Parse error: syntax error, unexpected ‘::’.

#### 2.9.8 – October 18, 2017

 * Added: ‘add_invoice_information_meta’ filter to add/remove PDF invoice information
   meta. See FAQ for example code. Make sure to update your custom template!
 * Added: ‘wpi_item_description_data’ filter to modify product description data.
 * Fixed: Options with enhanced selections resetting sort order.

#### 2.9.7 – October 12, 2017

 * Fixed: WC 3.2.0 compatibility.
 * Fixed: ‘bewpi_skip_invoice_generation’ filter parameter using order object instead
   of order total.

#### 2.9.6 – October 10, 2017

 * Added: Filter ‘wpi_skip_pdf_invoice_attachment’ to skip PDF invoice email attachment.
 * Fixed: Non-dismissable notice by temporary disabling it.
 * Fixed: PDF invoice marked as sent when sent to admin.

#### 2.9.5 – September 20, 2017

 * Fixed: Download invoice from my account page not showing.
 * Fixed: Non-dismissable rate admin notice.

#### 2.9.4 – September 13, 2017

 * Added: Added invoice actions to view, update and delete invoice.
 * Added: Action ‘wpi_watermark_end’ to add multiple watermarks.
 * Improved: Language files by adding more keywords.
 * Fixed: Company logo not found when protocol has been changed.
 * Fixed: [prefix] and/or [suffix] hardcoded in invoice number.
 * Fixed: Fixed body options section not showing on settings page.
 * Fixed: ‘Fatal Error: non-numeric value encountered’ when using position absolute.

#### 2.9.3 – July 5, 2017

 * Added: ‘wpi_template_name’ filter to change the template based on specific order
   variables. See FAQ.
 * Added: ‘wpi_email_types’ filter to add email types.
 * Fixed: PDF abortion error by not using date format from settings for [order-date]
   since it can have slashes.
 * Fixed: Missing argument 3 fatal error due to ‘woocommerce_checkout_order_processed’
   hook used by third party plugins.
 * Removed: Greyed out WooCommerce Subscriptions emails.

#### 2.9.2 – June 12, 2017

 * Added: Filter to change the value of the option when using `WPI()->get_option()`.
   See [Issue #190](https://github.com/baselbers/woocommerce-pdf-invoices/issues/190).
 * Added: SKU to packing slip.
 * Fixed: Packing slips redirecting to Edit Order page when using micro template.
   Consider using minimal template. Micro template is deprecated and will probably
   no longer be supported in future versions.
 * Fixed: WC 2.6 compatibility.

#### 2.9.1 – May 15, 2017

 * Improved: Loading settings only on settings pages.
 * Improved: Option method for getting options by option group and option name.
 * Improved: Main global class function name by renaming it from ‘BEWPI()’ to ‘WPI()’.
 * Improved: Viewing packing slip by using Download and Send to browser view modes.
 * Improved: Creation of uploads directories only on admin request and plugin activation/
   update.
 * Fixed: ‘BEWPI()->templater()->get_meta()’ always empty by setting order directly
   after order creation.
 * Fixed: ‘Bad gateway’ and ‘PHP Warning: A non-numeric value encountered’ on checkout
   page due to mPDF 7.1 incompatibility.
 * Fixed: ttfontdata folder losing cached font data files by using custom directory
   in uploads folder.
 * Fixed: .html extension added while viewing/downloading packing slip.
 * Fixed: VAT number message always showing when ‘_vat_number_is_valid’ is not empty.
 * Fixed: Sequential Invoice Number plugin compatibility by using `get_order_number()`
   instead of `get_id()`.

#### 2.9.0 – May 15, 2017

 * Improved: Spanish translation files thanks to [Jorge Fuentes](http://jorgefuentes.net).
 * Improved: Settings classes with a complete refactor.
 * Improved: File names by removing unnecessary prefixes.
 * Improved: PDF invoice generation by skipping unnecessary PDF invoice update for
   same request.
 * Improved: Deactivation notice by only checking for notice on plugins.php page.
 * Fixed: Facebook share button.
 * Fixed: Download from my account page not working.
 * Fixed: Item meta and download item meta not displayed inline within table cells
   by stripping `<p>` and `<br>` tags. Update custom template needed!
 * Removed: Unused CSS and JS.

## Meta

 *  Version **3.2.1**
 *  Last updated **1 year ago**
 *  Active installations **10,000+**
 *  Tested up to **6.7.5**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [Czech](https://cs.wordpress.org/plugins/woocommerce-pdf-invoices/), [Danish](https://da.wordpress.org/plugins/woocommerce-pdf-invoices/),
   [Dutch](https://nl.wordpress.org/plugins/woocommerce-pdf-invoices/), [English (US)](https://wordpress.org/plugins/woocommerce-pdf-invoices/),
   [French (Canada)](https://fr-ca.wordpress.org/plugins/woocommerce-pdf-invoices/),
   [French (France)](https://fr.wordpress.org/plugins/woocommerce-pdf-invoices/),
   [Greek](https://el.wordpress.org/plugins/woocommerce-pdf-invoices/), [Norwegian (Bokmål)](https://nb.wordpress.org/plugins/woocommerce-pdf-invoices/),
   [Portuguese (Brazil)](https://br.wordpress.org/plugins/woocommerce-pdf-invoices/),
   [Russian](https://ru.wordpress.org/plugins/woocommerce-pdf-invoices/), [Slovak](https://sk.wordpress.org/plugins/woocommerce-pdf-invoices/),
   [Spanish (Chile)](https://cl.wordpress.org/plugins/woocommerce-pdf-invoices/),
   [Spanish (Spain)](https://es.wordpress.org/plugins/woocommerce-pdf-invoices/),
   and [Swedish](https://sv.wordpress.org/plugins/woocommerce-pdf-invoices/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/woocommerce-pdf-invoices)
 * Tags
 * [invoices](https://wordpress.org/plugins/tags/invoices/)[packing slips](https://wordpress.org/plugins/tags/packing-slips/)
   [pdf invoices](https://wordpress.org/plugins/tags/pdf-invoices/)[woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/woocommerce-pdf-invoices/advanced/)

## Ratings

 4.7 out of 5 stars.

 *  [  410 5-star reviews     ](https://wordpress.org/support/plugin/woocommerce-pdf-invoices/reviews/?filter=5)
 *  [  31 4-star reviews     ](https://wordpress.org/support/plugin/woocommerce-pdf-invoices/reviews/?filter=4)
 *  [  7 3-star reviews     ](https://wordpress.org/support/plugin/woocommerce-pdf-invoices/reviews/?filter=3)
 *  [  6 2-star reviews     ](https://wordpress.org/support/plugin/woocommerce-pdf-invoices/reviews/?filter=2)
 *  [  15 1-star reviews     ](https://wordpress.org/support/plugin/woocommerce-pdf-invoices/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/woocommerce-pdf-invoices/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/woocommerce-pdf-invoices/reviews/)

## Contributors

 *   [ Bas Elbers ](https://profiles.wordpress.org/baaaaas/)
 *   [ George Ciobanu ](https://profiles.wordpress.org/giucu91/)

## Support

Issues resolved in last two months:

     0 out of 1

 [View support forum](https://wordpress.org/support/plugin/woocommerce-pdf-invoices/)