=== Germanized for WooCommerce ===
Contributors: vendidero, vdwoocommercesupport
Tags: woocommerce, germany, germany, deutsch, woo
Requires at least: 5.4
Tested up to: 7.0
WC requires at least: 3.9
WC tested up to: 10.8
Stable tag: 4.0.6
Requires PHP: 5.6
License: GPLv3
License URI: http://www.gnu.org/licenses/gpl-3.0.html

Germanized extends WooCommerce to become a legally compliant shop for the german market. Must Have for every german WooCommerce shop owner.

== Description ==

Germanized extends WooCommerce to technically match specific german legal conditions. The objective of this plugin is to adapt WooCommerce to the special requirements of german market.
Users of [Germanized for WooCommerce Pro](https://vendidero.de/woocommerce-germanized "WooCommerce optimized for German Market") benefit from additional features, specifically designed for Germany, such as PDF invoices, model text generators for terms and revocation pages, professional support and more!

= Legal certainty for WooCommerce =
Germanized extends WooCommerce with typical german shop functionality: Delivery times, base prices, shipping costs and tax notices, options to attach legally relevant pages (e.g. terms, revocation page, privacy policy etc.) - even in emails, small business regulation notices and many more.
Furthermore we customized the WooCommerce checkout to make your store meet the button solution. See a list of our features for further details:

* *Delivery Times* - Add and edit delivery times (optionally on a per-country base) for WooCommerce products. Set a default delivery time as fallback. Disable delivery times for certain product types.
* *Small Business Regulation* - Show special tax notices if you are a operating a WooCommerce shop as a small business.
* *Shipping Costs and Tax notices* - Display notices beneath your WooCommerce product prices and within cart/checkout/e-mails.
* *Base Prices* - Display additional per unit prices for your products. Let unit prices be calculated automatically (Pro).
* *Short Cart Product Descriptions* - Display a special product description within your WooCommerce cart/checkout.
* *Terms, Revocation, Privacy Policy* - Display checkboxes within your checkout to make sure customers agree to your conditions.
* *Legal Checkboxes UI* - Adjust your legal WooCommerce checkboxes (e.g. terms & conditions) through a fluent user interface.
* *Button Solution* - We adjust your checkout and submit button to comply with german button solution.
* *Withdrawal Button* - Add a withdrawal button (EU directive 2023/2673) to your store which contains a form to let your customers conveniently place withdrawal requests.
* *Sell Food (Pro)* - Label your food (nutrients, ingredients, allergenic), sell deposit bottles, show the Nutri-Score.
* *OSS compliance* - Germanized helps your WooCommerce shop to be compliant with the new One Stop Shop procedure
* *Double opt-in (DOI) for Customers* - Make sure customers opted in while registering within your shop. Optionally disable checkout until the customer opted in.
* *Tax Calculation for Shipping Costs and Fees* - Enable split tax calculation based on your WooCommerce cart taxes.
* *Legal pages in Email Templates* - Attach legal pages content to certain WooCommerce e-mail templates.
* *Trusted Shops Integration* - Integrate your Trusted Shops Products within your WooCommerce store
* *Post, DHL, UPS, DPD (Pro) and GLS (Pro) Integration* - Generate labels for shipments and returns right from your backend. Offer preferred delivery services to your customers.
* *Payment Gateway: SEPA direct debit* - Receive payments via direct debit. We've added a XML export to transfer payments to your bank.
* *Payment Gateway: Pay by Invoice* - Allow certain customers to pay by invoice. Best integration with our PDF invoices feature (Pro).
* *Online Revocation Form* - Allow customers to submit revocations by filling out a form on your revocation page.
* *Sale Price Labels* - Prepend your WooCommerce sale prices by certain tags e.g. old price and new price.
* *Photovoltaic Systems* - Sell photovoltaic systems by applying the zero tax rate for customers who meet the legal requirements
* *Differential Taxation* - Insert special notices for products which a differential taxed.
* *Used Goods and Defective Copies* - Show defect descriptions on your product page and during checkout.
* *WPML Support* - Germanized can be used with WPML.
* *REST API Support* - Data added by Germanized is adjustable via the WooCommerce REST API
* *Product CSV Import/Export* - We've extended the WooCommerce product CSV import and export to support our custom fields (e.g. unit price, delivery time etc.)
* *GDPR export/delete* - We do support the export/delete features of WordPress 4.6 and WooCommerce 3.4 and added new checkboxes to checkout and register form.
* *Invoices, E-Invoices & Packing Slips (Pro)* - Conveniently create invoices, packing slips, cancellations and commercial invoices via your WooCommerce dashboard. Comes with full e-invoicing support and many automation settings.
* *Legal PDF attachments (Pro)* - Attach PDFs to certain email templates instead of plain text. Optionally let Germanized generate your PDFs automatically by parsing your page content.
* *Delayed conclusion of contract (Pro)* - By default a contract is concluded right after submitting the WooCommerce checkout. Germanized offers you to delay that contract and manually check the order before concluding the contract.
* *VAT ID check for WooCommerce (Pro)* - Provide additional fields within checkout, customer account and registration form to automatically validate the VAT ID based on the EU API.
* *Multistep Checkout (Pro)* - Transforms the single-page-checkout within WooCommerce into a multistep checkout. Support both the classic checkout and the block-based checkout.
* *GPSR compliance* - Add manufacturer information and safety documents to your products

= Germanized for WooCommerce is certified by Trusted Shops =
Germanized has been approved by Trusted Shops and therefor offers best technical conditions to operate a legally binding WooCommerce Shop in Germany.
Trusted Shops certifies Shops after selected and weighted criteria and has carefully examined our WooCommerce Plugin.
Of course Trusted Shops customers may embed their quality seals or further Trusted Shops Products as genuine Seller and Product Reviews by adapting just a few options within Germanized for WooCommerce.

= Pro: WooCommerce invoices, packing slips and e-invoices =
As a Pro User of Germanized you may automatically or manually create invoices to orders and packing slips and commercial invoices to shipments. Adjust your document layout by using the built-in visual document editor.
Either export your documents (CSV, zip) for your tax consultant manually or use our integrations to transmit your documents to your lexware office or sevdesk account. Comes with full support for e-invoices.
Learn more about [PDF Invoices for WooCommerce](https://vendidero.de/woocommerce-germanized/features#accounting "WooCommerce PDF Invoices")

Furthermore you may attach legally relevant pages (e.g. Terms & Conditions) as PDF documents to specific WooCommerce emails instead of using plain text.

= Professional shipping, returns and fulfillment solution for WooCommerce =
Install our plugin [Shiptastic for WooCommerce](https://wordpress.org/plugins/shiptastic-for-woocommerce/) to improve shipping, returns and fulfillments in WooCommerce.
Manage your shipments and it's statuses independently of your orders. Let your customers receive a notification email as soon as a shipment has been marked as shipped including tracking information from a built-in or manually added shipping provider.

= Handle returns with ease =
Managing returns can be a time-consuming challenge. By using Shiptastic for WooCommerce you might let your customers create return requests through their customer panel. All you need to do is confirm the request through your return dashboard and your customers will receive an email containing further steps on how to return their product(s).
In case you are using one of our built-in carrier integration you might as well (automatically) create a label to the return which will be attached to the email sent to the customer. Perfectly integrated with the new withdrawal button in Germanized.

= Deutsche Post, DHL, UPS, DPD (Pro) and GLS (Pro) Integration =
With the help of our Deutsche Post, DHL, UPS, DPD (Pro) and GLS (Pro) integration you can easily create labels to shipments and add tracking information to notification emails. Offer preferred delivery services to your customers including shipping to Packstation and/or pickup locations or choosing a drop-off location within the checkout.
You can even automate the whole label process to avoid further manual work. [Learn more](https://vendidero.de/doc/woocommerce-germanized/versanddienstleister-verwalten "Shipping Provider for WooCommerce") about the way our shipping provider integrations work.

= Extended One Stop Shop compliance =
With a little help from our [One Stop Shop compliance plugin for WooCommerce](https://wordpress.org/plugins/one-stop-shop-woocommerce/) you'll handle the new EU VAT regulations with ease. Generate new VAT reports for different time frames and let the plugin
observe the delivery threshold automatically to make sure you'll get notified in case you are close to reaching the threshold and need to take action.

= Pro: Professional Support =
Customers of Germanized for WooCommerce Pro enjoy our high-quality support via tickets. Nevertheless we also seek to offer a good plugin support via our WordPress support forum.

= Tested WooCommerce Plugins =
We've added some specific compatibility and tests for certain popular WooCommerce plugins. See this list for further details:

* WPML
* WooCommerce Dynamic Pricing
* WooCommerce Role Based Pricing
* WooCommerce Product Bundles
* WooCommerce Subscriptions
* WooCommerce Measurement Price Calculator
* Elementor

= Tested WooCommerce Themes =
By default, Germanized works with *every WooCommerce theme*. Some themes may need adjustments due to not using WooCommerce standards hooks or styles. Within our professional version we've tested certain third-party WooCommerce themes to ensure better compatibility with Germanized for WooCommerce:

* Flatsome
* Enfold
* Storefront
* Virtue
* Shopkeeper
* Astra
* OceanWP

== Installation ==

= Minimal Requirements =

* WordPress 5.4 or newer
* WooCommerce 3.9 (newest version recommended)
* PHP Version 5.6 or newer

= Automatic Installation =

We recommend installing Germanized for WooCommerce through the WordPress Backend. Please install WooCommerce before installing our plugin.
After the installation you may easily adapt the settings to your own needs.

= Product specific shortcodes =
You may use one of the following product-specific shortcodes to output notices within PageBuilders or on custom-built-pages.
The `product` parameter is optional. Shortcodes are falling back to the global $product variable in case the `product` parameter is missing.

`[gzd_product_unit_price product="123"]`
Outputs unit price for a product.

`[gzd_product_units product="123"]`
Outputs units included with the product e.g. 100 ml.

`[gzd_product_delivery_time product="123"]`
Outputs delivery time for a product.

`[gzd_product_tax_notice product="123"]`
Outputs tax notice for a product.

`[gzd_product_shipping_notice product="123"]`
Outputs shipping costs notice for a product.

`[gzd_product_defect_description product="123"]`
Outputs defect description for a defective copy.

`[gzd_product_cart_desc product="123"]`
Outputs mini cart description for a product.

= General Shortcodes =

`[order_withdrawal_request_form]`
Place a withdrawal request form to allow your customers to conveniently submit order withdrawal requests.

`[payment_methods_info]`
Very useful as page to inform the user of your WooCommerce payment gateways - Inserts an overview of all enabled payment gateways plus their descriptions.

`[gzd_email_legal_page_attachments email_id="customer_processing_order"]`
This shortcode outputs the legal page content attached to a specific email template. In case the email_id attribute is missing the shortcode tries to determine the current email template being sent.
The shortcode is useful to output the legal page attachments in custom email templates built via a GUI (e.g. email customizer plugins).

`[gzd_complaints]`
Inserts the dispute resolution notice you configured within your settings - this Shortcode should be inserted within your imprint/terms.

`[gzd_return_request_form]`
Insert the guest return request form which allows guests to submit [return requests](https://vendidero.de/doc/woocommerce-germanized/retouren-konfigurieren-und-verwalten).

= Updating Germanized for WooCommerce =

Before updating WooCommerce you should definitely check whether Germanized does already support the newest version.
You may of course Update Germanized for WooCommerce automatically through the WordPess Backend. Please make sure to always backup (at least your database) before updating any theme or plugin.

== Frequently Asked Questions ==

= Where to find documentation? =
[Germanized Documentation](https://vendidero.de/doc/woocommerce-germanized/home-germanized)

= Need help? =

You may ask your questions regarding Germanized for WooCommerce within our free [WordPress Support Forum](https://wordpress.org/support/plugin/woocommerce-germanized).
Professional help desk support is being offered to [Professional Users](https://vendidero.de/woocommerce-germanized "Support for WooCommerce Germanized") only.

= Not every option fits my WooCommerce Theme =

Unfortunately not every Theme does implement WooCommerce in the way it's meant to be or differs from the original structure which leads to layout and/or compatibility
issues. For testing purposes, please activate a default WordPress Theme (such as TwentyX) and see whether the issues persist.

= Using a page builder? =

In case you are using a page builder (e.g. Elementor, Divi-Builder) you might want to replace the default [shopmarks](https://vendidero.de/doc/woocommerce-germanized/preisauszeichnungen-anpassen) placed by Germanized with our custom [shortcodes](https://vendidero.de/doc/woocommerce-germanized/preisauszeichnungen-anpassen#pagebuilder).

= Email attachments not showing in WooCommerce order confirmation email =

In most times you have a wrong configuration within your Germanized email settings. The order confirmation email sent to the customer after an order has been made is called "Processing Order". The email called "New Order" is the email
sent to the Administrator which serves as a notification only - so make sure you have "Processing Order" selected within the plugins' settings.

= Want to file a bug or improve Germanized for WooCommerce? =

Bug reports may be filed via our [GitHub repository](https://github.com/vendidero/woocommerce-germanized).

== Screenshots ==

1. Some of the checkout adjustments to comply with the button solution
2. General settings screen
3. Germanized for WooCommerce Legal Checkboxes UI
4. WooCommerce Multistep Checkout (Pro)
5. Manage shipments and invoices (Pro) for orders
6. Edit pdf documents (Pro)

== Changelog ==
= 4.0.6 =
* Fix: Transactional email queue support for Woo >= 10.8.1

= 4.0.5 =
* Improvement: [Withdrawal button] Basic spam protection via honeypot field + direct post check
* Improvement: [Withdrawal button] Prevent guests from submitting
* Fix: [Withdrawal button] Performance improvement for legacy withdrawal imports by using direct queries

= 4.0.4 =
* New: [Withdrawal button] Accept withdrawal requests without matching order
* New: [Withdrawal button] Withdrawal admin UI
* New: [Withdrawal button] Store withdrawals as custom order type
* New: [Withdrawal button] Allow choosing a different support email via setting
* Improvement: Variable bundle price labels
* Improvement: Unit price observation for FSE themes
* Fix: Prevent rescheduling shiptastic install notice after 4.X
* Fix: Bump terms.php template version

= 4.0.3 =
* Fix: [Withdrawal button] Prevent calling customer in admin context

= 4.0.2 =
* Improvement: [Withdrawal button] Allow withdrawal requests without order number and differing email address
* Improvement: [Withdrawal button] Mark withdrawal requests as verified/unverified based on email address
* Improvement: [Withdrawal button] Separately list unverified withdrawal requests by default
* Improvement: [Withdrawal button] Allow verified guests to choose another order in case multiple orders are withdrawable
* Improvement: [Withdrawal button] Allow choosing first + last name

= 4.0.1 =
* New: Withdrawal button in compliance with EU directive 2023/2673
* New: Removed Shiptastic, DHL for Shiptastic packages from core
* New: WP 7.0 compatibility
* Improvement: Prevent setting custom tax meta for items without taxes
* Improvement: WooCommerce checkout/cart block attribute styling
* Fix: Partial withdrawal option

= 4.0.0 =
* New: Withdrawal button in compliance with EU directive 2023/2673
* New: Removed Shiptastic, DHL for Shiptastic packages from core
* New: WP 7.0 compatibility
* Improvement: Prevent setting custom tax meta for items without taxes
* Improvement: WooCommerce checkout/cart block attribute styling

= 3.20.7 =
* Fix: Unit price observer/recalculation for variable price ranges
* Improvement: Support product collection block unit price observation

= 3.20.6 =
* Security: Fix direct debit gateway shortcode execution. Thanks to Chiao-Lin Yu (Steven Meow)

= 3.20.5 =
* Improvement: Cart/Checkout block price label HTML styling
* Improvement: Divi 5 Gutenberg checkout blocks
* Improvement: Elementor Pro checkout widget detection and compatibility
* Improvement: Do not use deprecated wc_enqueue_js
* Improvement: Update sepa xml library to latest version to support newer pain formats
* Improvement: Update to latest Shiptastic, see separate changelogs
* Improvement: Latest tax rate changesets for 2026
* Fix: Price labels within thankyou/order confirmation block

= 3.20.4 =
* New: Support deposit packaging, e.g. beverage crates (Pro)
* Improvement: Missing/empty price detection
* Improvement: Update to latest Shiptastic, see separate changelogs

= 3.20.3 =
* New: Woo 10.3.0 compatibility
* Improvement: Update to latest Shiptastic and DHL for Shiptastic, see separate changelogs
* Improvement: Show inline checkbox error messages, if available, within block-based checkout
* Improvement: Interpret additional costs for newly created orders via REST as net
* Improvement: Removed the built-in language fallback for de_CH and de_AT as it doesn't work in newer WP env - install language fallback plugin instead

= 3.20.2 =
* Improvement: Update to latest Shiptastic and DHL for Shiptastic
* Improvement: Migrate update scripts to stop using core Shiptastic methods
* Improvement: Tax status for deposit types (Pro)
* Improvement: Support DOI delayed account creation within block-based Checkout
* Fix: Voucher detection in block-based checkout

= 3.20.1 =
* Improvement: Update to latest Shiptastic and DHL for Shiptastic
* Improvement: Do not replace variable price in case price element could not be detected
* Fix: Do not override customer cancelled order email template
* Fix: (Re-) calculate taxes on negative fees too
* Fix: Unit price display in cart block
* Fix: WPML config typo

= 3.20.0 =
* New: Shiptastic: Support syncing shipment status with API
* New: Show Shiptastic standalone migration notice to prepare for 4.0.0
* Improvement: Pro license management and upgrade options
* Fix: Unit price node updates race condition
* Fix: Do not load custom cancelled order notification email in case Woo core mail exists
* Fix: Prevent add to cart variation layout shift

= 3.19.13 =
* New: Remove references to EU online dispute resolution platform

= 3.19.12 =
* New: Move (legacy) COD gateway fee option to general settings screen as the (new) payment settings UI does not allow adding options
* New: Introduce DHL GoGreen Plus service
* Improvement: Support decimals as watt min/max values
* Improvement: Performance improvements in shipping settings view
* Improvement: New shipping rule options, e.g. single-use for certain packaging
* Improvement: Install DB updates automatically by default (as Woo Core does)
* Fix: Edge case regex handling to prevent hidden checkout block submit button
* Fix: Split-tax shipping tax calculation in checkout block
* Fix: Show small business notice in cart block
* Fix: Do not calculate shipping taxes in case Woo tax calculation has been disabled

= 3.19.11 =
* New: Woo 9.9 compatibility
* Improvement: Woo transactional email improvement support for custom processing text
* Improvement: Allow creating manufactures in brand context
* Fix: Manufacturer bulk edit support
* Fix: Shiptastic: Do not pass retry parameter in body args to prevent API error messages
* Fix: Shiptastic: Boxpacker expects the max weight to include empty packaging weight
* Fix: Shiptastic: DHL Internetmarke auth issue

= 3.19.10 =
* New: Migrate to Internetmarke REST API
* New: Shipping rule condition to target subtotals before discount
* New: Allow manufactures to be linked to brands instead of direct linking to products
* Improvement: Support DHL participation number import via API when changing user
* Improvement: Assembled Bundles compatibility
* Improvement: Unit price observation
* Fix: Patch a Woo bug which leads to manually created orders not receiving the prices_include_tax property

= 3.19.9 =
* Improvement: Support previewing E-Mails
* Fix: Prevent removing nonces in case multiple gzd submit buttons are visible (theme incompatibilities)
* Fix: Prevent querying pickup locations in case location does not match provider
* Fix: Defensive checks: Prevent undefined array key error in cart

= 3.19.8 =
* New: Indicate UPS Shiptastic Integration availability
* Improvement: Email title replacement in Shiptastic emails

= 3.19.7 =
* Fix: Backwards compatibility with Woo < 9.X

= 3.19.6 =
* New: Remove photovoltaic VAT exempt for Austria (AT)
* Improvement: Do not adjust shipping costs for non-taxable shipping rates
* Improvement: Add safety instructions field to REST API
* Fix: Shiptatic migration meta table column renaming MySQL compatibility

= 3.19.5 =
* Improvement: Allow sorting main shipments meta box via drag & drop
* Improvement: Bump shipments template versions
* Improvement: Shiptastic migration prevent duplicate option key notices
* Improvement: Limit additional DHL API fields to max length
* Improvement: Do not allow choosing a company name when delivering to DHL pickup location
* Fix: Readd missing product quick edit hook
* Fix: Legacy [gzd_return_request_form] shortcode

= 3.19.4 =
* Fix: Prevent MySQL DB schema issue with default text options
* Fix: Prevent pickup location error in case of a cache miss and missing address data

= 3.19.3 =
* Improvement: Legacy Shipments compatibility, e.g. PayPal Payments
* Fix: Prevent cache errors with pickup locations after migration

= 3.19.2 =
* Fix: Legacy shipments compatibility hook arguments
* Fix: Per page option for shipments

= 3.19.1 =
* Fix: Warning while declaring Shiptastic feature compatibility in Woo Core
* Fix: Shiptastic migration script force reset options to prevent unnecessary warnings
* Fix: Possible infinite loop when using WPML with Shiptastic
* Fix: WooCommerce PayPal Payments legacy Shipments namespace compatibility

= 3.19.0 =
* New: Refactored Shipments to Shiptastic. Read more at https://vendidero.de/doc/woocommerce-germanized/shipments-zu-shiptastic-migration
* Improvement: Use inner spans to apply delivery time html classes
* Improvement: Add shipping tax rates even for shipping costs with zero taxes, e.g. free shipping
* Improvement: Watch for attribute changes while observing prices too
* Improvement: Shipping method: Added tax status option to make sure Woo can retrieve the right tax status
* Improvement: Assembled bundle handling when creating shipments
* Fix: Hide block-fill-wrapper in block checkout

= 3.18.7 =
* New: Support labelling (power supply) for wireless electronic devices
* Improvement: Latest WC Checkout block UI compatibility
* Improvement: By default do not treat downloadable but non-virtual items as exempts for shipping costs/delivery time
* Improvement: WPML support for conditional checkboxes
* Fix: Do not enforce (re-) escaping html provided via filter to price labels
* Fix: Assume packaging weight unit as default unit when displaying reports

= 3.18.6 =
* New: DHL Kleinpaket
* New: DHL REST prefer auth via OAuth
* Improvement: WPML copy manufacturer product meta
* Improvement: Hide price label desc in mini cart
* Improvement: Prefer using the newly introduced GTIN option from Woo Core if available

= 3.18.5 =
* New: Free-text field to output additional product safety information
* Improvement: Redirect fix after finishing bulk action
* Improvement: Do not render disabled checkboxes
* Improvement: Elementor Pro checkout compatibility with latest Elementor version
* Improvement: Add gtin/mpn to structured product data, if available
* Improvement: Google for WooCommerce compatibility
* Fix: Show/hide label services based on selected product
* Fix: Shopmark enabled/disabled status in checkout/cart blocks

= 3.18.4 =
* New: WP 6.7 compatibility
* Improvement: Manufacturer bulk + quick edit support
* Improvement: Auto correct certain address_1 user input errors, e.g. Bootstr.12 -> Bootstraße 12
* Improvement: Do not allow pickup location delivery for DHL Warenpost
* Improvement: Exclude certain gateways from allowing pickup location delivery
* Improvement: Bundles shipment compatibility
* Improvement: Added WooCommerce Shipment Tracking fallback compatibility
* Improvement: Use attachment caption, if available as safety document title
* Fix: Newest Woo Checkout block HTML structure compatibility
* Fix: DHL Preferred day lead time calculation
* Fix: Tax calculation exempt while applying order voucher coupon

= 3.18.3 =
* Improvement: Allow 0 as valid house number
* Improvement: Harden invoice gateway customer check to prevent possible error in admin context
* Improvement: Do not automatically show (a possibly hidden) unit price (e.g. empty) after observer update
* Fix: Label creation from within the shipments table page
* Fix: Internetmarke preview in label modal
* Fix: Manufacturer import

= 3.18.2 =
* Fix: Transform packaging dimensions/weight while syncing shipment

= 3.18.1 =
* Fix: Product map caching issue

= 3.18.0 =
* New: Compliance with new GPSR regulation
* Improvement: Refactored shipments integration settings UI
* Improvement: Store weight/dimension unit in packaging data
* Improvement: Send order paid mail on pending to completed notification (e.g. virtual items)
* Fix: Unit price observer sale price
* Fix: DHL sandbox environment
* Fix: DHL Warenpost mm bug
* Fix: Prevent missing items in shipment weight/dimension calculation

= 3.17.4 =
* Fix: REST API Schema insertion leading to fatal error during cron actions
* Fix: Patch DHL location finder results when addressLocality is missing

= 3.17.3 =
* Improvement: Pickup location search in block-based checkout
* Improvement: Allow guests to view shipments in order tracking shortcode
* Fix: DHL SOAP signedForByRecipient wsdl patch
* Fix: Pickup location transient cache issue
* Fix: Block house number address validation

= 3.17.2 =
* Improvement: Add link to last shipment's tracking url in order shipping status column
* Improvement: Added new abstraction layer for pickup location provider settings
* Improvement: Support for specific item based free shipping rules, e.g. based on exact shipping class match or restricted packaging
* Fix: Variation shipping dimensions
* Fix: Prevent certain special chars in DHL label references to prevent cryptic inlay label error messages

= 3.17.1 =
* Improvement: Support unit product ranges for variable products, e.g. 100 ml - 200 ml
* Improvement: Use all available (even non-fitting) packaging options in view-mode only
* Improvement: Prevent (loading, creating) orphan shipment items
* Improvement: Skip custom shipping address option creation during installation
* Improvement: Added option to decide whether to use a custom return address or not
* Fix: FSE theme hook injection fatal error
* Fix: Revert to using transients (like Woo Core does) instead of options for setup/activation redirection
* Fix: Support importing checkout visibility attribute for variable products
* Fix: Re-add missing country-specific delivery time label
* Fix: Cleanup email gettext filter within email footer
* Fix: Check for product existence before applying bundle shipments compatibility

= 3.17.0 =
* New: WP 6.6 compatibility
* Improvement: Woo 9.0 compatibility
* Improvement: Pickup location modal styles, hidden classes
* Improvement: Shipments bundle compatibility, parent-child hierarchy
* Improvement: Preview shipment button in shipment table
* Improvement: Allow managing label references via options
* Improvement: Allow choosing a custom value of goods for DHL insurance
* Improvement: Added custom delivery time classnames to delivery time wrapper
* Fix: Check attribute type while exporting product data

= 3.16.9 =
* Fix: Incompatibility with Amazon Pay

= 3.16.8 =
* Improvement: Support gateway fee (Nachnahme) in block-based checkout
* Improvement: DHL SOAP WSDL files update, added optional MRN to SOAP API too
* Fix: Divi checkout builder compatibility

= 3.16.7 =
* Improvement: Pickup location style fallbacks for custom checkouts
* Fix: Checkout checkboxes block undefined state check
* Fix: Elementor Pro compatibility with third party addons
* Fix: Product attribute checkout visibility export

= 3.16.6 =
* Improvement: Pickup location UI in classic checkout and account page
* Improvement: Support export reference number (mrn) for international shipments
* Improvement: Allow choosing DHL API type from new option
* Improvement: Added tax rate percentage formatting filter
* Improvement: Support checkout visibility product attribute import/export
* Improvement: Support Austria specific legal title in complaints template
* Improvement: Support conditional checkbox display, e.g. revocation notice within emails too
* Fix: Parcel outlet service default booking
* Fix: Photovoltaic systems custom tax class filters
* Fix: Language variant fallback support (e.g. CH, AT) for WP >= 6.5
* Fix: Duplicate nonce removal in classic checkout edge case
* Fix: Voucher checkout/cart display + calculation

= 3.16.5 =
* Fix: Prevent type error when converting cart dimensions
* Fix: Non-existent pickup locations field hiding logic
* Improvement: Remove legacy email resend filter
* Improvement: Divi checkout builder compatibility

= 3.16.4 =
* Fix: Checkout block prevent multiple refresh leading to react errors
* Improvement: Pickup location admin fields Woo < 8.6 backwards compatibility
* Improvement: Street number validation within checkout block in case activated
* Improvement: Increase DHL pickup location search radius

= 3.16.3 =
* Fix: Prevent duplicate meta entries within shipping provider meta table
* Fix: Remove duplicate meta entries in update script

= 3.16.2 =
* Fix: Compatibility issue with PayPal Payments and checkout field registration
* Fix: DHL shipment zone detection
* Fix: Prevent key warnings when loading shipping method data

= 3.16.1 =
* Fix: Prevent fatal error for base countries not supporting built-in shipping providers

= 3.16.0 =
* New: Support pickup location selection in block-based Checkout
* New: Use select field to choose pickup location and move selection out of shipping address fields
* Improvement: Generalized pickup location implementation to allow integrations for other shipping providers
* Improvement: Order submit button fallback compatibility
* Improvement: Added shipping method debug mode output
* Improvement: Sort DP print format list
* Fix: Do not allow shipping method to be selected in case at least one product does not fit the available packaging
* Fix: Prevent Helgoland from being tread as third-country for DHL

== Upgrade Notice ==

= 1.0.0 =
no upgrade - just install :)