WooCommerce Print Invoice & Delivery Note

Description

You can print out invoices and delivery notes for the WooCommerce orders. You can also edit the Company/Shop name, Company/Shop postal address and also add personal notes, conditions/policies (like a refund policy) and a footer imprint.

The plugin adds a new side panel on the order page to allow shop administrators to print out the invoice or delivery note. Registered customers can also print their order with a button that is added to the order screen.

Features

Print invoices and delivery notes via the side panel on the “Order Edit” page

Quickly print invoices and delivery notes on the “Orders” page

Bulk print invoices and delivery notes

Allow customers to print the order in the “My Account” page

Include a print link in customer E-Mails

Add a company address, a logo and many other information to the invoice and delivery note

Completely customize the invoice and delivery note template

Simple invoice numbering

Supports sequential order numbers

Supports the WooCommerce refund system

Intelligent invoice and delivery note template system with hooks and functions.php support

Screenshots

Installation

Minimum Requirements

WooCommerce 2.2 or later

WordPress 4.0 or later

Automatic installation

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

In the search field type “WooCommerce Print Invoice” and click Search Plugins. Once you’ve found the 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”.

Manual installation

The manual installation method involves downloading the plugin and uploading it to your webserver via your favourite FTP application. The WordPress codex contains instructions on how to do this here.

FAQ

How to prevent that the Website URL and page numbers are printed?

You can find an option in the print window of your browser to hide those. This is a browser specific option that can’t be controlled by the plugin. Please read the browser help for more information.

Why are my bulk printed orders not splited to separate pages?

Your browser is to old to create the page breaks correctly. Try to update it to the latest version or use another browser.

Even though the shipping and billing address is the same, both are still shown, why?

It depends on your WooCommerce settings. Addresses are displayed the same way as on the WooCommerce account page. Only one address is printed in case you disabled alternative shipping addresses or the whole shipping. In all other cases both addresses are shown.

It prints the 404 page instead of the order, how to correct that?

This is most probably due to the permalink settings. Go either to the WordPress Permalink or the WooCommerce Print Settings and save them again.

If that didn’t help, go to the WooCommerce ‘Accounts’ settings tab and make sure that for ‘My Account Page’ a page is selected.

How do I quickly change the font of the invoice and delivery note?

You can change the font with CSS. Use the wcdn_head hook and then write your own CSS code. It’s best to place the code in the functions.php file of your theme.

An example that changes the font and makes the addresses very large. Paste the code in the functions.php file of your theme:

Use the wcdn_order_info_fields filter hook. It returns all the fields as array. Read the WooCommerce documentation to learn how you get custom checkout and order fields. Tip: To get custom meta field values you will most probably need the get_post_meta( $order->id, 'your_meta_field_name', true); function and of course the your_meta_field_name.

An example that adds a ‘VAT’ and ‘Customer Number’ field to the end of the list. Paste the code in the functions.php file of your theme:

How can I differentiate between invoice and delivery note through CSS?

The body tag contains a class that specifies the template type. The class can be invoice or delivery-note. You can prefix your style rules to only target one template. For example you could rise the font size for the addresses on the right side:

You can use the techniques from the questions above. Or you consider the wcdn_head hook to enqueue your own stylesheet. Or for full control, copy the file style.css from woocommerce-delivery-notes/templates/print-order to yourtheme/woocommerce/print-order and start editing it.

Note: Create the woocommerce and print-order folders if they do not exist. This way your changes won’t be overridden on plugin updates.

I would like to move the logo to the bottom, put the products between the shipping and billing address and rotate it by 90 degrees, how can I do that?

Well, first try it with CSS and some filter/action hooks, maybe the questions above can help you. If this isn’t enough, you are free to edit the HTML and CSS of the template. Consider this solution only, if you really know some HTML, CSS and PHP! Most probably you want to edit the print-content.php and style.css. Copy the files from woocommerce-delivery-notes/templates/print-order to yourtheme/woocommerce/print-order and start editing them.

Note: Create the woocommerce and print-order folders if they do not exists. This way your changes won’t be overridden on plugin updates.

Is there a list of all action and filter hooks?

Unfortunately there isn’t yet. But you can look directly at the template files to see what is available.

Which template functions are available?

You can use the functions from WordPress, WooCommerce and every installed plugin or activated theme. You can find all plugin specific functions in the wcdn-template-functions.php file. In addition the $ordervariable in the template is just a normal WC_Order instance.

