4.0.19 Release Notes
Version 4.0.19 is a patch release that adds the Wero payment method, along with two other additions and two bug fixes.
Download 4.0.19
Additions
Wero Payment Method
Wero is now available as a dedicated payment method (stripe_wero) on both classic and block-based checkout. Wero is a European digital wallet that customers link to their bank account. At checkout, the customer is redirected to Wero, scans a QR code to open the Wero app, approves the payment, and is returned to your store.
Wero is shown at checkout when:
- The order currency is EUR.
- The customer's billing country is Belgium, France, Germany, or Luxembourg.
- Your Stripe account is based in one of the European countries Wero supports.
Wero supports full and partial refunds. It can't be used for subscriptions and isn't available in the Express Checkout banner.
Wero is configured from WooCommerce > Settings > Payments > Wero (Stripe) by Payment Plugins, which includes these settings:
- Charge Type: Capture collects the payment immediately, and Authorize holds the funds so you can capture them later from the order. The default is Capture.
- Icon: shows the standard Wero logo or a black version of it at checkout. The default is the standard logo.
Stripe Payment Methods Now Work When a Page Has Both the Block and Shortcode
Some checkout and cart pages end up with both the WooCommerce block and the classic shortcode on the same page, for example when leftover block content remains after switching a page back to the [woocommerce_checkout] or [woocommerce_cart] shortcode. On those pages, the classic checkout or cart displayed, but the Stripe payment methods and express payment buttons didn't work.
This isn't a supported page setup, but it comes up regularly in support requests. The plugin now detects when the classic checkout or cart is displayed and makes sure its Stripe payment methods load, so they work as expected. Pages that use only the block or only the shortcode are unchanged.
If your checkout or cart page contains both the block and the shortcode, we recommend removing whichever one you're not using.
Giropay Removed From the Universal Payment Method Settings
Giropay has been discontinued, so it has been removed from the list of payment methods on the Universal Payment Method settings page, as requested on the WordPress.org support forums. Giropay was already not offered at checkout through the Universal Payment Method, so this only removes the leftover option from the settings page.
Bug Fixes
Wallet Payment Methods Can Now Be Retried After a Declined Payment on Classic Checkout
On classic checkout, when a customer paid with Apple Pay, Google Pay, or Link from the payment methods section and the payment was declined, clicking Place order again failed with this error from Stripe:
The provided PaymentMethod was previously used with a PaymentIntent without Customer attachment, shared with a connected account without Customer attachment, or was detached from a Customer. It may not be used again. To use a PaymentMethod multiple times, you must attach it to a Customer first.
After a declined payment, the wallet button wasn't shown again, so the customer could only click Place order, which retried the same wallet payment details that had already been used. The same thing happened when a customer failed or closed a 3D Secure challenge after paying with a wallet: the error was shown, but the wallet button didn't come back.
In both cases, the wallet button is now shown again so the customer can open the wallet and retry the payment. Credit card payments, the Express Checkout banner, and block-based checkout were not affected.
Closed Disputes Now Only Update the Order That Owns the Charge
When two WooCommerce stores were connected to the same Stripe account, a dispute closing as lost on one store could also mark the order with the same order number on the other store as Failed, and place its subscription on hold, even though that order had nothing to do with the dispute.
When a dispute closes, the plugin now confirms that the order's transaction ID matches the disputed charge before updating it. If it doesn't match, the order is left unchanged.
Stripe recommends connecting each site to its own Stripe account.