2.3.31 - 2026-11-02
- A customer's new card was saved on another Stripe customer when their email differs from the one on the Stripe subscription (changed since, or an imported subscription), so it could not become the subscription's card and renewals kept charging the old one; the card is now saved on the subscription's own Stripe customer - FIXED
- A free item at checkout asked Stripe for a payment with no amount (an error in the Stripe log on each form refresh) - FIXED
- A subscription cancelled while its renewal was unpaid (the card failed, then the customer cancelled or Stripe gave up) kept the new period's end as its expiry, so its license stayed active for a period never paid for; the expiry now goes back to the date it was paid up to - FIXED
2.3.30 - 2026-10-28
- A customer's new card (setup intent) never reached their Stripe subscription: the setup_intent.succeeded webhook failed with a fatal error, so renewals kept charging the old card - FIXED
- Cancelling or deleting a subscription that Stripe had already ended (a missed webhook, or cancelled in the Stripe dashboard) no longer shows "No such subscription"; it is treated as already cancelled - FIXED
- Incomplete card no longer creates a pending invoice on each submit - FIXED
2.3.29 - 2026-10-14
- Webhook signatures are now checked when a signing secret is set - FIXED/SECURITY
- Repeated Stripe renewal webhooks no longer re-run the renewal and add duplicate payment notes - FIXED
- Process past event tool always failed with an expired link - FIXED
- Returning from Stripe with an unknown invoice caused a fatal error - FIXED
- Translations never loaded from the plugin languages folder - FIXED
- Webhook signing secret settings for live and test mode - ADDED
- Webhook endpoint created by the plugin now saves its signing secret, so signatures are checked - FIXED/SECURITY
- Payments whose amount or currency does not match the invoice are no longer marked paid - FIXED/SECURITY
- Ugandan Shilling (UGX) amounts were sent to Stripe 100 times too small - FIXED
- Renewal payments are only recorded when the amount and currency match the subscription - FIXED/SECURITY
2.3.28 - 2026-09-23
- Fixed minor rounding differences between Stripe charges and invoice amounts - FIXED
2.3.27 - 2026-09-16
- Enhance logging for Stripe failed payments and refund webhook events - CHANGED
- Add extra sanitization filters to webhook request validation - FIXED/SECURITY
2.3.26 - 2026-09-09
- Apple Pay and Google Pay failed to show their payment sheet at checkout - FIXED
- Link payment option remained visible in checkout when disabled in gateway settings - FIXED
- Payment methods disabled in the settings like Link & Klarna are still showing at checkout - FIXED
2.3.25 - 2026-06-17
- Load Stripe.js on subscription pages so the "Update Payment Card" button works when "Load Stripe.js globally" is disabled - FIXED
2.3.24 - 2026-02-26
- Stripe form is not loading on embed checkout when load Stripe.js on all pages is disabled - FIXED
2.3.23 - 2026-02-19
- Display success message after updating card details - FIXED
- Added jQuery hooks for customizing Stripe Elements options - ADDED
- Allow option to set custom locale for checkout - ADDED
2.3.22 - 2025-12-18
- Process partial refund if allowed with cancel subscription - CHANGED
2.3.21 - 2025-12-04
- WordPress 6.9 compatibility check - COMPATIBILITY
2.3.20 - 2025-11-27
- Stripe renewal payment fail notification email don't working - FIXED
2.3.19 - 2025-09-18
- Non-recurring invoice checkout success should use default behaviour to redirect to success page - CHANGED
2.3.18 - 2025-09-11
- Update webhook url field description - CHANGED
2.3.17 - 2025-07-17
- Concurrent request execution sends invoice mail twice - FIXED
2.3.16 - 2025-06-26
- Cancel and close buttons on "Update Payment Card" modal now work as expected - FIXED
2.3.15 - 2025-05-22
- Option added to enable/disable allowing customers update payment card details - ADDED
2.3.14 - 2025-04-17
- Added option to load Stripe.js globally or only on checkout pages - ADDED
- Removed TGM plugin activation class - CHANGED
2.3.13 - 2025-02-12
- Fix PHP 8 compatibility issue during renewal payment webhook - FIXED
2.3.12 - 2025-02-10
- Prevent PHP notice during webhook request execution - FIXED
2.3.11 - 2025-02-06
- Issue during creating intents when invoice is empty - FIXED
2.3.10 - 2025-02-05
- Prevent creating unwanted incomplete payment intents - CHANGED
2.3.9 - 2024-11-28
- Payment via Stripe > iDEAL don't create subscription at Stripe site - FIXED
- Don't create invoice entry for cancelled invoice on IPN webhook event - FIXED
2.3.8 - 2024-06-11
- Set current_period_end as a subscription expiration - CHANGED
2.3.7 - 2024-01-24
- Non integer amount breaks subscription creation at Stripe - FIXED
2.3.6
- Add: Tool to manually process a Stripe event.
2.3.5
- Fix: Check empty invoice before retrieve secret key for the invoice.
- Add: Allow refunding a payment in Stripe.
2.3.4
- Fix: Subscription cancellation not working when using Stripe checkout sessions.
2.3.3
- Remove unsupported payment methods when form contains both recurring and non-recurring items.
2.3.2
- Subscription improvements
2.3.1
- Fix: Existing customers unable to pay when Stripe connection details are changed.
- Added hook to handle subscription cancel event - FIXED
2.3.0
2.2.19
- Meta data character limit not being applied which can throw a stripe error when long textarea used - FIXED
2.2.18
- Show Stripe payment form even if email is not set.
2.2.17
2.2.16
2.2.15
- Checkbox to enable different payment methods - ADDED
2.2.14
- Wrongly named the payment intent succeeded webhook processor - FIXED
2.2.13
2.2.12
- Fix "The customer does not have a payment method with the ID X" error
2.2.11
- Switch to Stripe elements
2.2.10
- Cancel subscription in Stripe whenever it is deleted in GetPaid
- Automatically send all payment form data to Stripe
2.2.9
- Send shipping address to Stripe - ADDED
- Fix translation domain issues - FIXED
- Connection button displays raw JS - FIXED
2.2.8
- Warn if stripe is not set-up correctly
2.2.7
- WordPress 5.8 compatibility check
2.2.6
Do not redirect to settings if installed via GetPaid set-up wizard
2.2.5
- GetPaid 2.4.0 compatibility - ADDED
2.2.4
- Ability to filter stripe API args - ADDED
2.2.3
- Do not update payment details for confirmed payment intents - FIXED
2.2.2
- Show more error information when a card is declined - CHANGED
- Update payment intent when payment details change - FIXED
2.2.1
- Create a single invoice on checkout errors - CHANGED
2.2.0
- Stripe connect button not working if Stripe is disabled - FIXED
- Subscriptions with maximum renewals not automatically canceled - FIXED
- Support for the new GetPaid multiple subscriptions feature - ADDED
- Saved payment methods do not appear on payment form - FIXED
2.1.0
- Payment request buttons - ADDED
2.0.10
2.0.9
- WordPress 5.7 compatibility - ADDED
2.0.8
- Send email when Stripe payment fails (e.g missing payment method), with a way to update payment details - ADDED
- Tool to check expired subscriptions with Stripe - ADDED
- Save sandbox status when clicking on the connect button - ADDED
2.0.7
- GetPaid 2.1.2 compatibility - ADDED
2.0.6
- Customer IDs meta key not checking for old style key - FIXED
2.0.5
- Stripe Connect can't create webhooks and will re-try on each fail - FIXED
2.0.4
- Add ability to auto-create Stripe Webhooks on non-localhost environments.
2.0.2
- Add ability to disable Stripe connect.
2.0.1-beta
- Add ability to disconnect from Stripe
2.0.0-beta
- Update Stripe API - CHANGED
- Refactor code - CHANGED
- GetPaid 2.0.0 compatibility - ADDED
1.0.16
- Better error messages - CHANGED
1.0.15
- Non-recurring discount not respected - FIXED
- Incorrect plan names when item prices change - FIXED
1.0.14
- Sometimes free trials not working - FIXED
1.0.13
- Shipping details support - ADDED
- Upgrade Stripe API - IMPROVED
- Replaces charges with payment intents - CHANGED
1.0.12
- Payment forms compatibility - ADDED
- Show more specific error messages when a card is declined - ADDED
- Stripe scripts are only loaded if the gateway is active - CHANGED
- Sometimes not working with free trials - FIXED
1.0.11
- Validate minimum stripe amount for recurring item - ADDED
1.0.10
- Improve error handling
- Add partner id to all API requests
1.0.9
- Tested upto new API Version 2019-11-05 https://stripe.com/docs/upgrades#2019-11-05
- Minimum amount should not checked for recurring invoices - FIXED
- Missing Stripe token error for saved card - FIXED
- Problem in submitting the checkout form with full price discount - FIXED
- Display saved method to only invoice user - FIXED
1.0.8
- Support for Strong Customer Authentication (SCA) for user-initiated payments. - ADDED
- Allow to save card for future purchase. - ADDED
- Using PaymentIntent instead of Charge API. - CHANGED
- Stripe library updated to V7.0.2 - CHANGED
- Requires to use API Version 2019-09-09 https://stripe.com/docs/upgrades#2019-09-09 - CHANGED
- Improved refund handling from Webhook - CHANGED
1.0.7
Renewal payment generated sometimes for first time payment - FIXED
Product already exist stripe error when creating plan with discount applied - FIXED
Invalid Parameter error on cancel subscription due to param depreciated - FIXED
Uninstall functionality - ADDED
1.0.6
zero decimal currency showing amount multiplied by 100 in stripe popup - FIXED
1.0.3
Undefined name property error - FIXED
Update default card details for active subscriptions - ADDED
1.0.2
Plugin should not active if Invoicing plugin is active - CHANGED
Log errors when API keys changed or moved from Test mode to Live mode - CHANGED
Subscription functionality improved - CHANGED
Option added to specify Stripe checkout language - ADDED
Testing a webhook shows 500 error at Stripe site - CHANGED
Integrate Stripe API 2017-08-15 upgrade changes - CHANGED
JavaScript multiplying by 100 giving wrong decimal amount in Stripe popup - FIXED
1.0.1
Fix invoice status conflict with other plugin - CHANGED
Fail to create stripe customer if created & deleted earlier - FIXED
Changes in amount formatting - CHANGED
Invoice status "pending" changed to "wpi-pending" - CHANGED
1.0.0