Title: ZNG Fortrydelsesknappen for WooCommerce
Author: ZNG ApS
Published: <strong>August 20, 2026</strong>
Last modified: August 20, 2026

---

Search plugins

![](https://ps.w.org/zng-fortrydelsesknappen/assets/banner-772x250.png?rev=3657028)

![](https://ps.w.org/zng-fortrydelsesknappen/assets/icon-256x256.png?rev=3657028)

# ZNG Fortrydelsesknappen for WooCommerce

 By [ZNG ApS](https://profiles.wordpress.org/bestsecurity/)

[Download](https://downloads.wordpress.org/plugin/zng-fortrydelsesknappen.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/zng-fortrydelsesknappen/#description)
 * [Reviews](https://wordpress.org/plugins/zng-fortrydelsesknappen/#reviews)
 *  [Installation](https://wordpress.org/plugins/zng-fortrydelsesknappen/#installation)
 * [Development](https://wordpress.org/plugins/zng-fortrydelsesknappen/#developers)

 [Support](https://wordpress.org/support/plugin/zng-fortrydelsesknappen/)

## Description

ZNG Fortrydelsesknappen helps a WooCommerce shop present and handle the consumer**
right of withdrawal** (_fortrydelsesret_) required under Danish and EU distance-
selling rules. It informs customers of their 14-day right, supplies the official
standard withdrawal form, and gives them a simple way to submit a withdrawal request—
which the shop owner then manages from wp-admin.

The plugin works at the **“inform + handle returns”** level. It surfaces the withdrawal
rights, attaches the standard form to order e-mails, and collects and tracks customer
withdrawal requests. It does **not** block checkout and it does **not** process 
real payment refunds — refund status is recorded for the shop owner’s own bookkeeping.

Everything works out of the box — no account or API key is required. Optionally,
an API key from a free [fortrydelsesknappen.dk](https://fortrydelsesknappen.dk/)
account connects the shop to your online dashboard (return-volume reporting, timestamps
only), and the Pro+ plan adds automatic return labels through your own Shipmondo
account.

#### About the name

This plugin is developed and maintained by **ZNG ApS** ([zng.dk](https://zng.dk/)),
which also owns and operates the companion service at [fortrydelsesknappen.dk](https://fortrydelsesknappen.dk/).
Both domains belong to ZNG ApS.

_Fortrydelsesknappen_ is simply the Danish term for “the withdrawal button” — the
same everyday wording as _Widerrufsbutton_ in German or _herroepingsknop_ in Dutch.
It is used here descriptively, prefixed with the **ZNG** company name so this plugin
is clearly identifiable as ours.

This plugin is **not affiliated with, endorsed by, or sponsored by** WooCommerce
or Automattic. “WooCommerce” is used only to describe the platform this plugin extends.
It is likewise **not affiliated with any other plugin, product, or company** using
similar Danish wording.

#### Features

 * **Withdrawal disclosure** — shows the 14-day right-of-withdrawal notice at checkout
   and auto-creates a “Fortrydelsesret” policy page.
 * **Standard withdrawal form** — generates the official _standardfortrydelsesformular_,
   on its own page and linked inside WooCommerce order e-mails (pre-filled from 
   the order).
 * **Customer withdrawal request** — the “Fortryd dit køb” form (name, e-mail, phone,
   order number) on a plugin-owned page, with a confirmation e-mail to the customer
   and a notification to the shop. Opens in a pop-up dialog with a no-JavaScript
   fallback.
 * **14-day window logic** — calculates the deadline from the order date, shows “
   X dage tilbage” / late-request flags on the order page, and treats virtual/downloadable
   products as exempt.
 * **Admin overview** — all requests in one list with status Pending  Approved  
   Refunded  Rejected.
 * **Return labels (Pro+)** — when you approve a withdrawal, a return label is created
   automatically through your own Shipmondo account (connected on fortrydelsesknappen.
   dk) and e-mailed to the customer.
 * **Return button shortcode** — drop `[fortrydelsesknappen_button]` anywhere to
   open the request dialog.
 * **Settings** — withdrawal window length, shop name/address/e-mail/phone for the
   forms, and the return button text. Empty fields fall back to your WooCommerce
   store settings.

#### Shortcodes

 * `[fortrydelsesknappen_button]` — a return button that opens the withdrawal-request
   dialog.
 * `[fortrydelsesknappen_standard_form]` — the standard withdrawal form.
 * `[fortrydelsesknappen_withdrawal_form]` — the customer withdrawal-request form.

#### Language

The customer-facing text is **Danish**. A `languages/zng-fortrydelsesknappen.pot`
template is included so the strings can be translated into other languages.

#### Disclaimer

This plugin is a tool to help present and administer the right of withdrawal. It
does not constitute legal advice and does not by itself make a shop legally compliant.
Make sure your overall terms and processes meet the applicable rules.

### External services

All customer-facing features run entirely on your own site. The plugin only contacts
the fortrydelsesknappen.dk API (operated by ZNG ApS, the plugin author) when you
have entered an optional API key, in these situations:

 * **API key validation** — when you save an API key under Fortrydelser  Indstillinger,
   and once daily via WP-Cron, the plugin sends the key to fortrydelsesknappen.dk
   to check that it is still valid. Nothing else is transmitted. If no key is saved,
   no request is made.
 * **Return-volume reporting** — while connected, each saved withdrawal request 
   sends a single timestamp so your account dashboard can chart return volume. No
   customer name, e-mail, phone, or order data is sent.
 * **Newsletter signup** — only when you press the signup (or unsubscribe) button
   on the settings page, the e-mail address you entered, your shop name, your shop’s
   WooCommerce base country, and your consent choice are sent. The subscription 
   is double opt-in and is only completed via the confirmation e-mail.
 * **Return labels (Pro+)** — when you approve a withdrawal request (or press the
   create-label button), the order number and the customer’s name, address, e-mail,
   and phone number are sent to fortrydelsesknappen.dk, which creates a return label
   through your own connected Shipmondo account and returns the label link.
 * [Terms of service](https://fortrydelsesknappen.dk/terms)
 * [Privacy policy](https://fortrydelsesknappen.dk/privacy)

## Screenshots

[⌊The "Fortryd dit køb" withdrawal-request form.⌉⌊The "Fortryd dit køb" withdrawal-
request form.⌉[

The “Fortryd dit køb” withdrawal-request form.

[⌊The 14-day withdrawal notice at checkout.⌉⌊The 14-day withdrawal notice at checkout
.⌉[

The 14-day withdrawal notice at checkout.

[⌊The standard withdrawal form.⌉⌊The standard withdrawal form.⌉[

The standard withdrawal form.

[⌊The admin list of withdrawal requests with status.⌉⌊The admin list of withdrawal
requests with status.⌉[

The admin list of withdrawal requests with status.

[⌊The settings screen (Fortrydelser → Indstillinger).⌉⌊The settings screen (Fortrydelser
→ Indstillinger).⌉[

The settings screen (Fortrydelser  Indstillinger).

## Installation

 1. Make sure **WooCommerce** is installed and active — this plugin requires it.
 2. Upload the `zng-fortrydelsesknappen` folder to `/wp-content/plugins/`, or install
    the plugin ZIP through **Plugins  Add New  Upload Plugin**.
 3. Activate the plugin through the **Plugins** screen.
 4. On activation the plugin creates the “Fortrydelsesret” policy page, the standard-
    form page, and the “Fortryd dit køb” request endpoint.
 5. Go to **Fortrydelser  Indstillinger** and fill in your shop name, address, e-mail,
    phone, and withdrawal window (default 14 days). Blank fields fall back to your 
    WooCommerce store details.
 6. Optionally place `[fortrydelsesknappen_button]` on any page, post, or widget where
    you want a return button.

## FAQ

### Does this plugin require WooCommerce?

Yes. It builds on WooCommerce orders and store settings. If WooCommerce is not active,
the plugin shows a notice and does nothing else.

### Do I need an account or API key?

No. Every customer-facing feature works immediately after activating the plugin,
with no account. An optional API key from a free [fortrydelsesknappen.dk](https://fortrydelsesknappen.dk/)
account connects the shop to your online dashboard: saved withdrawal requests are
counted there (as timestamps only — no customer data leaves your shop), and Pro+
subscriptions add automatic return labels via your own Shipmondo account.

### Does it block checkout if the customer doesn’t accept the withdrawal terms?

No. The plugin informs customers and handles requests; it never blocks the purchase.

### Does it issue real refunds?

No. Withdrawal-request status (Approved, Refunded, etc.) is recorded for the shop
owner’s tracking. Actual refunds are made through your normal payment/WooCommerce
process.

### Which products are exempt from the withdrawal right?

By default, orders whose items are all virtual/downloadable are treated as exempt,
since digital goods generally fall outside the standard withdrawal right.

### Can I translate it to another language?

Yes. The source text is Danish, and a `languages/zng-fortrydelsesknappen.pot` template
is bundled. Use any gettext tool (e.g. Poedit) to create a translation, or translate
via WordPress’s translation tools.

### What happens to my data if I delete the plugin?

Deleting the plugin (not just deactivating) removes its options, the pages it auto-
created, and all stored withdrawal requests. Deactivating leaves your data in place.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“ZNG Fortrydelsesknappen for WooCommerce” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ ZNG ApS ](https://profiles.wordpress.org/bestsecurity/)

[Translate “ZNG Fortrydelsesknappen for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/zng-fortrydelsesknappen)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/zng-fortrydelsesknappen/),
check out the [SVN repository](https://plugins.svn.wordpress.org/zng-fortrydelsesknappen/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/zng-fortrydelsesknappen/)
by [RSS](https://plugins.trac.wordpress.org/log/zng-fortrydelsesknappen/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * First release on the WordPress Plugin Directory. The code is the same as the 
   reviewed 0.17.0; the version is raised to 1.0.0 to mark the first public, stable
   release.

#### 0.17.0

 * Changed: the withdrawal-request post type is now `fortrydelsesknappen`, so every
   name the plugin registers shares one single prefix. Existing requests are moved
   to the new name automatically on update, and the admin screens are unchanged.
 * Changed: the AJAX action, nonce, and form field names behind the request form
   use the same full `fortrydelsesknappen_` prefix instead of the short form introduced
   in 0.16.0.

#### 0.16.0

 * Security: the one-shot “return label created” admin notice no longer clears itself
   from a URL parameter. It is now stored per user, is shown only to the user who
   created the label, and is only displayed to someone who can edit that request.
 * Changed: the withdrawal-request post type is now `zngfk_request` (was `fk_request`),
   so it carries a prefix distinct enough not to collide with another plugin’s post
   type. Existing requests are moved to the new name automatically on update.
 * Changed: the AJAX action, nonce, and form field names behind the request form
   gained the same `zngfk_` prefix.
 * Fixed: the “Fortryd dit køb” page now renders through the theme’s own header 
   and footer template parts on block themes. Previously it used the classic template
   tags, which logged a PHP deprecation notice on every load under a block theme.

#### 0.15.0

 * Changed: the plugin is now named **ZNG Fortrydelsesknappen for WooCommerce**,
   to make it clearly distinguishable from other plugins and to state plainly that
   it is not affiliated with WooCommerce. The companion service at fortrydelsesknappen.
   dk is unchanged.
 * Changed: the plugin author is now stated as ZNG ApS (zng.dk), the company that
   owns and maintains the plugin.
 * Changed: the plugin folder, main file, and text domain are now `zng-fortrydelsesknappen`.
   Settings, saved withdrawal requests, and all shortcodes are unchanged.
 * Changed: the “API key could not be confirmed” notice now appears only on the 
   plugin’s own admin screens and can be dismissed, instead of showing on every 
   wp-admin page.

#### 0.14.2

 * Fixed: the Author URI now points to the author’s company site. WordPress.org 
   requires the Plugin URI and Author URI to be different.

#### 0.14.1

 * Added: an “External services” section in this readme documenting every call the
   plugin can make to fortrydelsesknappen.dk and exactly what data is sent, with
   links to the terms of service and privacy policy.
 * Fixed: Plugin Check cleanup for the WordPress.org review — removed a redundant
   query flag in the uninstall routine, prefixed its global variables, dropped the
   obsolete load_plugin_textdomain() call, shortened readme fields to the directory
   limits, and bumped “Tested up to” to WordPress 7.0.

#### 0.14.0

 * Changed: the customer-facing features (checkout notice, policy page, standard
   withdrawal form, “Fortryd dit køb” request flow, return button) no longer require
   an API key — they now work out of the box with no account. The API key is optional
   and only connects the shop to your fortrydelsesknappen.dk account for dashboard
   return-reporting, automatic return labels (Pro+), and the newsletter.
 * Changed: the admin notice asking for an API key is removed; the settings screen
   instead explains the optional account connection and links to the Pro upgrade.

#### 0.13.1

 * Changed: the plugin folder and main file are renamed to match the plugin’s text
   domain and directory slug. No functional changes. See the Upgrade Notice if you
   are updating from an earlier version.

#### 0.13.0

 * New: optional newsletter signup under Fortrydelser  Indstillinger. Strictly opt-
   in and double opt-in: nothing is sent to fortrydelsesknappen.dk until you press“
   Tilmeld mig”, and the address is only subscribed after you confirm via the e-
   mail we send. Unsubscribe from the same card at any time.

#### 0.12.0

 * New: return labels (Pro+) — when you approve a withdrawal request, a return label
   is created automatically via your own Shipmondo account (connected under Integrationer
   on fortrydelsesknappen.dk) and the label link is included in the approval e-mail
   to the customer. A “Returlabel” box on the request screen shows the label (or
   lets you create/retry one manually).
 * Fixed: the “Fortryd dit køb” link in the order-page countdown badge pointed to
   a removed page and never rendered; it now links to the withdrawal form endpoint.
 * Updated: regenerated the `languages/fortrydelsesknappen.pot` translation template.

#### 0.11.0

 * New: plugin activation with an API key from your fortrydelsesknappen.dk account.
   Paste the key under Settings  “Aktivering” to enable the customer-facing return
   features; the key is validated against the account portal and re-checked automatically
   each day.
 * New: return-volume reporting — each saved withdrawal request is reported to your
   account dashboard as a timestamp only. No customer name, e-mail, phone, or order
   data ever leaves your shop.

#### 0.10.0

 * New: a visual customiser for the return button (Settings  “Returknap”) with a
   live preview — adjust corner radius, vertical/horizontal padding, shadow, button/
   text/border colour, and an optional prefix return icon.

#### 0.9.0

 * New: the withdrawal form now supports up to 5 owner-defined custom fields (add/
   remove them with the “+” in Settings  “Ekstra felt på formularen”). The single
   existing custom field is migrated automatically.

#### 0.8.1

 * Changed: removed the `[fortrydelsesknappen_cta]` card shortcode — the return 
   flow now uses the single `[fortrydelsesknappen_button]` shortcode. The button
   text is still configurable under Settings; the old card’s title/description/colour
   options are gone.

#### 0.8.0

 * Changed: the plugin is now named **Fortrydelsesknappen** (fortrydelsesknappen.
   dk). Existing settings and stored withdrawal requests are carried over automatically
   on update.

#### 0.7.0

 * New: an optional custom field on the withdrawal form, configurable (label + required)
   under Settings.

#### 0.6.0

 * Removed: the “Fortrydelser” My Account tab (customers already receive their withdrawal
   details by e-mail).

#### 0.5.0

 * New: a “Fortrydelser” tab in the WooCommerce My Account area where logged-in 
   customers can see their withdrawal requests (status + deadline) and start a new
   one. (Removed again in 0.6.0.)

#### 0.4.0

 * New: `[fortrydelsesknappen_cta]` and `[fortrydelsesknappen_button]` shortcodes
   for placing a return call-to-action anywhere; removed the always-on footer strip.
 * New: redesigned settings screen (branded header, card layout).
 * New: the customer is e-mailed when their request is approved, refunded, or rejected.
 * Added: uninstall cleanup and a `languages/fortrydelsesknappen.pot` translation
   template.

#### 0.3.2

 * Improved: restyled the request-form intro for clearer hierarchy.

#### 0.3.1

 * Improved: “soft & friendly” front-end visual refresh (CSS only).

#### 0.3.0

 * Changed: the withdrawal form is now a plugin-owned endpoint (`/fortryd-dit-koeb/`)
   instead of a deletable page.
 * New: the request form opens in a pop-up dialog with AJAX submit and a no-JavaScript
   fallback.

#### 0.1.0

 * Initial release: disclosure, standard withdrawal form, customer request flow,
   14-day window logic, admin overview, and settings.

## Meta

 *  Version **1.0.0**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.0.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [fortrydelsesret](https://wordpress.org/plugins/tags/fortrydelsesret/)[refunds](https://wordpress.org/plugins/tags/refunds/)
   [returns](https://wordpress.org/plugins/tags/returns/)[right of withdrawal](https://wordpress.org/plugins/tags/right-of-withdrawal/)
   [withdrawal](https://wordpress.org/plugins/tags/withdrawal/)
 *  [Advanced View](https://wordpress.org/plugins/zng-fortrydelsesknappen/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/zng-fortrydelsesknappen/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/zng-fortrydelsesknappen/reviews/)

## Contributors

 *   [ ZNG ApS ](https://profiles.wordpress.org/bestsecurity/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/zng-fortrydelsesknappen/)