Divi Membership Changelog

/* CHANGELOG */

VERSION 2.2.0 – 07/08/26

  • NEW – Works with Divi Nitro page cache: account and login pages are excluded; guests still get a safe cached paywall page while logged-in members see live content.
  • MOD – Always uses the Divi Engine settings hub, including when BodyCommerce, Nitro, Protect, Mobile, or Mega Menu are active.
  • FIX – Paid checkout shows a clear message when no payment method was sent, reliably uses the only enabled payment option (for example Stripe alone), and signup forms no longer clear the payment choice with an empty field on submit.
  • FIX – Divi Membership no longer shows a false update available notice on the Plugins screen when you already have the latest version installed or a newer development build.
  • FIX – Creating free subscriptions from the Members list on a plan now works for users you just selected, without needing to save the plan first.

VERSION 2.1.0 – 14/05/26

  • NEW – Site administrators can reactivate expired or failed subscriptions from the subscription edit screen when you need to correct a mistake (updates this site only; adjust billing separately with your payment provider if needed).
  • NEW – One-time plans can include how long access lasts (for example six months); when that period ends, access expires and the site does not try to take another payment.
  • MOD – Licence checks on admin load no longer repeat the same remote request twice in one visit when the daily review runs at the same time.
  • MOD – Update details for this plugin in the WordPress Plugins screen are cached for a few hours and still refresh when you use Check for updates.
  • MOD – When debug logging is enabled, detailed payment and checkout traces are written to the membership debug log so you can export them for support (not only the server PHP error log).
  • MOD – Stripe payment notifications now stop the page load immediately after responding, so your server does less unnecessary work on each event.
  • FIX – Paid subscription renewals now restore access when the site had already marked the membership expired before the payment confirmation arrived.
  • FIX – Subscription actions sidebar no longer shows two Update buttons.
  • FIX – Stripe checkout now completes membership after you return from bank redirects such as iDEAL (the form submits with your payment method instead of stopping on the signup page).
  • FIX – Signup no longer bounces between the same page with and without Stripe return parameters after bank redirects (membership can finish instead of reloading in a loop).
  • FIX – Registration form (new account checkout while logged out) posts to a clean page address after Stripe returns, matching the signup form behavior.
  • FIX – After bank redirects for wallets such as iDEAL, signup and registration now keep the selected membership plan when the form is submitted automatically (the plan choice was lost on the return page before).
  • FIX – Stripe no longer fails after bank redirects when the payment method was saved under a different customer than your membership account (checkout now uses the same customer consistently).
  • FIX – Stripe signup when automatic login is turned off no longer creates a separate guest customer for bank redirects; the payment method is saved on the same account you are joining with.
  • FIX – Checkout can finish when your card is already on a Stripe customer that matches your email but your account still had an older customer on file (for example after a bank redirect or duplicate records).
  • FIX – Bank-redirect checkout (such as iDEAL) no longer fails when the Stripe customer from your payment step had no email on file yet or only matched your billing email.
  • FIX – Bank-redirect signup now sends the completed setup to the server so your payment method links to the correct Stripe customer when the bank step finishes.
  • MOD – When membership debug logging is enabled, the browser console can show short [dmem-stripe] messages during signup payment so support can follow the flow; otherwise the console stays quiet during checkout.
  • MOD – After you return from your bank during signup, the membership form shows a loading state while checkout finishes so the page cannot be changed by mistake.
  • FIX – iDEAL and similar bank redirects no longer fail with “payment method could not be linked” when Stripe already saved the payment on your account but the confirmation step could not see the link.
  • FIX – iDEAL checkout no longer tries to save the bank payment method to your Stripe customer the same way as a card (Stripe does not allow that); membership signup continues using the completed bank setup for the subscription.
  • FIX – Recurring memberships with iDEAL no longer stop after your bank approves the payment when Stripe needs a separate saved bank-debit method for renewals; signup now completes using that method so your membership can start.
  • FIX – Bank-redirect memberships that use euros behind the scenes (such as iDEAL) now require the plan price to be in euros so the first payment can finish; non-euro prices show a clear message instead of a vague payment error.
  • FIX – The first invoice for bank-debit signups is now completed the same way as card renewals when needed so checkout does not stop on “requires payment method” after the bank step.
  • FIX – Browsing the site while logged in as an administrator no longer runs the renewal-date expiry check against every member at once (for example during Jetpack or other background requests).
  • FIX – Active Stripe memberships are no longer ended based only on an out-of-date renewal date stored on your site; the plugin checks Stripe first and refreshes the date when billing is still active there.
  • FIX – WordPress now lists and installs plugin updates reliably when a new release is available on your licence.

