Polski for WooCommerce is a free WooCommerce plugin for Polish online shops. It issues numbered VAT invoices, and helps you organise GPSR product data, the Omnibus lowest-price history, GDPR consents, the right of withdrawal, VAT ID (NIP) handling, unit prices, hooks for KSeF processes, DSA reports and storefront modules.
The plugin is modular. You can enable only the features a given shop needs, for example GPSR, Omnibus, cart consents, withdrawals, unit prices, food data, a wishlist, a product comparison or AJAX search.
Polski helps you configure the technical shop processes related to the Polish and EU market. It is not legal advice and does not guarantee regulatory compliance. Your shop configuration, terms, products and obligations always have to be verified for your specific business.
Documentation and links
为什么选择 Polski for WooCommerce?
One free, open-source plugin with many modules, built for shops selling in Poland. PHP 8.1+, a React admin panel, REST API and WP-CLI, classic and block cart and checkout, HPOS compatible.
Key modules
- GPSR product fields - manufacturer, importer and EU responsible person with the addresses and contact art. 19 asks for, product identifiers, safety warnings and instructions, with CSV import and export.
- Omnibus price history - records and displays the lowest price from the last 30 days on discounted products.
- Product markings - per-product flags that print the statutory notice on the product page: medical device, and goods sold to adults only such as alcohol or tobacco.
- Deposit scheme (system kaucyjny) - adds the statutory deposit to beverages in covered packaging, untaxed and on its own checkout line.
- GDPR consents and checkboxes - configurable consents at checkout, registration and reviews, with a consent log.
- Right of withdrawal and returns - requests from the customer account, e-mail confirmations and a request log.
- VAT ID (NIP) and KSeF hooks - detection of orders with a VAT ID, a KSeF flag and hooks for invoicing integrations.
- EU VAT ID check (VIES) - confirms a customer's EU VAT number against the European Commission's register and records the consultation number on the order.
- VAT margin scheme - the art. 120 annotation on invoices for second-hand goods, works of art, collectors' items and antiques.
- GTU markings - one of the thirteen JPK_V7 goods and services groups per product, printed against its own line on the invoice.
- DSA reports - a point of contact, an illegal-content report form and an admin panel.
- Shop health monitor - passive monitoring of frontend errors, checkout issues and sales anomalies.
- Security incident log - an internal log of incidents, outages, vulnerabilities and follow-up actions.
- Product environmental fields - a basis for green claims, certificates and expiry dates.
- Verified purchase badge - a badge on reviews from customers who bought the product.
- AI-classified return reasons - return reasons sorted by the optional AI classifier carry a "classified by AI" marker and can be filtered in the admin withdrawals list.
Checkout, consents and returns
- Consent checkboxes (beta on the block checkout) - consents at order, registration and reviews, with the option to enable only selected fields. On the block checkout the labels show without links and the conditional boxes are not shown.
- Right of withdrawal - withdrawal/return forms and requests from the customer account.
- Double e-mail confirmation (beta) - e-mail address confirmation during customer registration. An account created at checkout stays logged in for that session.
- Shop pages - link the terms, privacy policy and withdrawal content into WooCommerce notices.
- Dispute resolution - a notice about out-of-court complaint and redress options (consumer ombudsman, Trade Inspection) on the cart and checkout pages and as a shortcode.
- Consent log - logging of consents with date, context, IP address and content version.
Product data and labelling
- Unit prices - price per kg, litre, metre, piece or a custom unit.
- GTIN validation - GS1 check-digit validation (GTIN-8/12/13/14) in the product editor and CSV import, warning without blocking saves.
- Delivery time - estimated delivery time on product pages and product lists.
- Tax information - the VAT rate notice and the small business exemption (Art. 113).
- Price display - configuration of how prices are presented in the shop.
- Food data - composition, nutrition values, allergens, origin, distributor and other fields for grocery shops.
Storefront modules
- Wishlist - save products for later.
- Product comparison - compare products side by side.
- Waitlist - back-in-stock notifications for simple products and for each variation of a variable product.
- Quick view - preview a product without opening the product page.
- Gallery zoom - enhanced product image zoom.
- Product video - add a video on the product page.
- Product slider - a carousel of products and collections.
- Infinite scroll - automatic loading of more products.
- Product tab manager - configure the tabs on the product page.
- AJAX filters - filter products without reloading the page.
- AJAX search - live product search by title, SKU, category and chosen attributes, placed with a shortcode or block.
- Product badges - sale, new, featured and custom labels.
- Promotional popups - popup campaigns in the shop.
Admin and developer tools
- React panel - manage modules and settings.
- REST API - an API for settings, checkboxes, legal pages, withdrawals and search.
- WP-CLI - commands to manage selected features from the terminal.
- CSV import and export - bulk management of product data, including GPSR and GTIN validation warnings.
- Shortcodes - embed GPSR information, withdrawal forms, DSA reports and other elements.
- Database migrations - versioned and safe updates of data structures.
- Integration hooks - filters and actions for KSeF, invoicing and integrations with other plugins.
You may also like these plugins
More free WooCommerce plugins from WPPoland:
- Plogins Tiers - quantity and volume pricing tiers with a server-rendered price table.
- Plogins Waitlist - back-in-stock waitlist that emails shoppers the moment a product returns.
- Sieve - Search & Filter - fast AJAX product search and filtering for WooCommerce, with no jQuery.
Browse the full catalogue at
plogins.com/ .
Reporting a security issue: email hello@wppoland.com, and under our
coordinated disclosure policy we confirm within two business days, assess within five, and patch a critical issue within seven days of confirming it.
Automatic installation
- In the WordPress dashboard go to Plugins > Add New.
- Search for Polski for WooCommerce.
- Click Install, then Activate.
- Open the new Polski menu in the admin panel.
Manual installation
- Download the plugin ZIP from WordPress.org.
- In the WordPress dashboard go to Plugins > Add New > Upload Plugin.
- Choose the ZIP file and click Install Now.
- Click Activate Plugin.
Getting started
- Check the legal pages: go to Polski > Modules and make sure the legal pages module is active. In its settings choose your terms, privacy policy and withdrawal page.
- Configure the checkboxes: open the legal checkboxes module and enable the consents your shop requires.
- Check VAT rates: make sure WooCommerce has the correct tax rates for your shop.
- Fill in unit prices: for products sold by weight or volume, fill in the data in the Polski tab of the product editor.
- Enable Omnibus: the module records price history and can display the lowest price from 30 days.
- Fill in GPSR: for physical products add the manufacturer, importer and responsible person data and safety information.
配置
Polski works in a modular way. You can enable only the features you need:
- Product data: GPSR, unit prices, delivery time, food data.
- Checkout and consents: checkboxes, right of withdrawal, legal pages.
- Storefront: wishlist, comparison, search, filters and badges.
Active modules with settings appear in the
Polski menu or have a settings link on the modules page.
1.46.0
- Fixed: on the guest withdrawal form, an order number that also matched the internal ID of a different order found that other order on shops with their own order numbers. The ID now counts only when it is the number the shop shows.
- Fixed: items the shop already refunded by hand could still be selected for withdrawal. They now count as gone, and a refund booked for a withdrawal is not counted twice.
- Fixed: completing a withdrawal on an unpaid order (a bank transfer on hold) now puts the withdrawn items back in stock, the way a WooCommerce refund does. Paid orders are restocked by the refund, as before.
- Changed: WooCommerce's own review request email (WooCommerce 11) now respects the review reminder consent box and the opt-out link, like Polski's reminder.
1.45.9
- Fixed: the default marketing consent label is no longer saved on activation, so it now follows the site title when you rename the shop. A label you saved yourself is kept.
1.45.8
- Fixed: on shop and category pages the Omnibus "lowest price in the last 30 days" ignored a price that was already in force when the 30 days began and changed later, so a listing could show a higher prior price than the product page. Listings now open the window at the price in force, as the product page does.
- Changed: the default marketing consent label names the shop ("...the newsletter from [shop name]"). Labels you already saved are not changed. The checkout compliance check now flags a marketing label that mentions partners and asks you to name every company.
1.45.7
- Fixed: after choosing a variation with its own WooCommerce gallery, image zoom and the lightbox stopped working on the product page.
1.45.6
- Changed: tested with WooCommerce 11.2.
1.45.5
- Fixed: an expert review linked to a product variation now shows on the variable product's page.
- Fixed: the expert review's featured image is now shown, with alt text.
1.45.4
- Fixed: the energy label of a variation. A variation can now have its own energy class, scale, label and product information sheet; a variation without its own class still shows the parent's label.
1.45.3
- Added: a one-time request for a WordPress.org review, 14 days after activation and only on Polski screens. Either button removes it for good.
1.45.2
- Security (medium): stored cross-site scripting in the cookie consent content blocker. A post author or contributor could write blocker markup that, once a visitor unblocked it, loaded a javascript: address or an iframe with srcdoc or event handlers. The restore script now accepts only http and https addresses and a fixed list of iframe attributes.
1.45.1
- Changed: The consumer information module links to Durabix, which adds the harmonised notice on the legal guarantee and the GARAN label (Implementing Regulation (EU) 2025/1960). This module still prints its own plain-text reminder.
1.45.0
- Added: Energy label module. An arrow in the colour of the energy efficiency class next to the price, opening the label, and a link to the product information sheet (Regulation (EU) 2017/1369 art. 5(1)(a)). Off until enabled.
1.44.4
- Fix: the guest withdrawal form now finds an order by its custom order number on shops that store orders as posts. Before, the lookup ignored the number there and could pick the newest order in the shop.
- Fix: the "none" option in page dropdowns on the module settings screen is now escaped.
1.44.3
- Performance: the Polski admin fonts and design stylesheet now load only on Polski screens. Other wp-admin screens load just the 2 KB menu icon.
1.44.2
- Performance: Badges, AJAX Search and Product Slider load their stylesheet and script only on pages that show them. Before, an enabled module loaded them on every page, plain pages and posts included.
1.44.1
- Every card in the "What PRO adds" grid now has its own Upgrade to PRO button.
1.44.0
- New: a "Services (request to start early)" checkbox at checkout, classic and block. It shows when the cart holds a product whose category excludes it from withdrawal with the new Service reason (Article 38(1)), and the answer is saved on the order. Such a service only stops being withdrawable once the request is on the order and the order is completed.
- New: an "Age confirmation (18+)" checkbox at checkout, classic and block. It shows when the cart holds a product marked "Adults only (18+)"; the confirmation, the minimum age and an order note are saved on the order.
1.43.12
- Fixed: the cookie banner, VAT and delivery time labels and the withdrawal confirmation subject fall back to the translatable English defaults instead of Polish or outdated text, also on a network subsite that never saved its settings.
1.43.11
- Fixed: deleting the plugin now clears its scheduled events on every site, even where data removal is off. Where data removal is on, it now cleans every site of a multisite network, not only the main one, resets that site's rewrite rules and also removes the delivery time, manufacturer, unit, brand, allergen and nutrient terms it used to leave behind.
1.43.10
- Fixed: deleting the free plugin together with an add-on that shares its data, in one bulk Delete, no longer leaves that shared data behind. The uninstall now reads the installed plugins fresh instead of the list cached earlier in the same request.
1.43.9
- Fix: uninstalling the free plugin with data removal enabled no longer drops the invoices table while Polski PRO is installed. Both editions write invoices to it, so it stays until the last of the two is uninstalled; the invoice lines table now goes with it.
1.43.8
- Security (low): uninstalling the free plugin with data removal enabled no longer deletes the gift cards, affiliates, subscriptions and other data Polski PRO keeps under the polski_ prefix while PRO is installed. PRO removes that data itself when it is uninstalled.
1.43.7
- Fix: the site could fatal ("Unknown named parameter $sendNotification") when Plogins Waitlist or another Plogins plugin with a different copy of the shared library was active. Polski now bundles its own copy under its own namespace instead of the shared Composer package.
1.43.6
- Security (low): uninstalling the free plugin with data removal enabled no longer deletes the settings of Polski PRO.
- Fix: on the block checkout, the "I need a VAT invoice" answer now reaches the order field the invoice and KSeF modules read, as it already did on the classic checkout.
1.43.5
- Security (medium): order, stock, withdrawal, consent and security-incident CSV exports now neutralise cells that a spreadsheet would run as a formula. Text a shopper typed (a name, address, order note, withdrawal reason or browser user agent) could otherwise execute in Excel or LibreOffice when a shop manager opened the export.
- Security (low): the recent-purchase popups no longer name or link private, draft or password-protected products.
- Security (low): guest product questions are limited to five per hour per visitor, so a script can no longer flood the moderation queue and the shop mailbox.
- Security (low): the double opt-in activation link refuses an empty token, and the public withdrawal-exemption ability answers only for products the visitor can see.
- Security (low): the VAT ID (NIP) lookup at checkout is limited to ten per hour per visitor, so the shop can no longer be used as an unlimited proxy to GUS on its own API key. The DSA notice limit now also holds on sites without a persistent object cache, where it never applied.
1.43.4
- The Upgrade to PRO links open the pricing page in the admin's language where plogins.com has one, and tell plogins.com which plugin the visit came from (utm_source, utm_medium and utm_campaign in the link). Nothing is sent from your site.
- Readme: the PRO section lists what the free plugin includes and what the paid edition adds as two lists, which WordPress.org can display (it does not display tables).
1.43.3
- Changed: the Polski PRO card on the settings screen no longer lists VAT invoices as a PRO feature, because the free plugin issues them; it now offers the invoice as a PDF file. The readme FAQ says the free plugin issues invoices.
1.43.2
- Readme only: new screenshot of the KSeF status column on the orders list.
1.43.1
- Fixed: Omnibus: a product that was already on sale when price history began showed no lowest-price notice (or repeated the sale price). The notice now shows the regular price recorded on the row that opens the sale, which is the price it was reduced from. A product with no history at all still follows the "no history" setting.
- Docs: The readme Description tab is back under the WordPress.org 2,500-word limit; Getting Started and Configuration moved to Installation, Translations to the FAQ.
1.43.0
- Fixed: Withdrawal from the contract (art. 11a Directive 2011/83/EU) is now available for the whole withdrawal period. It used to count 14 days from the order date until the order was completed, so a paid order still in processing after 14 days (slow shipping, a preorder) lost the withdrawal button before the goods arrived. It is now offered from the moment the contract is concluded (order processing or on hold), stays open until the order is completed, and closes 14 days from the date the order was completed, as before; an order that never reaches the countdown status keeps it open. Pending, failed, cancelled and refunded orders no longer offer it.
- Fixed: The withdrawal statement (My Account form, one-click confirmation and guest form) now shows the customer's name and the e-mail address the confirmation goes to (art. 11a(2)).
- Fixed: The order button text is no longer written into the settings at activation. The checkout prints the statutory wording in the shop language at runtime, so a shop installed before its language pack arrived no longer shows the English "Order with an obligation to pay". Shops that already have a stored text keep it.
- Changed: The Privacy Policy checkbox is described as optional (order data rests on GDPR art. 6(1)(b)) and no longer counts towards the checkbox setup score; the Terms and Withdrawal checkboxes are "recommended" rather than "required". Checkbox behaviour and defaults are unchanged.
- Changed: Omnibus settings warn when the lowest-price period is below 30 days, and the "Today" and "Show current price" options are labelled as not compliant with art. 6a(2) Directive 98/6/EC. Defaults are unchanged.
- Changed: Legal wording corrected in the site audit, module descriptions and order e-mails: the withdrawal reminder cites art. 9 of Directive 2011/83/EU; the forced-account check no longer cites Directive 2023/2673; security.txt, the incident log and the SBOM are not described as CRA duties for shops; the 2024/825 consumer information is not the harmonised notice or label of Implementing Regulation (EU) 2025/1960; the environmental claim fields and the DSA check say when they apply.
- Docs: The readme lists every external service the plugin can contact, including the Swiss UID register, all tracking tag providers, the optional AI features, the Google Fonts preconnect, featured video embeds and the webhooks you configure.
1.42.0
- Fixed: On block themes, Product Collection grids outside the shop archive (a homepage grid, related products, cart cross-sells) showed no unit price, no Omnibus 30-day lowest price, no delivery time and no brand. WooCommerce fires the classic loop hooks there only for the shop grid, so these now follow the price block of every other grid, once per card.
- Fixed: With "Omnibus: Cart" on, a block-theme shop page and the product page price showed the Omnibus notice twice. Cart cross-sells now follow the "product lists" Omnibus setting like every other grid; cart items keep the "Cart" setting.
- Fixed: Block themes: product badges and a featured video set to "before summary" landed above the breadcrumbs on the product page. Both now sit with the image gallery. Badges also show on Product Collection cards outside the shop archive, and replace the Product Sale Badge block where Polski shows its own sale badge.
- Fixed: Wishlist, Compare and Quick View buttons were missing from Product Collection grids outside the shop archive, and their scripts did not load there. Each card gets one button per feature.
- Fixed: Social login buttons now show above the Checkout block, which fires none of the classic checkout hooks.
- Fixed: Product authors now show on Product Collection cards outside the shop archive.
1.41.8
- Fixed: The iworks Omnibus import read the raw WooCommerce sale field, so a sale that was only scheduled counted as a price the product sold at, and its sale rows were never closed. It now takes the selling price, imports only what lies before Polski's own history for a product, and on upgrade removes the rows 1.41.7 imported wrongly. On some products these made the lowest price equal the running sale price.
1.41.7
- Fixed: The Omnibus lowest price now shows on single product pages built with an Elementor Pro template, which replaces the WooCommerce summary hook the notice was attached to. It is placed under the price widget, once, also when the template carries the Polski Omnibus widget.
- Added: Import of the price history kept by the Omnibus plugin by iworks (v2 meta and v3 price log), run once on upgrade and on demand with
wp polski import-iworks, so a shop switching to Polski keeps its 30-day window.
1.41.6
- Added: GS1 modulo-10 check-digit validation for GTIN-8, GTIN-12, GTIN-13, and GTIN-14 barcodes in product editor and CSV importer, warning merchants of invalid barcodes without blocking saves.
1.41.5
- Added: Borlabs-style Content Blocker for third-party media embeds (YouTube, Vimeo, Google Maps, OpenStreetMap, SoundCloud) with placeholder opt-in and dynamic runtime unblocking when marketing consent is granted.
- Added: Swiss UID (CHE) VAT number format validation and SOAP integration for cross-border DACH trade.
- Fixed: Omnibus archive price cache key alignment between windowed lookup and cache warmer invalidation.
1.41.4
- Added: native administrator email notification ("New withdrawal declaration (Admin)") registered in WooCommerce > Settings > Emails, alerting the shop whenever a customer files a return.
- Fixed: guest withdrawal lookup form now auto-detects pages with the [polski_withdrawal_lookup] shortcode even when unselected in settings, wraps magic link emails in WooCommerce HTML styling with proper From headers, and provides feedback if an order is not eligible.
- Fixed: guest order lookup now supports sequential order number plugins and trims hash/whitespace prefixes.
1.41.3
- Security (low): the [polski_withdrawal_form order_id=N] shortcode showed any order's number, date and withdrawal eligibility to whoever opened the page, so anyone able to place a shortcode (a contributor, or a comment or form that renders shortcodes) could read other customers' orders by number. It now shows the order only to its owner or a shop manager, and everyone else gets the same answer as for an order that does not exist. The product shortcodes (unit price, GPSR, Omnibus price and the rest) also rendered draft, private and password-protected products when given product=N; they now render only what the visitor could already see.
1.41.2
- Fixed: the withdrawal form lost its "Step 1. Choose the items to withdraw from" heading as soon as the settings were saved once. The settings default said "Order items", so saving wrote that over the template's heading; both defaults now match the form.
- Fixed: the KSeF badge on the orders list stayed amber for an invoice KSeF had accepted. Polski PRO records an accepted invoice as "accepted", and the badge only turned green for "sent"; it is green for both now.
1.41.1
- Fixed: the Elementor widgets (unit price, Omnibus price, tax, delivery time, GPSR, food, AJAX search, filters, product slider) never appeared in Elementor. The class that registers them was defined but had not been booted since April 2026. They now appear in the "Polski for WooCommerce" category and render through the same code as their shortcodes.
- Fixed: with Google for WooCommerce active, Polski now adds the product's GTIN (when Google for WooCommerce has none), manufacturer as brand, and unit pricing to the Google product. This integration had also not been booted since April 2026, and when switched back on it would have stopped every product sync with a type error; it is corrected to the filter's real arguments and to the attribute names Google expects.
- Changed: the CartFlows compatibility class is booted again and only acts when the Legal checkboxes module is on.
- Fixed: the daily maintenance job (Omnibus history pruning, double opt-in cleanup, scheduled review requests) was scheduled only on activation, so an update that copied files without reactivating left it unscheduled. It is now restored on every load when missing.
- Removed: an empty Dynamic Pricing compatibility class whose two callbacks did nothing.
1.41.0
- Security (high): a logged-out visitor could open and submit the withdrawal form for any guest order, because a guest order's customer id and a logged-out visitor's user id are both 0. Guests now go through the existing order lookup and email link only.
- Security (medium): Quick View, compare and wishlist returned or stored draft, private and password-protected products, including disabled variations. They now accept only products a visitor could open themselves.
- Security (low): product Q&A accepted questions and answers on any post id. Questions now go only to published products, and an answer must reply to an approved question on the same product.
- Added: the waitlist works on variable products. The form appears when an out-of-stock variation is selected, and the restock email goes out when that variation is back in stock, however the stock changed. No longer beta.
- Added: the price history chart shows the selected variation's history on variable products. No longer beta.
- Added: with the VIES module on, checkout and My Account accept an EU VAT number from another country (for example DE811569869). A plain 10-digit NIP keeps its checksum and GUS lookup. No longer beta.
1.40.1
- Security (medium): three read-only withdrawal abilities (eligibility, remaining items, deadline) let any logged-in customer read them for another customer's order by guessing its id. They now require the order's own customer or a shop manager.
1.40.0
Every one of the 84 modules was switched on, configured and used in a live shop, then switched off again. This release fixes what that found, and marks as beta what does not fully work yet.
- Fixed: the unit price dropped the base quantity, so a price per 1000 ml or per 100 g was labelled per ml or per g. It now shows the base ("15,00 zl / 100 g").
- Fixed: the lowest-price (Omnibus) notice quoted the sale price itself for an ordinary unscheduled sale, missed same-day price changes, ignored the price still in force when the 30-day window opens, and never showed on variable products. A scheduled sale is no longer recorded before it starts. The notice now follows the WooCommerce tax display.
- Fixed: the cart threshold discount added VAT on top of the discount, so 5% came out as 6.15% in shops that show prices including tax.
- Fixed: the VAT notice said "incl. 23% VAT" next to net prices. It now shows only when prices are displayed including tax.
- Fixed: the VAT margin scheme invoice still printed per-line VAT, and a merchant warning about mixed orders appeared on the customer's invoice.
- Fixed: saving the billing address in My Account always failed with "NIP not valid" while the NIP module was on. The GUS autofill on the block checkout filled a hidden billing form.
- Fixed: switching the withdrawal module off hid orders that already had a withdrawal status from Orders and from My Account.
- Fixed: saving the withdrawal settings page switched the digital-content consent on at checkout although it was off, and physical-only orders showed a consent line.
- Fixed: variable products were added to the cart twice by AJAX add to cart, and a failed add showed "Added to cart".
- Fixed: custom checkout field values from block orders disappeared from the order screen and emails; select fields showed the option key instead of its label.
- Fixed: switching a module off could silently delete its product data on the next product save (medical device and 18+ flags among others).
- Fixed: product JSON-LD replaced WooCommerce's sale and list price with the Omnibus figure; it is now added next to them. No invalid nutrition on Product, no QAPage for several questions, no second Product node for expert reviews, and the manufacturer follows its setting.
- Fixed: CSV import did not map Polski columns back from an export.
- Fixed: AJAX filters, compare, infinite scroll, gallery zoom, product slider, social proof, featured video, badges and tabs misbehaved on Storefront (duplicated tables and pagination, lost lightbox, duplicate products).
- Fixed: security incidents, store health, site audit, CRA, DPA, SBOM, data layer and exports: wrong dates, false audit results, reports reachable with the module off.
- Changed: the dispute resolution texts no longer send consumers to the EU ODR platform, which closed on 20 July 2025.
- Removed: two switches nothing read, the gross/net display mode (WooCommerce owns it) and the Checkout Toolkit integration.
- Beta: VIES (non-Polish VAT numbers cannot be entered at checkout), cookie consent (only Polski's own tags wait for consent), double opt-in (accounts created at checkout stay logged in), custom checkout fields and legal checkboxes on the block checkout, waitlist on variable products, the price history chart on variable products, and the AI bridge. Each module card now says exactly what does not work yet.
- Corrected: module descriptions that promised more than the code does (legal page drafts are empty, the complaint template has no REST route, the business block has no REGON, live search needs its shortcode or block).
1.39.0
- Fixed: nine settings on the modules screen changed nothing when edited. The withdrawal form drew its own headings and ignored the order items heading, the product and quantity column labels and the exemption notice; it never printed the legal notice at all. The two order notes the module writes ignored their wording settings. Editing any of them looked like it worked, saved, and did nothing.
- Fixed: the dashboard status cards ignored all thirteen wording settings offered for them, and the VAT and double opt-in cards were missing entirely while the page still worked out what they would have said. Both cards are back, and every card now uses the wording from the screen.
- Fixed: the DSA report form ignored its success message setting.
- Removed: the withdrawal "Price column" setting named a column the form does not have.
- Note for anyone who edited those fields before this release: your wording was stored the whole time and takes effect now, so check it says what you want.
Only the most recent releases are listed here. The full history is on the plugin's changelog
page, plogins.com/polski/changelog/,
and in changelog.txt inside the plugin folder. WordPress.org silently truncates
a changelog over 5000 words, which is why this one is kept short on purpose.