How to Accept Stripe Payments With a Divi Form

A copy-and-adapt recipe for taking deposits and payments with a Divi form and Stripe, with no shop plugin.

Divi booking form with a calculated 225 dollar deposit next to Stripe hosted checkout

To accept Stripe payments with a Divi form, you need a form module with payments built in, because Divi's own Contact Form has no payment option. With HappyDivi Form Pro, you turn on Require Payment, set a price or calculated amount, and visitors pay on Stripe's secure checkout.

A photographer taking a booking deposit does not need a full shop. Neither does a consultant selling one call. Think of this guide as a recipe: we will build a booking form that charges a 25% deposit, then show how to adapt it.

What You Need

  • HappyDivi Form Pro. Payments and the Calculated field are Pro features.
  • A Stripe account, plus its test keys for rehearsing.
  • About 20 minutes.

Step 1: Connect Stripe

Go to HappyDivi Form → Settings → Payments, tick Enable payments, keep Mode on Test and paste your test keys. Saving a secret key also tries to create the Stripe webhook for you. On a local site, Stripe cannot reach your server, so you would use the Stripe CLI instead.

HappyDivi Form Payments settings with Enable payments, Stripe gateway, Test and Live mode and currency

Master switch, gateway, mode and currency.

Step 2: Add Priced Options and a Deposit Total

Build the form in the Visual Builder:

  1. Add Your Name and Email Address fields.
  2. Add a Select Dropdown called Choose a Package with the Field ID package. Give each option its own price: 500, 900 and 1,500.
  3. Add a Calculated field called Deposit Due Today with the Field ID deposit, and set its formula to {package} * 0.25.
Calculated field formula package times 0.25 in the Visual Builder beside a Divi form showing a 225 dollar deposit

Choose the $900 package and the visitor sees $225.00 update live.

Step 3: Turn On Require Payment

Select the form module and open Form Settings. Near the bottom:

  1. Turn on Require Payment.
  2. Set Amount to From a form field. For one set price, choose Fixed price instead.
  3. Set Amount Field to your Deposit field.
  4. Write a Payment Description, such as "Booking deposit". Visitors see it at checkout.
Require Payment settings beside the Stripe hosted checkout showing a 225 dollar booking deposit

The $900 package reached Stripe's checkout with the correct $225.00 deposit.

Step 4: Test Before Going Live

Submit the form and pay with Stripe's test card: 4242 4242 4242 4242, any future expiry date and any three-digit CVC. No real money moves. Then check that the order shows as Paid and that the emails arrive. Only then switch Mode to Live and add your live keys.

HappyDivi Form Orders page showing a 225 dollar Stripe test order with Paid status and a Refund button

Our test: a $225.00 deposit paid with the 4242 test card, shown as Paid with a Refund button.

What we tested

We ran this payment in Stripe's sandbox on a local site. Stripe cannot send webhooks to a local site, so the return page said it was still confirming the payment until we clicked Check Status on the Orders page. On a public site, the webhook does this for you. Test once on your own site to confirm it.

Seeing a second currency at checkout?

Stripe can offer some visitors a price in their local currency next to yours. In our test, a visitor in Bangladesh could choose BDT or $225.00. You control this in your Stripe settings, under Adaptive Pricing.

What Happens When Someone Pays

Four step flow: form submitted, Stripe checkout, signed webhook, then emails sent

The entry is saved first, and emails wait for confirmation.

  • The price is worked out on your server. A visitor who edits the amount in their browser still pays the right price.
  • Card details never touch your site. Visitors pay on Stripe's hosted page.
  • Emails wait for payment. An abandoned checkout never sends a false "booking confirmed".
  • A safety net. If a webhook is missed, an hourly job re-checks payments still pending after about 25 hours. You can also click Check Status on the Orders page at any time.
  • Refunds in WordPress. Payments appear on the Orders page, where you can refund with one click.

Variations on the Recipe

FormPrice setup
Consultation bookingFixed price
Service quote with depositCalculated total with a percentage
Event ticketsPrice per ticket times a Number field
DonationRadio amounts, or a Number field
Package with add-onsPriced Select plus priced Checkbox options

Pair any of these with conditional logic so each package only shows its own add-ons.

When to use WooCommerce instead

If you sell many products, need a cart, shipping or stock control, a shop plugin is the better fit. A payment form suits one-off bookings, deposits and donations.

Frequently asked questions

Can the Divi Contact Form module take payments?

No. Divi's own Contact Form has no payment option. You need a form module with payments built in, or a shop plugin such as WooCommerce.

Is it safe to take card payments from a form?

With hosted checkout, card details are entered on Stripe's own page and never pass through or get stored on your website.

Does HappyDivi Form support PayPal?

Not yet. Stripe is supported today, and PayPal shows as coming soon in the settings.

Are payments in the free version?

No. Stripe payments and the Calculated field are part of HappyDivi Form Pro.

From HappyDivi

HappyDivi Form

Saves every entry inside WordPress, so a lead never depends on an email arriving.

  • 22 field types, multi-step forms and conditional logic
  • Native Divi 5 module

Free plan available

From HappyDivi

HappyDivi Form

Saves every entry inside WordPress, so a lead never depends on an email arriving.

  • 22 field types, multi-step forms and conditional logic
  • Native Divi 5 module

Free plan available

Get the next Divi 5 guide

New guides and plugin news from HappyDivi. Unsubscribe any time.

Rubait Hasan

Written by

Founder & Product Builder

Rubait has been building for Divi since 2017. He founded DiviZoom in 2019, sold it in 2022, and started HappyDivi when Divi 5 rebuilt the builder from the ground up. He writes the code behind HappyDivi's plugins and answers support himself.

More articles by Rubait

From HappyDivi

HappyDivi Form

Saves every entry inside WordPress, so a lead never depends on an email arriving.

  • 22 field types, multi-step forms and conditional logic
  • Native Divi 5 module

Free plan available

Get the next Divi 5 guide

New guides and plugin news from HappyDivi. Unsubscribe any time.