Can I download the order as PDF instead of printing it out?

No, this isn’t possible. Look for another plugin that can do this.

I need some more content on the order, how can I add it?

The plugin uses the exact same content as WooCommerce. If the content isn’t available in WooCommerce, then it will neither be in the delivery note and invoice. In case you have some special needs, you first have to enhance WooCommerce to solve your issue. Afterwards you can integrate the solution into the invoice and delivery note template via hooks.

How can I translate the plugin?

Upload your language file to /wp-content/languages/plugins/ (create this folder if it doesn’t exist). WordPress will then load the language. Make sure you use the same locale as in your configuration and the correct plugin locale i.e. woocommerce-delivery-notes-it_IT.mo/.po.

Reviews

The plugin is a no-nonsense tool that makes exactly what it's supposed to do. If you know a bit of CSS and what to edit and what not in a PHP file, then you can make the pdfs look your own quite easily. I also wanted to tweak a feature a bit and got complete advice with ready-to-paste code that worked off-the-shelf. Great support guys!

The plugin works well, but the ad placed throughout the header of the admin is becoming an annoyance. I feel bad complaining about a free plugin but they way this has been implemented is bad. It shows everywhere, it doesn't dismiss for more then a day and until you start deactivating plugins you can't tell who it is from.

This plugin is putting adverts for other products from the same author:
a) on other pages in the dashboard that have no relation to the advert
b) without identifying itself as the source of those adverts (you have to do some detective work to find out where they come from).
Please see: https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/#11-plugins-should-not-hijack-the-admin-dashboard
Constant nags and overwhelming the admin dashboard with unnecessary alerts detract from this experience.
...
Upgrade prompts, notices, alerts, and the like must be limited in scope and used sparingly, be that contextually or only on the plugin’s setting page.

This plugin is exactly what I needed so I could print order details to make shipping easier. Easy to install, good looking receipt/invoice layout and super easy to use. Thank you for this great free plugin!

4.4.6 (22.10.2018)

4.4.5 (22.10.2018)

4.4.4 (13.10.2018)

Removed the Welcome page of the plugin and also removed the promotional notices which were being displayed on admin end of the WordPress website.

4.4.3 (23.07.2018)

Usage Tracking has been added in the plugin. It provides an option to allow tracking of the non-sensitive data of our plugin from the website. You can read more about it here.

4.4.2 (22.02.2018)

Fix – With the latest WooCommerce version 3.3, the icons for Print were missing. This is fixed.

4.4.1 (29.12.2017)

This version has 1 bug fix.

Fix – PHP short tag was inadvertently added in the plugin in v4.4, which was causing an error. This has been fixed.

4.4 (29.12.2017)

This version has 1 bug fix.

Fix – Earlier with WooCommerce Local Pickup Plus v2.x.x, pickup locations were not displayed on the invoices, delivery notes & receipts. Now, the plugin is compatible with it and it will display the pickup locations.

Code Enhancement – Now, the plugin has the uninstall file for deleting the plugin options.

4.3.6 (19.12.2017)

Added translation for the word ‘Price’ for dutch language

Removed Pro version link that was not going anywhere

4.3.5 (14.11.2017)

Fix issue of invoice date label not appearing translated

4.3.4.1 (07.11.2017)

Updating missing .mo files for Japanese and Norwegian.

4.3.4 (26.09.2017)

.po and .mo files for Japanese and Norwegian language is added in the plugin. The plugin strings can now be translated to this languages using these files.

4.3.3 (13.09.2017)

Fix – The unwanted attributes from products were getting displayed in the invoice.

Fix – Notice of deprecated function get_item_downloads() in the invoice for downloadable products.

4.3.2 (05.09.2017)

In this version deprecated functions and classes have been removed. Because of that attributes were missing and attribute slug was getting printed on Invoice page. This has been fixed.

Fix – There was no line break before SKU element for variable products on Invoice page. This has been fixed.

Fix – The deprecated function WC_Order::get_order_currency has been removed and replaced with get_currency().

4.3.1 (23.08.2017)

This version has 1 bug fix.

Fix – The attributes of variable product were not displayed with the variation name in the Print screen. This has been fixed.

4.3 (19.08.2017)

This version has 1 bug fix.

Fix – Warnings were displayed on My Account, Checkout, Orders page with WooCommerce version 3.0.x. This has been fixed.