Payment failed or Stripe form not showing
Symptom
Payments fail at checkout, Stripe fields do not appear on Registration Form or Signup Form, or renewals and subscription status changes do not reach the site.
Applies To
- Current Divi Membership release with Stripe (default or Legacy) enabled
- Registration Form and Signup Form using Stripe
Likely Causes
- Invalid or missing Stripe keys — The plugin validates that keys start with
pk_(publishable) andsk_(secret). Wrong keys, test/live mismatch, or extra spaces cause validation to fail and the form may not load. - Stripe mode mismatch — Using Stripe Legacy (v2) when the account or integration expects v3 (Elements), or the opposite; or mixing test keys with live mode.
- Webhook not verified — The Stripe endpoint or its
whsec_…signing secret is missing, so renewals, failures, refunds, and status changes are rejected. - JavaScript or conflict — A theme or plugin may block Stripe’s script; the form container may be hidden or not rendered.
Fix
Step 1: Check Payment Gateways settings
- Go to WordPress Admin → Divi Engine → Divi Membership.
- Open Payment Gateways.
- Confirm Stripe is enabled and that Publishable key and Secret key are set.
- Ensure keys are correct for your environment (test keys for testing, live keys for production) and that they start with
pk_andsk_with no leading/trailing spaces.
Step 2: Stripe v3 vs Legacy
- In Payment Gateways, find Enable Stripe Legacy Mode (or similar).
- Stripe v3 (default): Uses Stripe Elements; multiple payment methods (e.g. card, Klarna, iDEAL); no billing address unless you add it.
- Stripe Legacy (v2): Uses the older integration; billing address is shown. Enable only if you need Legacy behaviour.
- Save settings and try checkout again.
Step 3: Validate and re-enter keys
- In Stripe Dashboard, copy the Publishable key and Secret key again (test or live).
- Paste them into Divi Engine → Divi Membership → Payment Gateways with no extra spaces or line breaks.
- Save. If the plugin shows a validation error, correct the keys until validation passes.
Step 4: Check the webhook
- In Stripe Dashboard, confirm an endpoint exists at
https://yoursite.com/?payment_webhook=stripe. - Open the endpoint, copy its Signing secret beginning
whsec_, and paste it into Webhook Signing Secret under Payment Gateways. - Save and send a Stripe test event. A secret from another endpoint or the wrong test/live environment will fail verification.
Step 5: Test in a clean environment
- Temporarily switch to a default theme (e.g. Twenty Twenty-Four) and disable other plugins except Divi and Divi Membership.
- Load a page with Registration Form or Signup Form and check if the Stripe form appears.
- If it appears, re-enable theme and plugins one by one to find the conflict.
Verify
- Open a page with Registration Form or Signup Form; the Stripe payment section should be visible.
- Run a test payment (Stripe test card
4242 4242 4242 4242) and confirm the payment completes or that any error is clear and expected. - Send a Stripe test webhook and confirm the site accepts it.
Collect for Support
If the fix does not work, collect:
- Whether you use Stripe v3 or Stripe Legacy and the exact error message (if any) on the page or in the browser console (F12).
- That you are using valid
pk_/sk_keys, whether they are test or live, and whether awhsec_…signing secret is saved. Do not share the secret itself. - WordPress version, Divi Membership version, and list of active plugins and theme.
- Any JavaScript errors in the browser console when loading the checkout page.
What's Next
- License not activating or notice persists — License and activation issues.
- Payment Gateways — Keys, webhook, signing secret, PayPal, and bank transfer.
- Registration Form — Registration and payment configuration.