Linux 软件免费装
Banner图

APG Withdrawal for WooCommerce

开发者 artprojectgroup
更新时间 2026年8月9日 17:12
捐献地址: 去捐款
PHP版本: 7.4 及以上
WordPress版本: 7.1
版权: GNU General Public License v3 or later
版权网址: 版权信息

标签

woocommerce consumer rights refund withdrawal right of withdrawal

下载

0.5.0 0.7.0 0.7.1 0.1.0 0.2.0 0.3.0 0.4.0 0.6.0 0.6.1

详情介绍:

APG Withdrawal for WooCommerce adds to your WooCommerce store a complete online right of withdrawal workflow compliant with EU consumer protection legislation. Features Translations More information You can learn more about APG Withdrawal for WooCommerce on our official website, and follow the development on GitHub.

安装:

  1. Install the plugin in one of the following ways:
  2. Upload the apg-withdrawal-for-woocommerce folder to the /wp-content/plugins/ directory via FTP.
  3. Upload the full ZIP file via Plugins -> Add New -> Upload in the WordPress administration panel.
  4. Search for APG Withdrawal for WooCommerce in Plugins -> Add New and click Install Now.
  5. Activate the plugin through the Plugins menu in the WordPress administration panel.
  6. Configure the plugin in WooCommerce -> Withdrawal or through the Settings link on the plugins page.
  7. Add the [apg_withdrawal_form] shortcode to the page configured as the withdrawal page in the settings.

屏幕截图:

  • Customer withdrawal form on the public page (guest checkout).
  • Withdrawal form integrated in the My Account area with order selector.
  • My Account orders list with the *Withdrawal request* action per order.
  • Admin withdrawals list with status, scope and order reference.
  • Edit withdrawal screen with full request details and status history.

升级注意事项:

0.7.1
  • Spanish translation reviewed and corrected in 27 strings, for terminology and current orthography. Because the bundled translation takes precedence over the centralised language pack, only a plugin update delivers them. No code changes.

常见问题:

How do I configure the plugin?

In the plugin settings you can configure the notification email, the withdrawal page, the withdrawal window in days, the deadline source (completed or created date), the extra grace days and which data to store (IP address, browser identifier).

Is the plugin compatible with HPOS?

Yes. The plugin is fully compatible with WooCommerce High-Performance Order Storage.

Can guest customers submit a withdrawal request?

Yes. The form supports both logged-in customers (with pre-filled data and order selector) and guests (with email lookup of their orders).

Where should I place the withdrawal link?

The withdrawal form page is auto-created on activation and contains the [apg_withdrawal_form] shortcode. To comply with Article 11a of Directive 2011/83/EU (added by Directive 2023/2673), the link to that page should be prominently visible and easy to find on the storefront. The plugin gives you several tools to place it; deciding where to place it is the merchant's (or their web designer's) responsibility:

  • The fixed URL of the auto-created page, available in WooCommerce → Withdrawal → Withdrawal page.
  • The [apg_withdrawal_link] shortcode, with optional label, class and target attributes, to drop the link inside any post, page, footer widget or HTML block.
  • The matching Withdrawal link Gutenberg block for sites built with the Full Site Editor.
  • The Withdrawal request action that is automatically added to every eligible order in the My Account → Orders table.
Typical recommended placements:
  • The site footer, so the link is reachable from any page.
  • The My Account menu (the per-order action is already added; you can also add a top-level menu item linking to the public form).
  • The Terms and Conditions / Privacy Policy pages, alongside the rest of the consumer information required by Article 6.1.h of Directive 2011/83/EU.
  • The order processing / completed emails (the plugin already injects the link there automatically via woocommerce_email_after_order_table).

What happens if my store does not offer the withdrawal function?

Article 11a of Directive 2011/83/EU has applied throughout the EU since 19 June 2026, regardless of whether each Member State has transposed it. Spain had not done so at the time of this release — the European Commission issued a reasoned opinion against Spain in June 2026 — but the obligation applies by direct effect, and non-compliance is penalised through the general regime of the TRLGDCU, whose fines reach 100,000 € for minor infringements, 1,000,000 € for serious ones and 4,000,000 € (or 4% of the turnover in Spain, whichever is higher) for very serious ones. Check the regime applicable in your own country: this note is informative and is not legal advice.

Can I ask the customer for a bank account?