VERSION 2.0.5 – 07/04/26

  • NEW – Added a Debug settings section where you can enable logging and export support-ready diagnostics for registration, signup, trial, renewal, and subscription status activity.
  • MOD – When debug logging is enabled, failed or blocked add-card attempts on the account payment methods page are recorded in the membership debug log for easier support diagnosis.
  • FIX – Membership now keeps the correct settings mode when BodyCommerce, Mobile, Nitro, or Protect is active.
  • FIX – Welcome and admin signup emails now send when email notifications are turned on in the new settings.
  • FIX – Active memberships no longer flip to expired after a same-day Stripe renewal when the invoice uses a short billing window (for example 100% discount or proration).
  • FIX – Adding a card from the member account payment methods page now works reliably with Stripe.

VERSION 2.0.4 – 09/03/26

  • FIX – Fatal error with Form Builder installed on the same site as they share our Stripe code

VERSION 2.0.3 – 09/03/26

  • FIX – Fatal error with Form Builder installed on the same site as they share our Stripe code

VERSION 2.0.2 – 03/03/26

  • MOD – Register form now has an option to show address fields and save them to the member profile
  • FIX – Profile address fields on the Register form no longer affect Stripe v3 payment handling
  • FIX – Reports export now loads membership plans correctly and no longer shows “No plans found” when plans exist
  • FIX – Reports export filters now support selecting multiple membership plans
  • FIX – Reports export no longer fails when subscription dates are stored as date strings instead of timestamps
  • FIX – Membership status on the account page now shows the correct active subscription when multiple subscription records exist for the same plan
  • FIX – Free subscriptions created from the Members list now stay active and no longer get marked as expired automatically
  • FIX – Legacy Settings show when with another plugin like Divi Machine (currently using older settings framework)

VERSION 2.0.1 – 25/02/26

  • FIX – Stripe now charges the correct amount for zero-decimal currencies like Japanese Yen (JPY), Korean Won (KRW), and others
  • FIX – One-time payment plans now work when using a saved card (no longer requires entering card again)
  • FIX – Recurring subscriptions no longer fail with “lookup key already in use” when the same plan price exists in Stripe

