Releases: woocommerce/woocommerce-gateway-stripe
Releases · woocommerce/woocommerce-gateway-stripe
Version 10.6.1
- Fix - Fix Optimized Checkout Suite bugs that could result in duplicate subscription charges and generic payment methods names
Version 10.6.0
New Features
- Add - Support for Adaptive Pricing
- Add - Allow payment methods for other currencies to be enabled when Adaptive Pricing is enabled
- Add - Add exit survey to capture merchant feedback on plugin deactivation and gateway disablement
- Add - New promotional banner to highlight the Stripe Tax extension for OCS-enabled merchants
- Add - Add an admin notice and one-click action to move Stripe payment methods to the top of WooCommerce payment gateway order for Optimized Checkout
Important Fixes and Updates
- Add - Support express checkout for free trial subscription products that require shipping
- Add - Allow additional font domains to be included in Stripe fonts
- Fix - Accept regional language names for Spanish provinces (e.g., Basque "Gipuzkoa") in Apple Pay and express checkout address validation
- Fix - Restore missing saved payment tokens when Optimized Checkout Suite is enabled
- Fix - Hide duplicate store-level save checkbox when Stripe Link is enabled on checkout
- Update - Show "Payment Options" as the Optimized Checkout title on classic checkout and "Payment Methods" on Blocks checkout instead of "Stripe"
- Fix - Update Stripe Fee and Stripe Payout values correctly after partial capture by replacing authorization-phase values instead of adding to them
- Fix - Add defensive checks before running renewal meta cleanup when renewal/subscription objects are missing or invalid
- Fix - Use the order currency instead of the global store currency when creating a payment intent, resolving incorrect charges in multicurrency setups
- Fix - Resolve intermittent "Missing required customer field: address->line1" error during checkout with auto-account creation
- Update - Add deprecation notices to methods and properties that were deprecated without them in older versions
- Update - Disable the Optimized Checkout Suite in the "Add Payment Method" and "Change Subscription Payment Method" screens
- Fix - Add order and payment method validation to prevent errors
- Fix - Ensure that we enqueue all needed scripts on payment pages
- Fix - Wrap express checkout add-to-cart in try/catch to prevent errors
- Fix - Treat customer-initiated Klarna (and other redirect BNPL) cancellations as recoverable so the order stays retryable and shoppers can complete checkout with another payment method
- Fix - Put subscription on hold when Stripe Radar blocks a renewal payment to prevent WC Subscriptions from scheduling further retry attempts
- Fix - Prevent TypeError when processing deferred webhooks using Action Scheduler
- Fix - Prevent JavaScript error in
elements.updatewhen using checkout sessions with adaptive pricing - Fix - Keep adaptive pricing amount in sync on checkout after order total changes
- Fix - Better background color detection for block themes and allow fonts from fonts.bunny.net
- Fix - Re-block UI during express checkout post-modal processing so shoppers see a loading state while the checkout API call completes
- Fix - Use floating labels and correct field spacing on Blocks checkout
- Fix - Hide Stripe's testing assistant on checkout page
Other Fixes and Updates
- Fix - Re-compute Stripe PE appearance after web fonts load to prevent fallback font rendering
- Fix - Prevent brief display of wrong title on classic checkout when Optimized Checkout is enabled
- Fix - Normalize express checkout button spacing on the block cart page in Safari
- Update - Express Checkout button logging will only occur when verbose debug mode is enabled
- Fix - Improve default layout when Optimized Checkout is disabled
- Fix - Improve performance of CSS style lookups
- Fix - Fix UPE style transition keys for font smoothing properties
- Update - Shorten test mode messaging, add Test Mode badge on Blocks checkout, and add copy-to-clipboard for test card numbers
- Fix - Use a single Checkout Session line item priced at the full payable cart total so adaptive pricing sessions match checkout totals
- Fix - Improve UX for the "Stripe first method" notice for Optimized Checkout
Internal Changes and Upcoming Features
- Add - Initial implementation of always-expanded Optimized Checkout Suite in shortcode checkout
- Add - Process payment with adaptive pricing in the classic checkout
- Add - Process payment with adaptive pricing in the blocks checkout
- Add - Allow customers to save payment methods during checkout with adaptive pricing
- Add - Include specific information on converted currency for adaptive pricing in order confirmation emails
- Add - Include specific information on converted currency for adaptive pricing in the order received page and order details page
- Add - Show ECB interbank rate conversion fee notice to EEA-based shoppers on the order received page and in customer order confirmation emails
- Add - Handle redirect payment flow in classic checkout for Checkout Sessions
- Add - Handle Checkout Session failure webhook events for expired and async failed payments
- Add - Process Checkout Session async payment success webhooks
- Add - Add Ajax endpoint to update line items in a checkout session
- Remove - Remove EU adaptive pricing disclosure component from classic and Blocks checkout as it is shown natively within the Stripe currency selector element
- Update - Defer checkout sessions webhook processing via Action Scheduler to prevent race conditions when webhook events arrive before order metadata is stored
- Update - Show Express Checkout on block checkout when Adaptive Pricing is enabled
- Fix - Fix checkout session creation for guest users
- Update - Hide Adaptive Pricing option for Stripe accounts based in India and European Economic Area countries
- Fix - Restrict Checkout Session saved payment method options to logged-in customers so guest checkout session creation succeeds
- Update - Allow Adaptive Pricing for merchant accounts based in EEA countries
- Fix - Confirm checkout session with user data in classic checkout for guest user
- Fix - Move test mode instructions above the Adaptive Pricing currency selector in classic checkout
- Fix - Render the Adaptive Pricing currency selector immediately above the payment element in classic checkout
- Tweak - Hide pay and cancel actions for pending orders processed via Checkout Session in order received page and My Account orders list
- Tweak - Hide the Adaptive Pricing currency selector from classic checkout when a saved payment method is selected
- Fix - Only collect and send payer phone in Checkout Sessions when the WooCommerce phone field is required
- Fix - Change Checkout Sessions (Adaptive Pricing) redirect-based flow to match the existing PaymentIntent flow (redirect to checkout page)
- Fix - Ensure currency selector appears after saved payment methods in classic checkout
- Dev - Add paratest for parallel PHP unit test execution
- Dev - Autoload all Agentic Commerce classes via Composer classmap, removing manual require_once calls
- Dev - Separate Agentic Commerce merchant-controlled is_enabled setting from the developer feature flag
- Dev - Add metadata accessor methods for subscription objects to WC_Stripe_Order_Helper, centralizing subscription-specific metadata handling
- Dev - Rename and move the new Checkout Sessions ajax handler class to be autoloaded
- Dev - Add WC_Stripe_Country_Code constants class and replace hardcoded country code strings
- Dev - Update WC_Stripe_Currency_Code constants class with zero-decimal and three-decimal currency lists and replace legacy no_decimal_currencies() usage
- Dev - Add product deletion tracking to Agentic Commerce inventory sync: product deletes and trash events are batched and uploaded to Stripe as a product_catalog_feed with delete:true
- Dev - Rename PHPUnit test files and directories to match the WordPress kebab-case naming convention used in includes/
- Dev - Remove unused frontend code: legacy blocks payment request API helpers, related normalize utilities, and unused Stripe icon component
- Dev - Add incremental inventory sync for Agentic Commerce: tracks stock changes via WooCommerce hooks and uploads a minimal inventory_feed CSV to Stripe one minute after the first change
- Dev - Skip registering Stripe email classes when WooCommerce email class is not loaded
- Dev - Remove @woocommerce/currency dev dependency to resolve locutus CVE-2026-32304 (GHSA-vh9h-29pq-r5m8)
- Dev - Collapse PHPUnit tests using data providers to reduce duplication and improve test isolation
- Dev - Treat misaligned statements as errors in PHPCS ruleset
- Dev - Remove checkout sessions feature flag and make the feature available by default
- Dev - Add automatic changelog entry suggestions to bin/changelog.js
Version 10.5.3
- Fix - Restore default layout when Optimized Checkout is disabled
- Fix - Prevent incorrect re-enablement of express checkout methods during upgrades
Version 10.5.2
- Fix - Ensure that we enqueue all needed scripts on payment pages
Version 10.5.1
- Fix - Reinstate custom appearance logic
- Fix - Refactor some Amazon Pay helpers to prevent an infinite loop
- Fix - Clear customer cache after saving a new payment method so the Stripe payment method list has correct data
Version 10.5.0
- Update - Add missing metadata to checkout session objects when processing webhook events
- Fix - Update deprecated WooCommerce block checkout hook from
onCheckoutAfterProcessingWithSuccesstoonCheckoutSuccessin the saved token handler - Add - Display adaptive pricing currency selector on blocks checkout page
- Dev - Remove unit tests that no longer make sense after recent file removals
- Update - Include additional customer information when creating checkout sessions
- Fix - Allow subscription edits when mandates are present, except for mandates from India
- Update - Remove the deferred intent flag (
wc-stripe-is-deferred-intent) and the non-deferred intent code path - Dev - Deprecate old unused feature flag backend methods and remove related code from the frontend
- Dev - Remove unused frontend code related to block checkout
- Update - Move class instantiations from their definition files to the plugin initialization code
- Update - Deprecate unused non-deferred intent methods in WC_Stripe_UPE_Payment_Gateway
- Dev - Remove unused frontend code related to UPE
- Tweak - Update PHPDoc in admin REST controllers and related code
- Tweak - Improve PHPDoc for migration and notes; minor notes refactor
- Tweak - Update PHPDoc for express checkout classes, block support class, and intent controller
- Tweak - Update PHPDoc for UPE payment method classes
- Add - Display adaptive pricing currency selector on classic checkout page
- Dev - Fix WC beta version resolution in tests
- Update - Update Stripe API to 2025-09-30.clover and dynamic Javascript to Clover
- Tweak - Update PHPDoc and fix minor issues for subscriptions and pre-order compatibility
- Add - Add method to check if adaptive pricing is supported and pass the flag to checkout page
- Dev - Upgrade @stripe/react-stripe-js to ^5.4.1 and @stripe/stripe-js to ^8.6.0 in JavaScript dependencies
- Dev - Fix becs e2e tests
- Add - Add the base CSV feed for agentic commerce
- Update - Reconfigure webhooks to include Checkout Session events when Adaptive Pricing is enabled via settings
- Dev - Upgrade @types/react to ^18.3.7 in JavaScript dependencies
- Dev - Add CodeRabbit configuration with Stripe-focused review guidance
- Dev - Expand AI agent guidance with directory-level AGENTS and CLAUDE context files
- Fix - Prevent fatal error when order ID in webhook references a refund
- Tweak - Refactor order helper class to use constants for lock meta keys and reduce code duplication in meta getters
- Dev - Update dependencies for building translations
- Fix - Hide all payment methods on Add Payment Method page when saved payment methods are disabled
- Add - Backend support for processing payments with Checkout Session when using Adaptive Pricing
- Fix - Fix currency formatting issue with ISK for express checkouts
- Dev - Extract shared banner styled components and dismissNotice utility to eliminate frontend duplication
- Tweak - Add missing JSDoc comments to client-side utility, API, and payment-flow functions
- Update - Use iDEAL | Wero co-branding to comply with branding changes
- Dev - Use PaymentGatewayFeature constants instead of raw strings for payment gateway feature declarations in UPE payment method classes and traits
- Fix - Only load Stripe JS (not the full UPE bundle) on product and cart pages when express checkout is disabled
- Fix - Fix script dependencies and script cache versioning for classic checkout
- Fix - Remove transient style caching in favor of a simple in-memory frontend cache
- Fix - Improve Stripe element appearance on non-checkout pages
- Fix - Remove WooCommerce session creation on product page load to improve cacheability
Version 10.4.0
- Add - Introduce an endpoint to create Checkout Sessions tokens
- Add - New setting to control Adaptive Pricing
- Add - Map Norwegian nb-NO to generic no-NO locale
- Update - Redirect merchants to the Stripe settings screen upon plugin activation
- Fix - Fix Stripe client API calls with wrong amount when rendering the express checkout buttons in block
- Fix - Validate product exists before accessing product methods in express checkout to prevent fatal errors
- Update - Ensure the
customer_namemetadata sent to Stripe does not have leading or trailing spaces - Update - Move all logic from WC_Gateway_Stripe to WC_Stripe_UPE_Payment_Gateway as part of deprecation
- Update - Remove the main Payment Request Buttons backend class, WC_Stripe_Payment_Request, which was deprecated in 10.2.0
- Dev - Replace deprecated logger method calls with severity specific methods
- Dev - Ensure PHPStan runs when pushing changes
- Dev - Add PHPStan stub for WC_Subscription class
- Dev - Remove the deprecated WC_Stripe_Apple_Pay class
- Fix - Prevent Optimized Checkout from showing unsupported payment methods
- Dev - Unit tests to cover address normalization
- Fix - Add order validation in Multibanco email instructions to prevent fatal error when order is invalid
- Fix - Add validation to prevent fatal error when setting default payment token if token doesn't exist
- Fix - Validate order object before accessing methods in my account orders actions to prevent fatal errors
- Dev - Use WC_STRIPE_PLUGIN_PATH constant instead of DIR for more reliable file path resolution
- Dev - Automate release note creation PR
- Fix - Resolve false incompatibility warnings for Block Editor payment methods
- Dev - Introduce a feature flag for the Stripe checkout sessions feature
- Dev - Improve the pre-push hook
- Fix - Prevent credit card input fields from being cleared in the Optimized Checkout Suite (OCS) when the "Save payment method" checkbox is selected on classic checkout
- Fix - Better error handling when token creation fails
- Tweak - Improve PHPDoc for payment token code
- Tweak - Update PHPDoc for email notification classes
- Add - Admin notice for merchants potentially affected by the express checkout button location issue in versions 10.1.0 to 10.2.x
- Add - Support Amazon Pay as an express checkout method
- Add - Enable Amazon Pay for eligible new installs
- Update - Stop auto-enabling Optimized Checkout Suite for new installs
Version 10.3.1
- Fix - Fatal error when using express payment method with certain addresses
Version 10.3.0
- Update - Increase Afterpay/Clearpay maximum transaction amount to 4,000 AUD and 4,000 NZD
- Dev - Require milestones to be set on pull requests
- Update - Remove legacy checkout payment method classes
- Dev - Rename the express checkout frontend main setting key
- Update - Deprecate and replace Payment Request Button classes with Express Checkout equivalents
- Dev - Rename the express checkout customization route
- Dev - Rename all express checkout related frontend hooks
- Dev - Remove deprecated legacy checkout settings retrieval methods
- Dev - Remove all references to the UPE-enabled feature flag
- Dev - Remove deprecated promotional banners (related to legacy checkout)
- Fix - Error when using Puerto Rico addresses with express checkouts
- Tweak - Improve error messages when Stripe API requests fail to better distinguish between request and retrieval errors
- Fix - Resolve Level3 data validation error caused by rounding precision when shipping rates have 3+ decimal places
- Tweak - Change BLIK confirmation webhook processing from deferred to immediate
- Fix - Preserve express checkout button location settings when upgrading from older plugin versions
- Fix - Fix some initialization bugs for reconnections
- Fix - Update Ukraine state mapping list
- Fix - Use same default locations for Amazon Pay express checkout
- Dev - Add configuration and workflow for PHPStan
- Fix - Calculate subtotal correctly in express checkout
- Dev - Improve PHPStan handling of plugin constants
- Fix - Ensure that 'Link' and 'Stripe Link' are not translated
- Fix - Fix situation where Stripe errors were not translated
- Dev - Ensure multiple subdirectories are not exposed via Docker container
- Dev - Fix ACH E2E tests for updated Stripe test flow
- Tweak - Simplify logic for default settings and wc_stripe_settings filter
- Tweak - Update PHPDoc for WC_Stripe_Payment_Gateway->get_intent_from_order()
- Tweak - Fix return type for WC_Stripe_Order_Helper::get_instance()
- Fix - Ensure express checkout is enabled in current context before registering the express checkout script
- Fix - Prevent warnings for Amazon Pay in Express Checkout block
Version 10.2.0
New Features
- Update - Enable the Optimized Checkout Suite feature for all new installations
- Update - Add minimum transaction amounts for BRL, INR, NZD, THB, CZK, HUF, AED, MYR, PLN, RON
Important Fixes and Updates
- Add - Implement cache prefetch for account data
- Add - Allow cache prefetch window to be adjusted via the wc_stripe_database_cache_prefetch_window filter
- Add - Add wc_stripe_express_checkout_normalize_address filter for express checkout address normalization
- Update - Include customer data in wc_stripe_create_customer_required_fields filter
- Fix - Ensure state and postal code are optional in express checkout for Gulf countries (UAE, Bahrain, Kuwait, Oman, Qatar)
- Fix - Ensure correct express checkout prices in block cart and checkout with non-default decimal configuration
- Fix - Don't allow WP-Cron jobs to detach payment methods on staging sites
- Fix - Generate OAuth URLs on-demand when connecting to Stripe instead of pre-generating them on page load
- Fix - Always use the current payment method configuration in Optimized Checkout
- Fix - Generate OAuth URLs on-demand when connecting to Stripe instead of pre-generating them on page load
Other Fixes
- Update - Changes the list of payment methods shown in the Stripe account connection modal
- Update - Better notices and interactions for disabled express checkout methods
- Update - Changes labels related to saved payment methods from "cards" to "payment methods"
- Fix - Allow payment methods to be disabled when they are not available
- Fix - Ensure Amazon Pay, Apple Pay, and Google Pay display settings are managed correctly
- Fix - Ensure express payment methods are processed correctly when Optimized Checkout is enabled
- Fix - Fix error handling when processing subscription renewals
- Fix - Prefill customer billing information on the Pay for Order and Change Payment Method pages
- Fix - Respect button.radius value of 0 in Express Checkout Element appearance settings
- Fix - Fix revoked secret_key error during the OAuth account connection flow
- Fix - Exclude order parameter from customer creation request arguments
Internal Changes and Upcoming Features
- Update - Improves the error log for SSL connection missing when trying to render the express checkout buttons
- Update - Expand Amazon Pay support for all permitted currencies and countries
- Fix - Make token detachment checks use shared logic for detaching payment methods
- Fix - Disable express checkout when Amazon Pay is disabled and the only method
- Fix - Use the built-in Database Cache for the Connect flow data
- Tweak - Hide Amazon Pay from the standard payments in Optimized Checkout
- Dev - Refactor display logic for payment method issue pills
- Dev - Deprecates all the legacy checkout payment method classes
- Dev - Deprecates all the LPM class constants
- Dev - Remove all references to the UPE-enabled feature flag
- Dev - Removing all usages of the
is_stripe_ece_enabledfeature flag method - Dev - Expands the Stripe Order Helper class to handle mandate ID, Multibanco data, refund status, card brand, charge captured flag, status final flag, and the refund failure reason
- Dev - Remove the merchant email address from the System Status Report
- Dev - Replace the constant reference for the legacy SEPA payment method
- Dev - Add logging with DNS resolution diagnostics for URL validation issues when calling Stripe API
- Dev - Removes the
_wcstripe_feature_upefeature flag and the related method from theWC_Stripe_Feature_Flagsclass - Dev - Fixes some incorrect subscriptions support implementations for payment methods
- Dev - Add additional context data to the OAuth connect flow verbose debug logging mode