2.20.3 (2023-08-17) * New: adds templates settings to import/export tool * New: split taxes option in Customizer VAT column * Fix: exclude virtual/downloadable products from PDF totals * Fix: disable tax base/subtotal on all VAT total rows when the Combined Tax is not selected * Updated bundled updater to 2.1.4 * Tested up to (and compatible with) WooCommerce 8.0 & WordPress 6.3 2.20.2 (2023-05-16) * Tested up to (and compatible with) WooCommerce 7.7 2.20.1 (2023-04-21) * Tweak: sets updater property public * Fix: custom label when printing discounts separately 2.20.0 (2023-04-10) * New: WooCommerce HPOS compatibility (beta) * Fix: array keys check for static text total row * Fix: PHP 8.1 deprecated warning with `preg_match_all` function * Fix: hide the tax row if the tax amount is equal to 0 when choosing combined tax * Tested up to (and compatible with) WooCommerce 7.6 & WordPress 6.2 2.19.6 (2023-02-09) * Fix: order items column layout break css issue 2.19.5 (2023-01-23) * Fix: break long URLs in premium templates * Fix: fatal error division by zero on `get_sale_price_discount()` function * Fix: date placeholders for Credit Note * Tested up to (and compatible with) WooCommerce 7.3 2.19.4 (2022-11-16) * Fix: let {{payment_method_title}} display correct title 2.19.3 (2022-11-11) * Fix: bug using {{payment_method_title}} placeholder on the Credit Note document 2.19.2 (2022-11-09) * Fix: checks if order method is callable on placeholder replacements function * Fix: bug on calling get_created_via() on refund order 2.19.1 (2022-11-08) * New: display extra fields placeholders under fields descriptions * Tweak: removes old WC versions compatibility classes & bumps WC minimum version to 3.0 * Tweak: replaced old title instances with the new title * Fix: add template checks for payment & shipping methods * Fix: i18n for 'VAT' and 'Tax rate' * Tested up to (and compatible with) WooCommerce 7.1 & WordPress 6.1 2.19.0 (2022-09-27) * New: templates action hooks before and after the shop logo * New: product placeholders to show single dimensions and weight: `{{product_length}}`, `{{product_width}}`, `{{product_height}}` & `{{product_weight}}` * New: adds the `{{customer_notes}}` placeholder as fallback to display the customer note * New: Norwegian translation (nb_NO) * New: Filters for third party customizer rows & columns: `wpo_wcpdf_templates_customizer_column_blocks` & `wpo_wcpdf_templates_customizer_total_blocks` * New: action hooks before and after the (blue) footer bar/header in Modern template * Tweak: prefetch WC Order Barcodes image data * Tweak: dynamically disable `tax_type` checkbox based on dropdown option * Tweak: improved preview update triggers * Fix: type safety issues in regular price * Fix: escaped query args * Fix: compatibility to keep WooCommerce Product Bundles together when products are sorted * Updated bundled updater to 2.1.3 * Tested up to (and compatible with) WooCommerce 6.9 2.18.1 (2022-05-09) * New: Filter to change coupon discount & tax total labels * Improved: plugin dependency admin notices * Fix: remove duplicate footer action hook (Modern template) * Fix: Simple template notice placement * Tested up to (and compatible with) WooCommerce 6.5 2.18.0 (2022-03-17) * New: allow overriding document number & date labels with PDF Invoices & Packing Slips for WooCommerce Professional 2.17.1 (2022-03-07) * New: Show notification on customizer page when Simple template is selected * Fix: Make Simple Premium default on new installations * Fix: Compatibility with Preview layout * Dev: Filter hook custom placeholders for order item data * Tested up to (and compatible with) WooCommerce 6.3 2.17.0 (2022-02-09) * New: Placeholders for Shop Address, Footer, Extra Fields 1-3 settings texts * New: `{{item_id}}` placeholder for the product column text field * Fix: fatal error when totals or columns left empty in the customizer * Fix: product thumbnails not shown in email attachment with Woodmart theme * Templates: New action hook before the document label (`wpo_wcpdf_before_document_label`) * Templates: prevent empty totals and order deetails table elements from being inserted * Business template: Reduce item meta line-height * Modern Template: Specify `text-align` in `.footer` styles * Updated bundled updater to 2.1.2 2.16.0 (2022-01-31) * New: Custom function column type in the customizer * New: Option to show tax rate name instead of rate in item column * Templates: show shipping phone when available * Tested up to (and compatible with) WooCommerce 6.1 & WordPress 5.9 2.15.0 (2021-12-08) * New: {{document_notes}} placeholder * New: customer data placeholders: {{customer_order_count}} {{customer_total_spent}} {{customer_registered_date}} * New: Option to show coupon discounts in separate rows * Dev: Filter to modify the data for a single total row * Dev: Filter to force HTTP for WooCommerce Order Barcodes images * Fix: Apply the standard filter to the 'payment_method_title' placeholder * Fix: trim accidental whitespace in custom function name * Updated bundled updater to 2.1.1 2.14.0 (2021-10-27) * New: Allow license activation directly via bundled updater (optional) * New: restore Premium Template path on plugin reactivation * New: placeholders {{ABSPATH}} and {{WP_CONTENT_DIR}} * New: spelled out total placeholder * New: Text row for totals (supports placeholders) * Fix: Use WooCommerce weight format for product and order weight * Fix: count negative taxes for tax base * Translations: Updated Spanish & translation template (POT) * Tested up to (and compatible with) WooCommerce 5.9 2.13.1 (2021-09-24) * Fix: follow WC tax settings for calculating subtotal after discount * New: support template_ids in custom template hints * Tweak: Earlier template path registration * Tested up to (and compatible with) WooCommerce 5.7 2.13.0 (2021-08-09) * New: Improved UI for custom block requirements * New: Support for WooCommerce Germanized split shipping tax * New: Placeholder for Document barcode of WooCommerce Ultimate Barcodes: {{document_barcode}} * Fix: Long URLs in notes area breaking layout * Fix: {{payment_method_description}} placeholder incorrectly displayed admin description * Tweak: Added new 'item-' prefix to item row class ID * Translations: Updated Dutch & Portuguese 2.12.0 (2021-06-28) * New: Allow override body classes in templates with filter (wpo_wcpdf_body_class) * New: Placeholders for WooCommerce Ultimate Barcodes ({{order_barcode}}, {{product_barcode}}) * Simple Premium template: Prevent totals from being pushed down by notes * Business: Fix totals being squished by long notes (now uses floats instead of tables) * Fix: mpdf compatibility for text-alignment * Fix: Prevent errors with item dependency on custom row data * Fix: Handle Ymd formatted date strings from custom fields * Tweak: Limit footer height and improve parsing 2.11.2 (2021-05-27) * Simple Premium template: Fix mpdf addon compatibility for Simple Premium template * Simple Premium template: Fix 3rd party template integration 2.11.1 (2021-05-27) * Simple Premium template: fix footer not showing on single page documents 2.11.0 (2021-05-26) * New: Support for EU VAT number fields from Germanized Pro * New: {{time_paid}} placeholder * New: Before & after footer positions for custom blocks * Fix: jQuery deprecations * Fix: error after deactivating plugin without switching to free template * Fix: Allow line breaks in product data columns Attribute, Item meta & Product custom field * Simple Premium template: fix long order notes squashing totals table * Modern template: wrap shipping & payment method in div * Translations: added Portuguese, Spanish, French, updated Italian, Dutch and translations template * Tested up to (and compatible with) WooCommerce 5.4 2.10.2 (2021-03-01) * New: Add total rows calling a custom function * Tested up to (and compatible with) WooCommerce 5.1 2.10.1 (2021-02-15) * Fix: Error on PHP7.2 and older 2.10.0 (2021-02-15) * New: Limit custom blocks to specific countries (billing or shipping) * New: Allow translating custom blocks in Polylang (in combination with PDF Invoices & Packing Slips for WooCommerce Professional) * New: Load user properties (user_login, user_nicename, etc) with the "User Data" custom block * New: Placeholders {{product_id}} and {{variation_id}} for Text field in the product column * Fix: Infinite discount shown when manual discounts entered incorrectly * Fix: PHP8.0 error * Fix: Premium template functions not available when loading early by 3rd party plugins * Tested up to (and compatible with) WooCommerce 5.0 2.9.13 (2020-12-07) * Fix: unwanted output from third party placeholders when the placeholder also exists as an order meta key 2.9.12 (2020-11-30) * Fix: Words in headers could be broken up * Fix: Catch fatal errors from 3rd party plugin placeholders 2.9.11 (2020-11-23) * New: Drag & drop the order of custom blocks in the customizer * New: Added {{name}} placeholder for the Tax total label * New: Template action hooks before and after shop name and address * Fix: Simple Premium template - Break long text inside billing address to prevent layout issues * Fix: Business template - document label not showing when no logo set * Fix: Error on third party products without a weight method * Fix: Backwards compatibility with WooCommerce before 4.4 * Fix: Missing argument in external plugin data hook (WooCommerce Extra Product Options compatibility) * Tested up to (and compatible with) WooCommerce 4.8 & WordPress 5.6 2.9.10 (2020-10-14) * New: Add per-order notes to invoices (requires template update if you have a custom template) * New: placeholder for variation descriptions: {{product_description_variation}} * Tested up to (and compatible with) WooCommerce 4.6 2.9.9 (2020-09-07) * Fix: Single regular price when product doesn't exist * Fix: Conditional option disabling on VAT rows * Fix: Namespace declaration errors * Tested up to (and compatible with) WooCommerce 4.5 2.9.8 (2020-08-18) * Feature: Compatibility with new address visibility settings in free plugin * Fix: Notices when tax data was missing from order item * Tested up to (and compatible with) WooCommerce 4.4 & WordPress 5.5 2.9.7 (2020-08-03) * New: Placeholders for WooCommerce Product Batch Numbers in product column text field ({{wpo_batch_number}}, {{wpo_batch_expiry_date}}) * Tweak: Allow custom placeholders to have options * UX: Show notice when placeholders are used incorrectly * Fix: Compatibility with VAT numbers from WooCommerce EU VAT Number 2.3.21+ 2.9.6 (2020-07-16) * New: {{method}} placeholder for shipping total label * New: {{sku}} placeholder for item text field * Fix: WooCommerce Order Barcodes 1.3.19 compatibility * Fix: Display line breaks in product description * Fix: Notices on variation description usage * Fix: avoid recalculating subtotal after discount if no discounts * Fix: Backwards compatibility with WooCommerce 3.6 & older for coupon code display * Translations: Fix translation error in Spanish (backend) * Tested up to (and compatible with) WooCommerce 4.3 2.9.5 (2020-06-02) * New: Raw HTML mode option for custom text blocks * New: VAT Reverse charge support for YITH WooCommerce EU VAT and German Market * New: Automatically convert timestamp from Order Delivery Date Pro * Fix: Style conflict with Order Store Hours Scheduler for WooCommerce * Fix: Business table content overlap for mismatching document data rows * Fix: WooCommerce deprecation notices for {{used_coupons}} placeholder * Fix: non-local pickup for local pickup plus setups * Tweak: added CSS classes to local pickup plus output * Tested up to (and compatible with) WooCommerce 4.2 2.9.4 (2020-04-28) * Feature: add support for EU VAT Number for WooCommerce for the "VAT reverse charge" custom block setting * Fix: category sorting for WooCommerce 2.6 and older * Fix: Local Pickup Plus details formatting * Tweak: Allow decimal precision in discount percentages * Tweak: Simple Premium inline styles * Tested up to (and compatible with) WooCommerce 4.1 2.9.3 (2020-03-23) * Fix: Sale price placeholders for non-sale items * Marked as compatible/tested with WooCommerce 4.0 and WP5.4 2.9.2 (2020-02-25) * Fix: Potential style conflicts with other plugins on the Customizer page * Fix: WC Order Barcodes QR code support * Feature: Added placeholders for sale price discount amount and percentage * Feature: Added placeholder for payment status (Paid/Unpaid): {{payment_status}} 2.9.1 (2020-02-10) * Compatibility Included {{wc_brands}} placeholder in product column for WC Brands * Fix: Placeholder {{checkout_payment_url}} now works outside of checkout too * Fix: Legacy order tax rates loading * Fix: German customizer translations (backend only) were not loaded correctly 2.9.0 (2020-01-27) * Feature: Set order requirements for conditional custom block display 2.8.1 (2020-01-21) * Fix: Notices when regular price data was incomplete * Fix: Notices for empty customizer settings on fresh installations. * Fix: Subscription Renewal tax rates display. WooCommerce Subscriptions recorded incorrect tax data (0%) for renewal orders since WooCommerce 3.7. This was fixed in Subscriptions 3.0.1 but not for existing orders, so Premium Templates uses a fallback mechanism for these orders. * Feature: Product dimensions column and placeholder ({{product_dimensions}}) * Tested up to (and compatible with) WooCommerce 3.9 2.8.0 (2019-12-02) * Feature: Automatic formatting of Delivery Dates (WooCommerce Local Pickup Time Select, YITH WooCommerce Delivery Date Premium, WooCommerce Order Delivery) * Feature: item meta placeholder in product column text ({{item_meta::META_KEY}}) * Fix: Total item quantity: only count visible items (product bundles compatibility) * Fix: subtract refunded quantities from total weight and total qty in packing slip * Dev: Filters for order weight & total (wpo_wcpdf_templates_order_weight / wpo_wcpdf_templates_order_qty) 2.7.3 (2019-11-04) * Fix: Saving tax rates in WooCommerce 3.6 and older 2.7.2 (2019-10-30) * Fix: Fallback to original order data for custom blocks in Credit Notes * Fix: WPML compatibility for the Professional extension * Fix: notice for sort setting for unknown documents * Feature: Use WC3.7+ tax data for higher precision * Feature: payment gateway thankyou text placeholder (payment_method_thankyou_page_text) * Tweak: Use natural sorting instead of regular sorting for document items * Tested up to WC3.8 and WP5.3 2.7.1 (2019-09-03) * Fix: Extra check on document sort setting * Feature: {{product_tags}} placeholder for product column text field 2.7.0 (2019-08-12) * Feature: Item sorting (by Product, SKU or Category) * Feature: Color picker for Modern template colors * Feature: Attribute placeholder in Product column text field with {{product_attribute::ATTRIBUTE_NAME}} placeholder 2.6.3 (2019-06-24) * Feature: Support for array data in custom blocks * Feature: Added {{document_number}} and {{document_date}} placeholders * Feature: Added {{purchase_note}} to product column placeholders * Fix: Empty product descriptions in product column placeholders * Fix: Footer column widths in Modern template * Dev: actions before & after order details row 2.6.2 (2019-03-25) * Fix: Load correct translations when admin user profile language is set to different locale * Fix: Discount label percentage & coupon codes for custom labels * Feature: print custom fields in Product text field with {{product_custom_field::META_KEY}} placeholder 2.6.1 (2019-03-11) * Fix: replace outdated legacy filters * Feature: Flexible text field for product column with some placeholders ({{product_description}}, {{product_categories}}) * Feature: Added {{wpo_wcpdf_shop_name}} placeholder (for use in Modern template shop address) 2.6.0 (2019-02-14) * Modern Template update: footer now only occupies space on the last page! * Fix: PHP 7.3 switch/continue warning * Tweak: Product Bundles compatibility, now follows cart hiding setting by default 2.5.12 (2019-01-23) * Feature: Button to load template defaults * Feature: placeholders {{payment_method_description}} & {{payment_method_instructions}} * Fix: Include document parameter for wpo_wcpdf_custom_styles action and custom_template_styles filter * Fix: Width of order data table in Modern template * Translations: Updated POT & Dutch 2.5.11 (2018-11-19) * Fix: WC Branding compatibility * Fix: Product categories for product variations 2.5.10 (2018-10-29) * Feature: store tax rate when order is created/saved/updated (for higher tax rate precision) * Fix: prevent direct loading of template files 2.5.9 (2018-10-10) * Fix: prevent dompdf errors for empty customizer settings * Tweak: only use product custom field fallback if variation doesn't have it 2.5.8 (2018-09-10) * Fix: prevent errors when no settings for columns & totals * Fix: Footer height setting when spaces are used * Fix: Product custom field for variable products * Fix: missing total row classes * Tweak: Fallback for incomplete action hooks * Updated translations (POT, Dutch & Spanish) 2.5.7 (2018-05-22) * Feature: New action hooks before and after addresses * Feature: {{current_user_name}} placeholder (username of the person opening the PDF) * Fix: Number display setting for Credit Note and Proforma Invoice * Fix: Respect settings when empty * Fix: apply wc_price after wpo_wcpdf_add_up_grand_total_excl * Fix: Use calculated tax rate for totals instead of settings * Fix: Notices for user meta block when no user for order 2.5.6 (2018-02-13) * Tweak: Custom blocks: only apply div wrapper if not already in div * Fix: Fallback to tax rate calculation if rate has been removed * Fix: repeating 'single total' option for tax block * Fix: apply woocommerce_order_hide_zero_taxes to product & shipping too * Fix: {{formatted_discount}} & {{formatted_discount_ex}} placeholders * Translations: Added German 2.5.5 (2017-12-19) * Feature: Date offset placeholders {{order_date|+5 days}} / {{invoice_date|+2 weeks}} * Fix: Prevent accessing order properties as meta * Tweak: pass document to settings getter * Tweak: added inline documentation links 2.5.4 (2017-10-24) * Feature: new placeholders {{current_date}} && {{local_pickup_plus_pickup_details}} (support for WooCommerce Local Pickup Plus) 2.5.3 (2017-10-18) * Feature: Added {{wc_order_barcode}} placeholder for WC Order Barcodes and {{order_status}} * Feature: alternative grand total ex calculation method using wpo_wcpdf_add_up_grand_total_excl filter * Tweak: Fallback to order properties for custom blocks * Tweak: Fallback to product properties for product meta column * Fix: Don't merge tax totals by code for Tax Base calculation * Fix: Improved PHP7.1 compatibility 2.5.2 (2017-10-02) * Feature: Custom block for user meta * Feature: Fallback to order properties for custom field block * Feature: Option to show external plugin data in Product block * Feature: Added {{order_weight}} & {{order_qty}} placeholders for custom text blocks * Fix: several small CSS issues in customizer backend 2.5.1 (2017-09-01) * Fix: VAT label overriden by legacy blocks * Fix: Footer height setting * Fix: Custom block layout 2.5.0 (2017-08-28) * Feature: Simplified/improved customizer interface * Feature: More options for VAT block: separate product / shipping tax, override label and show as single total * Tweak: Add CSS class 'system-note' for private order notes automatically added by WC * Fix: Negative prices for discounts 2.4.1 (2017-07-24) * Dev: add $document parameter to wpo_wcpdf_templates_item_column_data filter * Fix: Placeholders for footer & Custom text blocks 2.4.0 (2017-07-18) * **Compatibility update for 2.0 of main plugin** * **$wpo_wcpdf variable is now deprecated** (legacy mode available & automatically enabled on update) * Feature: Allow third party plugins to add custom placeholder replacements `wpo_wcpdf_templates_replace_$placeholder` 2.3.3 (2017-04-25) * Fix: WooCommerce Checkout Add-Ons 1.10+ compatibility * Fix: Tax base to include shipping in WC3.0 * Speed optimizations 2.3.2 (2017-04-12) * Feature: added {{date_paid}} & {{date_completed}} placeholders * Updated compatibility classes 2.3.1 (2017-04-06) * Fix: WC3.0 item meta formatting * Fix: Loading footer height setting too early 2.3.0 (2017-03-28) * WooCommerce 3.0 compatible * **Requires PHP version 5.3 or higher** * Fix: Discounts division by 0 error * Fix: global plugin object loading in wrapped cron methods * Tweak: Extra column classes for attributes & custom fields * Translations: Added Slovak 2.2.1 (2017-02-08) * Feature: {{private_order_notes}} placeholder * Feature: new template action hooks wpo_wcpdf_before_document & wpo_wcpdf_after_document * Fix: discount percentage in totals * Fix: warnings when address data missing * Tweak: Customizer styles 2.2.0 (2016-11-28) * Feature: Use placeholders in templates settings fields (footer, extra fields, etc) * Feature: Option to hide custom field block if custom field is empty * Feature: Added percent option to discount column block * Fix: Credit note placeholders 2.1.13 (2016-11-07) * Feature: Option to show discount percentage in totals * Feature: Product categories block * Feature: Total quantity block (totals) * Feature: {{order_time}} placeholder (for custom blocks) * Fix: Modern template credit note date setting * Translations: Added Norwegian 2.1.12 (2016-07-18) * Feature: Added several formatted prices to the Custom blocks placeholders * Feature: Added regular price block * Feature: Option to show coupon code/codes with discount total 2.1.11 (2016-06-14) * Feature: WooCommerce Checkout Add-Ons compatibility (fee description/label) * Fix: {{order_notes}} placeholder in custom blocks * Tweak: Plugin styles compatibilies 2.1.10 (2016-05-10) * Fix: Product description for non-variable products with variation description enabled 2.1.9 (2016-05-05) * Feature: Add tax base (total excluding tax per tax rate) to totals * Feature: Variation description added to Product description column 2.1.8 (2016-04-12) * Feature: Use order data placeholders in Custom blocks * Feature: New column blocks - Checkbox, position & Static text * Feature: Option to hide shipping block for free shipping * Fix: Custom block options (hides non-applicable) * Fix: PHP notice when using custom text block after order data * Fix: Single item meta block 2.1.7 (2016-02-03) * Feature: Add custom blocks (text or custom field) via customizer * Feature: Option to show certain columns only for discounted orders * Feature: Separate variation/item meta in columns (all or single) * Feature: Bundles compatibility for Modern & Business template (product names indented) * Templates: Before & after customer notes action * Fix: Shipping method showing method twice 2.1.6 (unreleased) 2.1.5 (2016-01-05) * Feature: Product description block * Fix: YITH plugin compatibility (YITH plugins load their styles on all backend pages causing conflicts) * Fix: Allow positive 'discounts' * Fix: Footer height setting for Simple Premium template * Tweak: text domain in plugin header * Dev: pass item_id to wpo_wcpdf_item_row_class filter separately from class name 2.1.4 (2015-11-23) * Fix: Customizer interface conflicts * Dev: Added filter for item columns (wpo_wcpdf_templates_item_column_data) 2.1.3 (2015-11-11) * Feature: Show total order weight in totals * Feature: option to show single or total item weight (column block) * Fix: Packing slip ships to different address check * Fix: Empty tax label when using custom label in preceding total block * Translations: Updated dutch 2.1.2 (2015-10-20) * Feature: option to show shipping method in stead of cost * Fix: Warning when free version is not activated 2.1.1 (2015-09-22) * Fix: YITH theme compatibility * Fix: fee keys notifications (on debug output) 2.1.0 (2015-09-08) * Feature: New line item columns (weight, product custom field and product attribute) * Feature: WooCommerce Product Bundle compatibility * Fix: missing in modern template 2.0.3 (2015-06-15) * Tweak: Use new/better address comparison functions * Fix: bug for Subtotal block 2.0.2 (2015-05-20) * Several small bugfixes 2.0.0 (2015-04-28) * Mayor plugin overhaul with new features * Feature: Template editor to define columns & totals * Feature: enter custom template styles in the settings * New template: Simple Premium, customizable version of the Simple template 1.3.3 (2015-04-21) * Fix: billing address on Modern packing slip 1.3.2 (2015-03-31) * Feature: Before & after item meta actions * Tweak: item id in items loop 1.3.1 (2015-03-23) * Fix: template wrapper error 1.3.0 (2015-03-23) * Feature: display shipping address on invoice (requires 1.5.6 of main plugin) * Feature: display email address & phone number on invoice or packing slip (same as above) * Feature: footer height setting + smarter footer clearing * Feature: Various template actions * Feature: Custom styles action * Tweak: Improved sidekick notice * Tweak: several small layout adjustments / tweaks * Fix: Document titles for Credit Note & Proforma 1.2.0 (2014-10-27) * Feature: support for proforma invoices and credit notes extension (estimated release: november 2014) * Tweak: Order number is now displayed be default, invoice number (still) optional. * Tweak: Shipping method in Business packing slip * Tweak: template body now has document type class (for CSS tweaks) * Fix: Bold & italic font for modern template 1.1.3 (2014-10-15) * Fix: URL underlines * Fix: Modern packing slip date format now follows WP settings * Tweak: HTML cleanup 1.1.2 (2014-04-16) * Fix: Modern template translation strings (Order number & Order date) 1.1.1 (2014-02-17) * Feature: Support for invoice number & date * Tweak: Variation data on a single line (WooCommerce 2.1) 1.1.0 (2014-01-24) * Improved output of variations & totals