VERSION 2.0.0 – 23/02/26

  • NEW – Settings Framework: New settings UI with improved UX and clearer user journey
  • NEW – Reporting: Revenue, Signups, and Coupons reports with bar/line charts, date presets, and persistent preferences
  • NEW – Stripe v3: Upgraded to Stripe Elements with support for Klarna, iDEAL, Revolut Pay and other payment methods
  • NEW – Free Trials: Configurable trials on billing cycles (duration, require payment upfront), trial status in account and admin, cancel trial or start paid now, grace period for no-card trials, trial emails and cron handling. Full Stripe and PayPal trial support
  • NEW – Order Summary: Order summary on Register and Signup Form modules with design options and coupon support
  • NEW – Membership plan display: Better plan selection on Register and Signup—optgroups, plan titles, intro text, billing cycle descriptions, full design options (intro, plan title, plan option). Exclude specific plans by ID. Single-cycle plans now show headers correctly
  • NEW – Coupons: Coupon system with percentage/fixed discounts, usage limits, expiration, plan restrictions, reporting tab and CSV export. Coupons persist in browser when switching plans
  • NEW – Add free users to membership: Members meta box helper to create subscriptions from the Members list (free plans). Bulk Assign tool (Divi Membership → Bulk Assign) to assign free subscriptions by role, custom field, or user IDs
  • NEW – Upgrade/Downgrade plan switcher: Switch plans and billing cycles from the account membership page (Stripe). Same-plan cycle switch (e.g. monthly to yearly) and cross-plan switch. Per-plan setting to allow or exclude from switch modal
  • NEW – User Fields: Custom fields for users, shown on register form, account, and in admin
  • MOD – When there is exactly one membership and one billing cycle, the plan dropdown is no longer shown; the plan is auto-selected and the order summary is displayed immediately
  • MOD – Plan dropdown: When only one membership exists (with multiple billing cycles), the dropdown now shows cycle options only (e.g. Monthly, Annual) without an optgroup; optgroups are used only when there are multiple memberships
  • FIX – Order summary now shows the correct membership name and billing cycle when a single membership with multiple cycles is selected in the plan dropdown
  • MOD – Membership table: Actions column now uses a simple select dropdown in the account area
  • MOD – Cancel membership: Confirmation is now a custom modal (with message about losing access) instead of the browser popup; choosing “Keep membership” closes without cancelling
  • MOD – Membership account: all user-facing text (table headers, modals, buttons, messages) is now translatable for Spanish and other languages
  • FIX – Switch plan no longer fails with “Failed to start paid subscription”; plan switch now updates the local subscription correctly after Stripe succeeds
  • FIX – Renew Subscription modal: Payment methods (saved cards and Add New Card) now use the full width of the modal instead of appearing squashed on the left
  • FIX – Cancel confirmation: Removed native confirm() from frontend JS; only the custom modal is used (no browser popup)
  • FIX – Cancel modal now appears centered and above the site header
  • FIX – Cancel subscription no longer sends empty subscription ID (fixes 500 error)
  • FIX – Start Paid Now and other actions from the dropdown now work when selected
  • FIX – Cancel no longer throws a fatal error when the subscription was already cancelled or deleted in Stripe
  • NEW – Cancelled subscriptions now show a “Resubscribe” option in the actions dropdown (uses same renewal flow as Renew)
  • MOD – Billing address: Shown only when Stripe Legacy (v2) is enabled; hidden with Stripe v3
  • MOD – Card management: Add, remove, and set default cards in Stripe from the customer account
  • MOD – Signup form: Saved payment methods can be offered when re-signing up
  • MOD – Membership Page URL: New General > Endpoints setting for frontend membership slug (default “membership”)
  • MOD – Content Access: Setting “Who can view all content” (multiselect of roles) in Content Restriction; default Administrator only
  • MOD – Content Access: “Posts” enabled by default on first install. user_field removed from post types list. Clear notice when no post types enabled
  • MOD – Payment gateway validation: Visual success/failure indicators; key format validation (pk_/sk_)
  • MOD – License: Admin notice when no license key; local key cleared even if server rejects deactivation
  • FIX – Expired subscription emails are now sent only for subscriptions that are actually marked expired in the site, preventing incorrect “subscription expired” emails when Stripe shows the subscription as active (e.g. after renewal before webhook sync)
  • FIX – Subscription edit page now shows the sidebar so Subscription Actions (cancel, refund) are visible and the page layout is correct
  • FIX – Content Access: Type dropdown and enabled post types now save and display correctly with new settings
  • FIX – Register/Signup: No duplicate plans/options; plan dropdown HTML and optgroups fixed for select field style
  • FIX – Payment gateway switching and Stripe form display when multiple gateways enabled
  • FIX – Free trial registration when “Require Payment” is No; trialing members in admin list; trial date and PayPal/PHP errors
  • FIX – Plan switcher nonce and same-plan cycle options in modal
  • FIX – Coupon error messages when coupon does not apply to selected plan
  • FIX – Account page template loading (blank screen), account CSS for custom endpoint name
  • FIX – Content access single-rule save, login module save, start/next payment date display
  • FIX – User list pagination, license deactivation with expired orders
  • FIX – PHP 8.2+ compatibility, translation loading timing, various PHP warnings and fatal errors
  • FIX – Legacy options file: define plugin name so PHP no longer reports undefined variable or “headers already sent” when loading settings
  • FIX – Account membership table: raw PHP code no longer appears in the Actions column for active subscriptions
  • FIX – Switch Plan: fixed JavaScript syntax error so the Switch Plan button and confirm switch work correctly
  • FIX – Invoice download form now posts to the correct account URL (e.g. /divi-membership/generate-invoice) instead of site root
  • FIX – Invoice and account table now show the correct currency symbol (e.g. $5.00) instead of the raw code (e.g. usd5.00) when currency is stored in lowercase
  • MOD – Disabled legacy 21-step welcome tour on the settings page (it referred to old settings UI; new React settings are in use)
  • MOD – Account Design settings are now organized into tabs (Navigation, Content, Tables, Inputs, Buttons) for easier use
  • MOD – Module Conditions (Advanced → Conditions) are now documented and explained more clearly so you can more easily control who sees modules, sections, and rows based on membership access
  • FIX – Default colors for Account Design, Content Design, and Invoice Design now match legacy (grays and blue). Settings no longer appear red when not yet saved.