Yes, in WooCommerce → Withdrawal → Request handling → Account for the refund (IBAN), either as an optional or as a required field. It is disabled by default. The number is validated with the international control digits (ISO 7064 MOD-97-10) before being accepted, is stored alongside the request, is included in the privacy exporter and is deleted outright by the privacy eraser. Only enable it when you genuinely cannot refund through the original payment method.

How do I stop somebody else from submitting a withdrawal in a customer's name?

Enable Confirm guest requests by email?. A visitor who is not logged in then has their request held while a single-use link is sent to the address recorded on the order; only opening it registers the declaration. The request keeps the date and time of the original submission, so the customer never loses days of their withdrawal period. Logged-in customers are unaffected, since WordPress has already authenticated them.

Is the plugin accessible? Does it help with the European Accessibility Act?

The public form targets WCAG 2.1 level AA, which is what EN 301 549 — the standard the European Accessibility Act points to — requires today: the line-item selector is a labelled fieldset of native checkboxes and number inputs operable with a keyboard, dynamic notices are live regions, and focus moves to each new step of the flow. It also already satisfies the WCAG 2.2 target-size criterion (2.5.8), which arrives with version 4.1.1 of that standard, and the guest confirmation link is the pattern WCAG 2.2 recommends for accessible authentication (3.3.8), since it asks the customer for no cognitive test. Two caveats. First, the Accessibility Act (Directive (EU) 2019/882, in Spain Law 11/2023) has applied to e-commerce since 28 June 2025, and it binds the shop, not a single plugin: colour contrast, focus visibility and page structure come from your theme, and the responsibility for the store as a whole is the merchant's. Second, companies with fewer than 10 employees and a turnover below 2 million euros are exempt from the obligations on services. Check your own situation: this note is informative and is not legal advice.

Can I refund the customer from the withdrawal request?

Yes. Each request shows a Refund panel with the amount the declaration implies — the declared lines at their declared quantities, plus the standard delivery cost when the withdrawal covers the whole contract, as Article 13(1) of Directive 2011/83/EU requires — always capped by whatever is still refundable on the order, so a refund you already issued by hand is never handed out twice. Nothing happens until you press the button. By default the refund is only recorded in WooCommerce, without moving money or touching stock; two checkboxes let you send it through the payment gateway (when the gateway supports it) and restock the returned products. The apg_withdrawal_refund_plan filter lets you adjust the figures, for instance to deduct the diminished value of returned goods.

Does it work with Redsys and Bizum?

Yes, and nothing extra needs installing. Bizum runs on Redsys for e-commerce, and the WooCommerce implementations of Redsys — José Conti's paid gateway, Codection's, the official unified module — issue refunds through the standard WooCommerce refund API. The refund panel uses that same API, so ticking Send the money back through Redsys reaches your virtual POS directly. The panel names the gateway it is about to use, so you always know where the money is going. Three things worth knowing. Redsys accepts both full and partial refunds, so a partial withdrawal is returned as declared. When the customer sees the money depends on their bank, typically between 2 and 31 days — the 14-day limit in Article 13(1) of Directive 2011/83/EU applies to you issuing the refund, not to their bank crediting it. And if you use a Redsys gateway that does not implement refunds, such as the free Light edition, the panel says so and records the refund in WooCommerce without moving money, so you can issue it from your bank's back office and keep the accounting straight. When a gateway rejects a refund, the reason it gives — the SIS code, in the case of Redsys — is shown in the error notice instead of a generic failure, so you have something to act on.

Does the plugin have a REST API?

Yes, under the apg-withdrawal/v1 namespace. GET /requests and GET /requests/<id> list and read requests, and PUT /requests/<id> moves one through the workflow; all three require the manage_woocommerce capability. POST /requests registers a declaration coming from a headless storefront and is public, exactly like the public form: it goes through the same processor, so the order must match the email address, the rate limiter applies and the guest email verification kicks in when you enabled it.

How long should I keep the withdrawal request records?

The plugin does not delete withdrawal request records automatically. As a general recommendation, keep them for at least 5 years after their creation — the typical statute of limitations for consumer and contractual actions in many EU jurisdictions. Always check the applicable retention period in your country before deleting old records or running the plugin's CSV export + uninstall flow.

Where can I get support?

APG Withdrawal for WooCommerce is a free plugin. Art Project Group does not provide free technical support, but offers a paid technical support service for installation and configuration.

更新日志:

0.7.1 0.7.0 0.6.1 0.6.0 0.5.0 0.4.0 0.3.0 0.2.0 0.1.0