Print Invoice & Delivery Notes for WooCommerce


你可以列印 WooCommerce訂單的收據與運送備註,還可以在收據上加入公司/商店名稱、地址、個人備註、使用條款/政策(例如退貨條件)等頁尾標記。



  • 在「編輯訂單」頁面的側欄列印收據與運送備註。
  • 在「訂單」頁面快速列印收據與運送備註
  • 批次列印收據與運送備註
  • 允許顧客在「我的帳號」頁面列印訂單
  • 在顧客郵件中加入列印連結
  • 可新增公司地址、標誌和其他資訊至收據與訂單備註
  • 完整自訂收據與運送備註樣板
  • 簡易收據號碼
  • 支援順序訂單號碼
  • 支援 WooCommerce退款系統
  • 支援 hooks和 functions.php的智慧型收據與訂單備註樣板系統




如果你有修補或偶然發現不是 WooCommerce造成的問題,你可以在GitHub上協助開發建構。


如果沒有你的語系,你可以在這裡協助翻譯 GitHub repository.


  1. WooCommerce被遺棄的購物車進階版

  2. WooCommerce預約 & 預定

  3. WooCommerce訂單運送日期進階版

  4. WooCommerce商品運送日期進階版

  5. WooCommerce儲值

  6. WooCommerce基於付款方式的手續費與折扣 – 進階版

  7. WooCommerce自訂訂單狀態 – 進階版

  8. WooCommerce自訂訂單編號 – 進階版

  9. WooCommerce商品輸入欄位 – 進階版

  10. WooCommerce基於使用者角色的定價 – 進階版

  11. WooCommerce基於使用者角色的定價 – 進階版

  12. WooCommerce每項商品不同幣值 – 進階版


  1. WooCommerce被遺棄的購物車

  2. WooCommerce訂單運送日期 – 簡易版

  3. WooCommerce商品運送日期 – 簡易版

  4. WooCommerce基於付款方式的手續費與折扣

  5. WooCommerce自訂訂單狀態

  6. WooCommerce自訂訂單編號

  7. WooCommerce商品輸入欄位

  8. WooCommerce致電了解價格

  9. WooCommerce基於使用者角色的定價

  10. WooCommerce每項商品不同幣值



  • 簡潔的貨款收據預覽列印。
  • 列印控制台。
  • 快速操作列印。
  • 批次列印訂單。
  • 輸入公司和聯絡資訊。
  • 顧客也能列印訂單。
  • The clean Delivery note view.



  • WooCommerce 2.2或更新版
  • WordPress 4.0或更新版


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”.


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.




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:

function example_serif_font_and_large_address() {
            #page {
            font-size: 1em;
            font-family: Georgia, serif;

        .order-addresses address {
            font-size: 2.5em;
            line-height: 125%;
add_action( 'wcdn_head', 'example_serif_font_and_large_address', 20 );

Can I hide the prices on the delivery note?

Sure, the easiest way is to hide them with some CSS that is hooked in with wcdn_head.

An example that hides the whole price column and the totals. Paste the code in the functions.php file of your theme:

function example_price_free_delivery_note() {
            .delivery-note .head-item-price,
            .delivery-note .head-price, 
            .delivery-note .product-item-price,
            .delivery-note .product-price,
            .delivery-note .order-items tfoot {
                display: none;
            .delivery-note .head-name,
            .delivery-note .product-name {
                width: 50%;
            .delivery-note .head-quantity,
            .delivery-note .product-quantity {
                width: 50%;
            .delivery-note .order-items tbody tr:last-child {
                border-bottom: 0.24em solid black;
add_action( 'wcdn_head', 'example_price_free_delivery_note', 20 );

I use the receipt in my POS, can I style it?

Sure, you can style with CSS, very much the same way as the delivery note or invoice.

An example that hides the addresses. Paste the code in the functions.php file of your theme:

function example_address_free_receipt() {
            .content {
                padding: 4% 6%;
            .order-addresses {
                display: none;
            .order-info li span {
                display: inline-block;
                float: right;
            .order-thanks {
                margin-left: inherit;
add_action( 'wcdn_head', 'example_address_free_receipt', 20 );

Is it possible to remove a field from the order info section?

Yes, use the wcdn_order_info_fields filter hook. It returns all the fields as array. Unset or rearrange the values as you like.

An example that removes the ‘Payment Method’ field. Paste the code in the functions.php file of your theme:

function example_removed_payment_method( $fields ) {
    unset( $fields['payment_method'] );
    return $fields;
add_filter( 'wcdn_order_info_fields', 'example_removed_payment_method' );

How can I add some more fields to the order info section?

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->get_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:

function example_custom_order_fields( $fields, $order ) {
    $new_fields = array();

    if( get_post_meta( $order->get_id(), 'your_meta_field_name', true ) ) {
        $new_fields['your_meta_field_name'] = array( 
            'label' => 'VAT',
            'value' => get_post_meta( $order->get_id(), 'your_meta_field_name', true )

    if( get_post_meta( $order->get_id(), 'your_meta_field_name', true ) ) {
        $new_fields['your_meta_field_name'] = array( 
            'label' => 'Customer Number',
            'value' => get_post_meta( $order->get_id(), 'your_meta_field_name', true )

    return array_merge( $fields, $new_fields );
add_filter( 'wcdn_order_info_fields', 'example_custom_order_fields', 10, 2 );

What about the product image, can I add it to the invoice and delivery note?

可以,使用 wcdn_order_item_before 的 hook,就能讓你在商品名稱前加入 html內容。

An example that adds a 40px large product image. Paste the code in the functions.php file of your theme:

function example_product_image( $product ) {    
    if( ( '' !== $product->get_id() ) && has_post_thumbnail( $product->get_id() ) ) {
         echo get_the_post_thumbnail( $product->get_id(), array( 40, 40 ), array( 'loading' => false ) );
add_action( 'wcdn_order_item_before', 'example_product_image' );

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:

.invoice .billing-address {
    font-size: 2em;

.delivery-note .shipping-address {
    font-size: 2em;

How do I customize the look of the invoice and delivery note?

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.

備註:如果不存在,請建立 woocommerceprint-order 目錄。這是避免外掛更新就覆蓋你的變更的方式。

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.

備註:如果不存在,請建立 woocommerceprint-order 目錄。這是避免外掛更新就覆蓋你的變更的方式。

Is there a list of all action and filter hooks?


有哪些 functions可以在樣板使用?

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.

我可以下載訂單為 PDF格式而非列印嗎?



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.


上傳你的語系檔至 /wp-content/languages/plugins/(如果目錄不存在請自行建立)。WordPress將會讀取語系。請確認你在外掛設定中正確使用相同的語系



2024 年 5 月 1 日
完美支援繁體中文列印, 有中文的地方不會出現亂碼.
2024 年 2 月 18 日
Very useful and thank you to the developer to include template files
2024 年 2 月 9 日
Works as intended and there are snippets you could use to expand and customize. 10/10
2024 年 1 月 26 日
I downloaded this plugin after going through various other plugins in order to have a printable order form after purchase.Aside from the fact that it’s easily configured to RTL, I’ve sent some additional custom requests (3 different emails, 3 separate custom requests) to their support desk and was replied quickly, with a complete copy-paste solution to use on my website. And they’re nice, too! 🙂
2023 年 12 月 11 日
The plugin was fixed in a short period of time. I am very grateful to you. I will continue to use this plugin.
閱讀全部 113 則使用者評論


以下人員參與了開源軟體〈Print Invoice & Delivery Notes for WooCommerce〉的開發相關工作。


〈Print Invoice & Delivery Notes for WooCommerce〉外掛目前已有 41 個本地化語言版本。 感謝全部譯者為這個外掛做出的貢獻。

將〈Print Invoice & Delivery Notes for WooCommerce〉外掛本地化為台灣繁體中文版


任何人均可瀏覽程式碼、查看 SVN 存放庫,或透過 RSS 訂閱開發記錄


4.9.0 (27.02.2024)

  • Fix – Cross-site request forgery vulnerability in the plugin.
  • Fix – Added a filter called ‘wcdn_print_text_in_email’ & ‘wcdn_print_view_in_browser_text_in_email’ for changing the “Print: Open print view in browser” text in email URL.
  • Fix – Fatal Error on the edit order page.
  • Fix – Additional product metadata is printed in the invoice.
  • Fix – Added a filter called ‘wcdn_address_billing’ to the shipping address Title.
  • Fix – Incorrect order date in the invoice.

4.8.1 (10.10.2023)

  • Fix – Same invoice number & invoice date was displayed on all invoices and the counter was not being increased.
  • Fix – Error Notice was displayed on the settings page with PHP 8.2.

4.8.0 (04.10.2023)

  • Enhancement – Compatibility With WooCommerce High Performance Order Storage (HPOS)
  • Fix – Fatal error was displayed in the Invoice with WooCommerce Product Add-ons plugin.

4.7.3 (21.03.2023)

  • Fix – Cross-Site Request Forgery vulnerability in the plugin.

4.7.2 (02.02.2023)

  • Fix – Fixed a Reflected XSS vulnerability in the plugin.
  • Fix – Fixed a fatal error which occurs when plugins apart from ours are customizing the Bulk Actions on the WooCommerce Orders page.

4.7.1 (07.12.2022)

  • Fix :- Fix :- Removed the labels for shipping and billing address. This was added in 4.7.0, which is now reverted back.

4.7.0 (06.12.2022)

  • Fix :- Logo was not showing on Android phone earlier. This is fixed now.
  • Fix :- Display labels for shipping and billing address
  • Fix :- Removed redundant “Refund” line.
  • Fix :- Compatibility with WooCommerce Product Addons plugin. All the fields from the plugin will be shown in the Invoice, Receipt & Delivery Note.

4.6.5 (08.02.2022)

  • Enhancement :- Added an option to print the invoice text in Right to Left direction.
  • Enhancement :- Added a filter called ‘wcdn_product_meta_data’ to remove the meta fields of the product in the invoice.
  • Fix :- Quantity column was showing wrong total in the print invoice on the frontend when the invoice contains WooCommerce Composite products.
  • Fix :- Extra tabs were added in the bulk action print link.
  • Fix :- When using the file field in the WooCommerce Product Addons plugin whole path was getting printed instead of the filename.
  • Fix :- The invoice number was not appearing when we open the invoice from the Order email sent to the customer.
  • Fix :- Debug log errors are been fixed.

4.6.4 (21.07.2021)

  • Fix :- After updating to v4.6.3 , fatal error was coming in some sites where the invoice template has been customized by copying print-content.php file in the theme folder. This is fixed now.

4.6.3 (19.07.2021)

  • Fix :- Fixed the errors coming with PHP 8.
  • Fix :- Shipping address was not printed in invoice when the order is created manually. This is fixed now.
  • Fix :- When printing receipts, the number of downloaded files is displayed as “%s files”. This is fixed now. Props to @inc2734 for the PR.
  • Dev :- Translated the plugin in Korean language. Props to @shga89 for the PR.

4.6.2 (11.12.2020)

Enhancement :- Added an option to insert the print link in the admin emails.
Fix :- Strings of Bulk Printing options were not getting translated. This is fixed now. Props to @pomegranate
Fix :- Finnish language locale name was incorrect. This is fixed now.
Fix :- Custom fields on WooCommerce product page from Product Input Fields for WooCommerce plugin were not coming in the invoice. This is fixed now.
Fix :- The BULK printing options of WooCommerce DYMO Print (PRO version) stopped working after installing our Print invoices plugin. This has been fixed. Props to @pepbc
Tweak :- In FAQ page changed the code snippet to add the products image in the invoice.

4.6.1 (23.10.2020)

  • Fix :- Tracker cron event was not running properly which is fixed now.
  • Dev :- With the help of filters now able to change the name of the print invoice and delivery notes in the dropdown menu on Orders page.

4.6.0 (22.09.2020)

  • Fix :- Notice was coming since WooCommerce V4.4.0 which is fixed now.
  • Fix :- Bulk printing function was using old hooks & filters.Have changed them with the new ones.
  • Dev :- Now the Total number of quantity of the products in the row of quantity in invoice will be shown.
  • Dev :- With the help of filter now one can hide the child products in Composite Products.
  • Dev :- Translated the plugin in Greek language. Props to @edeuter for the PR.

Minimum Requirements: WooCommerce 3.0

4.5.5 (12.03.2020)

  • Changed the plugin name to ‘Print Invoice & Delivery Notes for WooCommerce’

4.5.4 (11.03.2020)

  • Compatibility with WooCommerce v4.0.0

4.5.3 (26.09.2019)

  • The plugin now allows 3rd party code to add order item data on the print-content.php template. Props to @doozy for the PR.

4.5.2 (23.08.2019)

  • Fixed the issue of Print buttons not working on sites with PHP versions below 7.0.

4.5.1 (21.08.2019)

  • Fixed the issue of Print buttons not showing up on Order details page after the 4.4.9 update.

4.5.0 (21.08.2019)

  • Added a missing file from v4.4.9.

4.4.9 (21.08.2019)

  • Made the plugin code compliant with WPCS coding standards
  • Added filter wcdn_theme_print_button_template_type_arbitrary – this filter hook allows to change template type based on order status
  • Added filters wcdn_print_button_name_on_my_account_page, wcdn_print_button_name_order_page – these filter hooks allows to change the label of the Print button
  • When plugin is uninstalled, data cleanup wasn’t happening. This has been fixed.

4.4.8 (02.04.2019)

  • Fix – When a noticed was dismissed from the plugin, then it will dismiss all other notices from other plugins also. This is fixed now.
  • Fix – Some errors in debug.log file are fixed.

4.4.7 (24.11.2018)

  • Fix – Fixed compatibility related issue with WooCommerce Product Add-ons v3.0.x. Options were not being printed.
  • Fix – Fixed compatibility related issue with Woocommerce Partial Orders Pro Plugin.

4.4.6 (22.10.2018)

  • 其他語系的 .po, .mo 更新。

4.4.5 (22.10.2018)

  • .pot 檔更新。

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)

  • 加入使用量追蹤至外掛,這將會提供是否允許追蹤網站非敏感資料的選項。你可以在這裡了解更多。

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.

  • 代碼強化 – 現在起,外掛提供移除檔案的選項。

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 (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.


  • Tweak – Refactored settings screen
  • Fix – Compatibility with latest WooCommerce
  • Fix – Print preview loading indicators
  • Fix – Icon font embed
  • Dev – Load only one instance of the plugin (singleton class)
  • Dev – New settings hooks that work better with WooCommerce


  • Fix – More flexible protocol checks of email permalinks


  • Fix – Check protocol of email permalinks
  • Fix – Show preview links on the settings page
  • Fix – Consistent privileges for users with admin access


  • Fix – Double check the bulk action type to improve bulk order deletion
  • Fix – Default arguments for the E-Mail hook


  • Feature – Better support for WooCommerce 2.3 refunds


  • Fix – For a fatal error caused by an unknown property in the plugin update system
  • Fix – Where the ‘Types’ options didn’t stick in some cases


  • Fix – For a fatal error caused by an unknown property in the plugin update system


  • Feature – Support for WooCommerce 2.2 refunds
  • Feature – Option to add a print link to customer emails
  • Tweak – Code improvements and some new hooks


  • Tweak – Second attempt for better spacing between price columns


  • Tweak – Better spacing between price columns


  • The print page now also includes the item price
  • Customize titles with your own translation file ( Place it in /wp-content/languages/plugins to override the plugin language.


  • Remove some left over developer comments from the print page


  • Fix an issue where a blank page was printed in WooCommerce 2.1


Note: The template was modified. Please check your print-content.php if you copied it to your theme directory.

  • Improved WooCommerce 2.2 compatibility
  • Fix an issue were shipping and billing addresses did not respect the WooCommerce settings
  • Better way to reset the invoice number counter


  • Small code improvements


  • WordPress 4.0 and WooCommerce 2.2 compatibility
  • Fix an issue where the print buttons were hidden after the update


  • WordPress 4.0 and WooCommerce 2.2 compatibility
  • Template: Improved the CSS to generate less blank pages
  • Fixed the settings link on the Plugins page


  • Some language upadates. Old outdated languages were removed. Please contribute your language!
  • Fix a print issue with not completed orders.
  • Tweaked JavaScript for the theme print button to gracefully handle non-modern browsers.


  • New template function for the invoice date
  • Fix invoice number display logic
  • Fix slashes in the options fields


  • Improved theme print button: Print the invoice only for completed orders and a receipt for all other order states. This can be changed via ‘wcdn_theme_print_button_template_type’ filter hook.
  • Fix the print button on the “Thank You” page for guest checkouts
  • Added CSS classes to the admin side panel


  • Fix the hidden loading indicator on order edit screen
  • Other small visual optimizations
  • Later plugin load hook for better compatibility


Note: Template changes had to be made. Please control your template after the update in case you applied some custom styling.

  • By popular demand the ‘Quantity’ column is back in the template
  • Basic invoice numbering


  • Fixed the known issue where the print button stopped working becuse of SSL
  • Fixed an issue where the print page was redirected to the account page


Known issue: Printing won’t work when your account uses SSL and the rest of the page doesn’t. The issue will be fixed in a future version.

  • Added SKU to the template
  • Modified the alignment of product attributes in the template
  • Print buttons in the theme will print the invoice (can be changed with hook)


  • Save the endpoint at activation to not print a 404 page. (Note: Try to resave the print settings if the issue persists after the update.)


Attention: This update works only with WooCommerce 2.1 (or later) and WordPress 3.8 (or later). Install it only if your system meets the requirements.

  • Supports only WooCommerce 2.1 (or later)
  • Bulk print actions
  • Print buttons in the front-end
  • Redesigned template look
  • New template structure and action hooks