VERSION 1.3.0.3 – 11/10/24

  • MOD – Update to license validation

VERSION 1.3.0.2 – 10/10/24

  • FIX – Minor cases, fatal error when our server blocks the license check. Added code to avoid fatal error if the block happens and an empty response is returned
  • VERSION 1.3.0.1 – 08/10/24
  • MOD – Modified the check for license key to our website to only check every 24 hours if no key is added

VERSION 1.3.0 – 03/10/24

  • NEW ADDITION – Membership Badge. Add the text for the badge on the membership. Use the “User Item” module to display it for the user – “Item Type” -> “Membership Plan”. “Membership Content to show” -> “Membership Badge”
  • NEW ADDITION – Free Tier. Added “Free” to Billing Cycle Type for easier use.
  • MOD – User List – Added setting to only show users who have a membership
  • MOD – User List – Added option to load more posts using pagination.
  • MOD – User Item – Profile Link Endpoint, when you have a button/link to the members profile – you can choose “author” or “members” endpoint made by Divi Membership
  • MOD – Free Membership, will hide the payment gateways on the sign up and register forms
  • FIX – Fix Max Word Count for normal ACF field
  • FIX – Render url link tag for url type ACF field
  • FIX – Account url is not working when SG’s “Fix Insecure Content” is enabled

VERSION 1.2.0 – 02/05/24

  • NEW ADDITION – Custom Account Endpoints
  • MOD – User Item: new Type: Profile Link
    – Make it like a button
    – When logged out, you can hide it or change text to something else like “login”
  • MOD – User Item Bio – Max Word Count with read more link or just text
  • FIX – Divi Builder plugin compatible settings
  • FIX – Invalid Post Type issue
  • FIX – Restriction for page not working
  • FIX – PHP fatal error in Theme Builder in some cases
  • MOD – Add Redirect options for Login Module
  • FIX – Free Membership subscription issue
  • FIX – Duplicated Subscription issue for same plan
  • FIX – PHP warning
  • FIX – Free membership payment selection issue when navigated from pricing page

VERSION 1.1.0 – 02/02/24

  • NEW ADDITION – Added Zapier Integration for Created/Cancelled/Refunded Subscriptions
  • NEW ADDITION – Payment Error message handling on payment failed redirection page
  • NEW ADDITION – Added tool to validate Payment Gateway API keys to Payment Gateway settings
  • MOD – Membership Item:
    • Show currency symbol for regular and sale price
    • When on sale – show price, sale or price and sale (price crossed out)
    • Add new option for Payment Method required
  • MOD – User Item: Added option to show users membership
  • MOD – Change Exclude Posts -> Exclude Users label in User List Module
  • MOD – 2 column layout in registration module
  • MOD – Option to show/hide the company field in registration module
  • MOD – Added password confirmation field to registration module
  • MOD – 2 column layout in signup module
  • MOD – Option to show/hide the company field in signup module
  • MOD – 2 column layout in login form
  • FIX – Theme Builder header and footer not working in account area
  • FIX – Cycle switcher:
    • Default State not working
    • Active/inactive text not toggling when changing switcher toggle
    • Padding not working on module
  • FIX – Register & Sign Up forms: Labels and placeholders show/hide to be consistent amoung all fields
  • FIX – User Item HTML Tag was not working
  • FIX – Getting post types created by ACF pro plugin
  • FIX – Stripe js conflict issue
  • FIX – Subscription status issue for one-time payment
  • FIX – Member section not showing in plan page
  • FIX – Generate Invoice issue
  • FIX – Divi Form Builder upload is not working when Membership is activated
  • FIX – Login Module is not working
  • FIX – PHP error

VERSION 1.0.1.2 – 06/12/23

  • PHP error

VERSION 1.0.1.1 – 06/12/23

  • Licence Update Fix

VERSION 1.0.0 – 05/12/23

  • Initial Beta Release