Releases: woocommerce/woocommerce-gateway-stripe
Releases · woocommerce/woocommerce-gateway-stripe
Version 9.7.1
- Add - Add state mapping for Lithuania in express checkout
- Tweak - Check for checkout validation error before creating a payment method in Stripe
- Fix - Prevent multiple save appearance AJAX calls on Block Checkout
- Fix - Fix required field error message and PHP warning for custom checkout fields that don't have a label
- Fix - Fix fatal when processing setup intents for free subscriptions via webhooks
- Dev - Fix WooCommerce version fetching in GitHub workflows
- Dev - Fix failing test cases associated with WooCommerce 10.0.x
Version 9.7.0
- Update - Removes BNPL payment methods (Klarna and Affirm) when other official plugins are active
- Fix - Moves the existing order lock functionality earlier in the order processing flow to prevent duplicate processing requests
- Add - Adds two new safety filters to the subscriptions detached debug tool:
wc_stripe_detached_subscriptions_maximum_time
andwc_stripe_detached_subscriptions_maximum_count
- Add - Show a notice when editing an active subscription that has no payment method attached
- Fix - Fixes a possible fatal error when trying to generate the order signature for a
WC_Order_Refund
object - Add - New WooCommerce Debug Tool to list subscriptions without a payment method attached
- Fix - Fixes a possible error notice when the
payment_request
Stripe setting key is not defined - Fix - Prevent irrelevant payment method update requests to Stripe during checkout
- Add - A notice to take user back to WC onboarding flow after connecting the Stripe account
- Tweak - Deprecate wc_connect_* filters
- Fix - Prevent text field reset while editing Optimized Checkout title
- Update - Improvements to custom checkout fields support for express checkout
- Tweak - Use the Database Cache for the Stripe Account Data
- Update - Update filter names to use the wc_stripe_* prefix
- Add - Show payment methods sync status on the UI
- Fix - No such customer error when creating a payment method with a new Stripe account
- Fix - Validate create customer payload against required billing fields before sending to Stripe
- Update - Enhanced logging system with support for all log levels and improved context handling
- Fix - Fixes wrong price formatting in express checkout
- Fix - Require email address only for Stripe customer validation when request is from the Add Payment Method page
- Fix - Set default values for custom field options
- Fix - Enforce rate limiter for failed add payment method attempts
- Update - Add the number of pending webhooks to the Account status section
- Fix - Prevent "Undefined array key charges_enabled" PHP warning when determining live‑mode status
- Update - Deprecate
wc_gateway_stripe_process_payment
,wc_gateway_stripe_process_redirect_payment
andwc_gateway_stripe_process_webhook_payment
actions in favour ofwc_gateway_stripe_process_payment_charge
Version 9.7.0-test
- Fix - Moves the existing order lock functionality earlier in the order processing flow to prevent duplicate processing requests
- Add - Adds two new safety filters to the subscriptions detached debug tool:
wc_stripe_detached_subscriptions_maximum_time
andwc_stripe_detached_subscriptions_maximum_count
- Add - Show a notice when editing an active subscription that has no payment method attached
- Fix - Fixes a possible fatal error when trying to generate the order signature for a
WC_Order_Refund
object - Add - New WooCommerce Debug Tool to list subscriptions without a payment method attached
- Fix - Fixes a possible error notice when the
payment_request
Stripe setting key is not defined - Fix - Prevent irrelevant payment method update requests to Stripe during checkout
- Add - A notice to take user back to WC onboarding flow after connecting the Stripe account
- Tweak - Deprecate wc_connect_* filters
- Fix - Prevent text field reset while editing Optimized Checkout title
- Update - Improvements to custom checkout fields support for express checkout
- Tweak - Use the Database Cache for the Stripe Account Data
- Update - Update filter names to use the wc_stripe_* prefix
- Add - Show payment methods sync status on the UI
- Fix - No such customer error when creating a payment method with a new Stripe account
- Fix - Validate create customer payload against required billing fields before sending to Stripe
- Update - Enhanced logging system with support for all log levels and improved context handling
- Fix - Require email address only for Stripe customer validation when request is from the Add Payment Method page
- Fix - Set default values for custom field options
- Fix - Enforce rate limiter for failed add payment method attempts
- Update - Add the number of pending webhooks to the Account status section
- Fix - Prevent "Undefined array key charges_enabled" PHP warning when determining live‑mode status
- Update - Deprecate
wc_gateway_stripe_process_payment
,wc_gateway_stripe_process_redirect_payment
andwc_gateway_stripe_process_webhook_payment
actions in favour ofwc_gateway_stripe_process_payment_charge
Version 9.6.0
- Dev - Re-include the deprecated WC_Stripe_Order class to avoid breaking changes for merchants using it
- Update - Removes the change display order feature from the settings page when the Optimized Checkout is enabled
- Update - Removes the customization of individual payment method titles and descriptions
- Fix - Fixes some inconsistencies related to the Optimized Checkout feature and improves its unit tests
- Add - Introduces a new marketing note to promote BNPLs (Buy Now Pay Later) payment methods (Klarna and Affirm) on WooCommerce admin home page
- Fix - Throws a specific exception on an edge case where a saved payment method could not be found when processing an order in the new checkout experience
- Fix - Checks if the store has other BNPL extensions installed before displaying the promotional banner
- Fix - Correctly notifies customers and merchants of a failed refund and reverts the refunded status
- Update - Legacy checkout experience has been deprecated, new checkout experience is now the default for all sites
- Fix - Fixes an edge case where the express payment method buttons would not be displayed on the checkout if taxes used to be enabled
- Add - Voucher payment methods (Boleto, Multibanco, and Oxxo) can now be used when purchasing subscriptions if manual renewals are enabled or required
- Add - Adds a new filter (
wc_stripe_is_optimized_checkout_available
) to allow merchants to test the Optimized Checkout feature earlier - Fix - Restricts the BNPLs promotional banner to only be displayed after version 9.7.0
- Add - Adds a new promotional banner to promote the BNPL payment methods (Klarna, Afterpay, and Affirm) on the settings page.
- Dev - Deprecates the WC_Stripe_Order class and removes its inclusion call.
- Fix - Fixes the availability of the saving payment method checkbox in the classic checkout when the Optimized Checkout is enabled and signup is disabled during checkout.
- Dev - Implements the PSR-4 autoloading standard for the plugin unit tests (PHP).
- Fix - Sends missing information to Stripe when completing transactions with WeChat Pay, Blik and Klarna, using the Optimized Checkout.
- Dev - Moves the main Stripe class to a new file.
- Dev - Renames all PHP Unit test files to follow the PSR-4.
- Dev - Dynamically retrieves versions of WooCommerce and WordPress to use in the PHP code coverage GitHub Actions Workflow.
- Fix - Makes payment methods dynamically available on the shortcode checkout when the Optimized Checkout is enabled depending on the saving method checkbox value.
- Fix - Fixes a fatal error when the fingerprint property is not available for a card payment method.
- Add - Show an icon beside the payment methods that support automatic recurring payments.
- Fix - Fixes the payment method title when using the classic checkout with the Optimized Checkout enabled.
- Update - Remove BACS from the unsupported 'change payment method for subscription' page.
- Fix - Fix payment method title display when new payment settings experience is enabled
- Fix - Prevent styles from non-checkout pages affecting the appearance of Stripe element.
- Dev - Add e2e tests for BLIK
- Dev - Add e2e tests for BECS
- Fix - Send correct attribute when setting the default payment method.
- Dev - Build dynamic WordPress and WooCommerce dependencies for unit tests.
- Fix - Void intent when cancelling an uncaptured order
- Fix - Hide future payments message from payment element when manual renewal is required
- Tweak - Fix a rare warning when searching customers with missing name
- Fix - Apply shipping country restrictions to Express Checkout
- Dev - Prevent changelog entries with trailing periods
- Fix - Fix legacy deprecation notice displayed on new plugin installs
- Update - Remove verification steps for Apple Pay domain registration, as this is no longer required by Stripe
- Fix - When the user is deleted via WP CLI, take into account the environment type before detaching their payment methods
- Tweak - Add prefix to the custom database cache keys
- Update - Support block checkout custom fields when using express payment methods like Apple Pay and Google Pay
- Dev - Fix failing optimized checkout e2e test due to incorrect order of operations
- Tweak - Remove Payment Method Configurations fallback cache
- Dev - Add Klarna e2e tests
- Tweak - Update deprecation notice message to specify that legacy checkout experience has been deprecated since version 9.6.0
- Update - Remove legacy checkout checkbox from settings
- Add - Introduced
wc_stripe_force_save_payment_method
filter - Update - Express Checkout: introduce new WP actions for supporting custom checkout fields for classic, shortcode-based checkout
- Fix - Fixes page crash when Klarna payment method is not supported in the merchant's country by returning an empty array instead of throwing an error
- Fix - Fix payment processing for $0 subscription with recurring coupon
- Dev - Add e2e tests to cover Affirm purchase flow
- Dev - Improve e2e tests of some of the LPMs
- Fix - Add safety check when checking error object
- Fix - Correctly handle countries without states when using the express payment methods
- Update - Include extension data from block checkout when submitting an express checkout order
- Fix - Add order locking when processing payment redirects, to mitigate cases of double status updates
- Fix - Register Express Checkout script before use to restore buttons on “order-pay” pages
Version 9.6.0-test
New Features
- Legacy checkout experience has been deprecated, new checkout experience is now the default for all sites
- Voucher payment methods (Boleto, Multibanco, and Oxxo) can now be used when purchasing subscriptions if manual renewals are enabled or required
- Adds a new filter (wc_stripe_is_optimized_checkout_available) to allow merchants to test the Optimized Checkout feature earlier
- Show an icon beside the payment methods that support automatic recurring payments
Important Fixes and Updates
- Update - Remove BACS from the unsupported ‘change payment method for subscription’ page
- Update - Remove verification steps for Apple Pay domain registration, as this is no longer required by Stripe
- Update - Add prefix to the custom database cache keys
- Update - Support block checkout custom fields when using express payment methods like Apple Pay and Google Pay
- Update - Remove Payment Method Configurations fallback cache
- Update - Update deprecation notice message to specify that legacy checkout experience has been deprecated since version 9.6.0
- Update - Remove legacy checkout checkbox from settings
- Fix - Correctly notifies customers and merchants of a failed refund and reverts the refunded status
- Fix - Sends missing information to Stripe when completing transactions with WeChat Pay, Blik and Klarna, using the Optimized Checkout.
- Fix - Void intent when cancelling an uncaptured order
- Fix - Apply shipping country restrictions to Express Checkout
Other Fixes
- Fix - Fixes an edge case where the express payment method buttons would not be displayed on the checkout if taxes used to be enabled
- Fix - Fixes a fatal error when the fingerprint property is not available for a card payment method
- Fix - Fix payment method title display when new payment settings experience is enabled
- Fix - Prevent styles from non-checkout pages affecting the appearance of Stripe element
- Fix - Send correct attribute when setting the default payment method
- Fix - Hide future payments message from payment element when manual renewal is required
- Fix - Fix a rare warning when searching customers with missing name
- Fix - Fix legacy deprecation notice displayed on new plugin installs
- Fix - When the user is deleted via WP CLI, take into account the environment type before detaching their payment methods
- Fix - Throws a specific exception on an edge case where a saved payment method could not be found when processing an order in the new checkout experience
Internal Changes and Upcoming Features
- Add - Adds a new promotional banner to promote the BNPL payment methods (Klarna, Afterpay, and Affirm) on the settings page.
- Fix - [OC] Fixes the availability of the saving payment method checkbox in the classic checkout when the Optimized Checkout is enabled and signup is disabled during checkout
- Fix - [OC] Makes payment methods dynamically available on the shortcode checkout when the Optimized Checkout is enabled depending on the saving method checkbox value
- Fix - [OC] Fixes the payment method title when using the classic checkout with the Optimized Checkout enabled
- Dev - Deprecates the WC_Stripe_Order class and removes its inclusion call
- Dev - Implements the PSR-4 autoloading standard for the plugin unit tests (PHP)
- Dev - Moves the main Stripe class to a new file
- Dev - Renames all PHP Unit test files to follow the PSR-4
- Dev - Dynamically retrieves versions of WooCommerce and WordPress to use in the PHP code coverage GitHub Actions Workflow.
- Dev - Add e2e tests for BLIK
- Dev - Add e2e tests for BECS
- Dev - Build dynamic WordPress and WooCommerce dependencies for unit tests
- Dev - Prevent changelog entries with trailing periods
- Dev - Fix failing optimized checkout e2e test due to incorrect order of operations
Version 9.5.3
- Fix - Reimplement mapping of Express Checkout state values to align with WooCommerce's expected state formats
- Fix - Adds an exception to be thrown when the order item quantity is zero, during the retrieval of level 3 data from an order.
- Tweak - Track charge completed via webhooks in order notes
- Fix - Ensure that we migrate payment_request_button_size=medium on upgrade
- Fix - Show correct price in express checkout for zero decimal currencies
- Fix - Fixes a possible fatal error with Multibanco purchases when generating the email instructions.
- Fix - Fix buggy unsaved changes warning in settings page
- Fix - Use the platform's payment method configuration id constant when rendering the Optimized Checkout
- Update - Improve checks in voucher purchase flow
Version 9.5.2
- Add - Implement custom database cache for persistent caching with in-memory optimization.
- Update - Remove feature that flags 401s and proactively blocks subsequent API calls until the store has reauthenticated.
- Fix - Disable payment settings sync when we receive unsupported payment method configurations.
- Fix - Ensure that we use current Stripe API keys after settings updates
- Fix - Fix initial enabled payment methods migration to the Stripe Payment Methods Configuration API
Version 9.5.1
- Fix - Add a fetch cooldown to the payment method configuration retrieval endpoint to prevent excessive requests.
- Fix - Prevent further Stripe API calls if API keys are invalid (401 response).
- Fix - Stop checking for detached subscriptions for admin users, as it was slowing down wp-admin.
- Fix - Fix fatal error when checking for a payment method availability using a specific order ID.
Version 9.5.0
- Fix - Fixes the listing of payment methods on the classic checkout when the Optimized Checkout is enabled.
- Fix - Fixes the availability of WeChat Pay when the Optimized Checkout is enabled on the block checkout. Removes it from the classic/shortcode checkout to avoid issues.
- Dev - Renames all references to "Smart Checkout" and "Single Payment Element" (and "SPE") to "Optimized Checkout" (and "OC"), following the feature rebranding.
- Tweak - Updates the "Smart Checkout" setting name to "Optimized Checkout", and the description accordingly.
- Fix - Checks for the existence of the WC_Stripe_Feature_Flags class before including it during extension initialization.
- Dev - Splits the code coverage GitHub Actions Workflow into two separate actions.
- Fix - Fixes the listing of payment methods in the Stripe settings page when the Smart Checkout is enabled.
- Tweak - Passes the correct parent payment method configuration ID (retrieved from the backend) to the Smart Checkout payment element.
- Tweak - Removes the Stripe icon beside the Smart Checkout payment element from the checkout pages.
- Add - New setting to allow merchants to set their preferred title for the Smart Checkout payment element. Defaults to "Stripe".
- Dev - Updates the Code Sniffer package to version 1.0.0.
- Update - Add ECE support for One Page Checkout and other dynamic cart update scenarios
- Fix - Show error notice when 'Add payment method' fails on My Account page in block-based themes.
- Add - Add WordPress Action for processing payments with delayed charge attempts due to pre-debit notification period.
- Fix - Add caching for the Stripe Payment Method Configuration API
- Fix - Prevent deletion of webhooks for other tools
- Dev - Improve SPE e2e tests to reduce flakiness
- Fix - Prevents fatal errors for cases where we fail to load product details
- Fix - Address an edge case with webhook URL comparisons
- Add - Only show payment methods in Stripe settings that are available for the connected Stripe account.
- Fix - Show correct gateway name in non payments settings pages.
- Update - Add support for customer order notes and express checkout
- Dev - Minor fix to e2e setup code
- Dev - Make PHP error log from Docker container available in docker/logs/php/error.log
- Fix - Fix invalid IP address error encountered during mandate data creation.
Also includes changes from 9.4.0 that were rolled back in 9.4.1:
- Add - New filter to allow merchants to bypass the default visibility of the express payment method buttons when taxes are based on customer's billing address (
wc_stripe_should_hide_express_checkout_button_based_on_tax_setup
). - Dev - Improves Smart Checkout code with shared and new methods, on both front and backend.
- Fix - Fixes the saving of payment methods when Smart Checkout is enabled.
- Tweak - Correctly handles the display of payment method instructions when Smart Checkout is enabled.
- Dev - Do not generate filenames with underscores.
- Fix - Fixes the Stripe checkout container visuals when Smart Checkout is disabled.
- Dev - Replaces references to order status values with their respective constants from the WooCommerce plugin.
- Tweak - Updates the Smart Checkout (classic/shortcode checkout version) to make all the payment methods look as similar as possible to any other WooCommerce payment method.
- Tweak - Updates the Smart Checkout (block checkout version) to make all the payment methods look as similar as possible to any other WooCommerce payment method.
- Fix - Improves the subscriptions detached admin notice, making it less intrusive and limiting the querying to 5 subscriptions (avoiding slow loading times).
- Dev - Introduces new payment method constants for the express methods: Google Pay, Apple Pay, Link, and Amazon Pay (backend version).
- Dev - Introduces a new Stripe Order class to wrap Stripe-specific logic and data on the backend.
- Dev - Improves how we handle express payment method titles by introducing new constants and methods to replace duplicate code.
- Fix - Fixes an issue where the order signature retrieval method could throw a fatal error when the received order parameter is actually an OrderRefund object (instead of a WC_Order).
- Fix - Fixes a possible fatal error when a product added to the cart cannot be found (with Payment Request Buttons).
- Add - Add Amazon Pay payment method class.
- Add - Implements the Single Payment Element feature for the new checkout experience on the classic/shortcode checkout page.
- Tweak - Record a Tracks event when enabling/disabling SPE
- Tweak - Updates the Single Payment Element setting copy. Now it is labeled "Smart Checkout".
- Update - Enable/disable Amazon Pay by adding/removing it from the enabled payment methods list.
- Add - Add ACSS payment tokenization.
- Add - Add BLIK payment method.
- Fix - Prevent reuse of payment intents when order total doesn't match intent amount.
- Update - Update payment method type for Amazon Pay orders.
- Fix - Compatibility with email preview in the Auth Requested email
- Update - Update Alipay and bank debit icons.
- Tweak - Update payment method type check for charge.succeeded webhook.
- Fix - Fixed subscription features not being properly registered when hooks were already attached.
- Add - Disable unsupported payment methods in Stripe settings
- Update - Update handling of PR as a country in the terminal locations endpoint.
- Fix - Hide Amazon Pay in settings when legacy checkout is enabled.
- Fix - Fix subscription renewal issues for Amazon Pay.
- Fix - Fix ECE button width in shortcode cart page.
- Tweak - SPE: Remove radio buttons
- Add - Add Klarna support for some additional countries in EEA
- Update - Hide express checkout buttons when no product variation is selected.
- Fix - Translation warning when initializing the status page information.
- Add - Add ACSS support for WC Subscriptions.
- Fix - ECE checkout error when using extensions that reduce total cart amount (eg: Gift Cards)
- Add - Add WooCommerce Pre-Orders support to ACSS.
- Update - Remove unused express checkout button tracking.
- Add - Add BLIK support for WooCommerce Pre-Orders
- Add - Test mode instructions for BLIK.
- Tweak - Add save payment method parameter to update intent call for non-deferred intent payment methods.
- Fix - Checkout page focus loss
- Fix - Updated payment method radio button selector to correctly find the selected payment method in different themes.
- Fix - Add
wc_stripe_generate_create_intent_request
filter to support mandate information in setup intent creation. - Add - Support for BECS Direct Debit as a new payment method for Australian accounts.
- Update - Back button on the settings pages.
- Update - Use individual product tax status instead of storewide tax setup when determining express checkout availability.
- Update - Credit and Bank (BECS and ACSS) icons on the Block checkout page.
- Fix - Fix BLIK visibility based on account and billing countries.
- Add - Use Stripe Configuration API to manage payment methods enabled/disabled states.
- Dev - Add track events when enabling/disabling payment methods.
- Fix - Prepare mandate data from subscription object on change payment method page.
Version 9.5.0-test
New Features
- Synchronize payment methods from the Stripe dashboard - changes in payment methods made from your dashboard will be visible in your store in a few minutes
- Support Pre-authorized Debit (PAD) payments in Canada and the US
- Support BLIK payments in Poland and from other EU countries
- Support BECS Direct Debit payments in Australia
Important Fixes and Updates
- Update - Add express checkout support for One Page Checkout and other dynamic cart update scenarios
- Fix - Show error notice when 'Add payment method' fails on My Account page in block-based themes
- Add - Add WordPress Action for processing payments with delayed charge attempts due to pre-debit notification period
- Fix - Add caching for the Stripe Payment Method Configuration API
- Fix - Prevent deletion of webhooks for other tools
- Update - Add support for customer order notes and express checkout
- Add - New filter to allow merchants to bypass the default visibility of the express payment method buttons when taxes are based on customer's billing address (
wc_stripe_should_hide_express_checkout_button_based_on_tax_setup
) - Fix - Improves the subscriptions detached admin notice, making it less intrusive and limiting the querying to 5 subscriptions (avoiding slow loading times)
- Fix - Fixes an issue where the order signature retrieval method could throw a fatal error when the received order parameter is actually an OrderRefund object (instead of a
WC_Order
) - Fix - Fixes a possible fatal error when a product added to the cart cannot be found (with Payment Request Buttons)
- Fix - Fixed subscription features not being properly registered when hooks were already attached
- Add - Expand Klarna support to some additional countries in EEA
- Update - Hide express checkout buttons when no product variation is selected
- Fix - Express checkout error when using extensions that reduce total cart amount (e.g. Gift Cards)
- Fix - Checkout page focus loss
- Fix - Updated payment method radio button selector to correctly find the selected payment method in different themes
- Fix - Add
wc_stripe_generate_create_intent_request
filter to support mandate information in setup intent creation - Fix - Prepare mandate data from subscription object on change payment method page
- Fix - Fix invalid IP address during mandate data creation
Other Fixes
- Fix - Checks for the existence of the
WC_Stripe_Feature_Flags
class before including it during extension initialization - Fix - Prevents fatal errors for cases where we fail to load product details
- Fix - Address an edge case with webhook URL comparisons
- Fix - Show correct gateway name in non payments settings pages
- Fix - Fixes the Stripe checkout container visuals when Smart Checkout is disabled
- Fix - Prevent reuse of payment intents when order total doesn't match intent amount
- Fix - Compatibility with email preview in the Auth Requested email
- Update - Update Alipay and bank debit icons
- Tweak - Update payment method type check for
charge.succeeded
webhook - Add - Disable unsupported payment methods in Stripe settings
- Update - Update handling of Puerto Rico as a country in the terminal locations endpoint
- Fix - Fix express checkout button width in shortcode cart page
- Fix - Translation warning when initializing the status page information
- Update - Remove unused express checkout button tracking
- Tweak - Add save payment method parameter to update intent call for non-deferred intent payment methods
- Update - Back button on the settings pages
- Update - Use individual product tax status instead of storewide tax setup when determining express checkout availability
- Dev - Add tracking events when enabling/disabling payment methods.
Internal Changes and Upcoming Features
- Feature - Work to support Optimized Checkout
- Feature - Work to support Amazon Pay
- Dev - Splits the code coverage GitHub Actions Workflow into two separate actions
- Dev - Implement a new Stripe Order class across the codebase
- Dev - Updates the Code Sniffer package to version 1.0.0.
- Dev - Minor fix to e2e setup code
- Dev - Make PHP error log from Docker container available in docker/logs/php/error.log
- Dev - Do not generate filenames with underscores
- Dev - Replaces references to order status values with their respective constants from the WooCommerce plugin.
- Dev - Introduce new payment method constants for the express methods: Google Pay, Apple Pay, Link, and Amazon Pay (backend version)
- Dev - Improves how we handle express payment method titles by introducing new constants and methods to replace duplicate code.