You recorded a six-minute preview of your Saturday workshop. A viewer watches it, hears the $49 price at minute four, and decides to book. Then the video asks them to scroll, click a link, wait for a new page, and find the payment form.
Each of those steps is a place to drift. A notification lands, the page loads slowly on mobile data, or the viewer plans to come back later and never does. It’s form abandonment, spread across two pages. Call it decision distance: the steps between “I want this” and “I paid.”
A separate payment page still has a job. It ranks in search and holds the full details, and Fluent Forms will build a styled checkout page for it. If you sell many products, a full cart like FluentCart fits better. For one offer in one video, the checkout belongs where the decision happens.
This guide shows how to accept payments in video with Fluent Forms and FluentPlayer. You build a Stripe payment form, one-time or recurring, place it over the video at the price moment, and test it. Last comes FluentPlayer Pro, for viewers who close the form.
TL;DR
- Fluent Forms free takes one-time and recurring Stripe payments with a 1.9% fee, and Fluent Forms Pro removes the fee
- FluentPlayer’s free Fluent Forms layer shows your payment form over the video at the second you choose
- One setup covers workshop seats, template packs, consultation deposits, donations, and monthly plans
- The buyer sees a confirmation message in the player and gets an email receipt, and you get an admin email
- FluentPlayer Pro adds a banner for viewers who skip the form, a buy section below the player, and retention data
Payment Types for a Video Payment Form
An in-video form is still a Fluent Forms form, so every payment field you already use works inside the player. The field you pick decides what the viewer pays:
| Payment type | Fluent Forms field | Example offer |
| One-time, fixed price | Payment Item (single) | $49 seat in a live workshop |
| One-time, choice of options | Payment Item (radio or dropdown) | Seat only, or seat plus recording |
| Quantity | Payment Item with Item Quantity | Three template packs for a team, set up like an order form |
| Viewer sets the amount | Custom Payment Amount | A donation with impact units after a fundraising video |
| Recurring | Subscription | Monthly coaching plan or membership |
Stripe payments and the Subscription field are part of the free Fluent Forms plugin, with a 1.9% fee on each transaction. Fluent Forms Pro removes the fee, so you pay only Stripe’s own charges, and adds the other payment gateways Fluent Forms supports, including Stripe, PayPal, Paystack, Mollie, Paddle, Authorize.net, Razorpay and Square.
For in-video checkout, turn on Embedded Checkout in the Stripe settings of the Payment Method field. The card input then sits inside the form, with no redirect to Stripe’s hosted page. A redirect would send the viewer out of the video. Still choosing a gateway? Compare Stripe vs PayPal first.
Use Cases for a WordPress Video Payment Form
Any offer you explain in one video and sell in one form works here. Each case below names the payment field to use and the second to show it.
Workshop or webinar seats
Name the price, then show the form. In the workshop preview, the layer opens right after “Seats are $49 and we cap the class at 12.” Add a dropdown option for a recording-only ticket, so viewers who miss the live date still have something to buy. The same fields power any event registration form.
Template and asset packs
A walkthrough of a Notion template pack or a set of Lightroom presets shows the product working. Put the form after the strongest demo, not at the end. Deliver the files the way you add downloadable PDFs to form confirmations, so buyers get them inside the player.
Consultation deposits
A coach or consultant explains how a strategy session works, then asks for a deposit to book it. A fixed $50 Payment Item holds the slot. If you already take bookings through a WordPress booking form, the same payment fields collect the deposit inside the video, and the FluentBooking integration handles the calendar.
Donations and fundraising
A nonprofit campaign video tells one story and then asks for support. A Custom Payment Amount field, with a minimum and maximum you set, turns the layer into a donation form. Show it at the peak of the story, while the reason to give is on screen.
Memberships and monthly plans
A video introducing a monthly coaching group fits the Subscription field. Set the price, billing interval, and an optional signup fee or trial. For a full course with lessons and access control, FluentCommunity with FluentCart paywalls is the better fit, as in selling a paid course.
How to Build the Payment Form in Fluent Forms
Build the form first, outside the video. A short form works best inside a player, so keep it to what the payment needs. Here is the setup for the $49 workshop seat.
Turn on payments in Fluent Forms
Go to Fluent Forms > Global Settings > Payment and check Enable Payment Module. Payment fields stay hidden in the form editor until this box is on. The payment integration guide covers the currency and business details on the same screen.

Connect Stripe in test mode
Open Payment Methods, pick the Stripe tab, and check Enable Stripe Payment Method. Choose Test Mode, then connect your Stripe account. Test mode runs a full purchase later without real money. The Stripe payment form guide covers every Stripe setting in detail.

Build the workshop payment form
Create a new blank form and add Name, Email, a Payment Item, and the Payment Method field. Set the Payment Item price to $49 and label it with the workshop name. Skip anything you’ll collect after the sale. New to the builder? Start with how to create a form in WordPress.

In the Payment Method field, keep only Credit/Debit Card (Stripe) and leave Embedded Checkout checked. The card input then stays inside the form, so the buyer never leaves the video for a Stripe page.

Write the confirmation message
Under Settings & Integrations > Confirmation Settings, keep Same Page and replace the default text with a same-page confirmation message for buyers. Keep it to two lines, because the buyer reads it inside the video frame. Ours says the seat is booked and points to the inbox.

Send emails after payment, not on submit
Open Email Notifications and edit the email notification. Under Send Email, pick After Payment Success, so the email goes out only once Stripe confirms the charge. Add a second notification to the buyer’s email field. If emails land in spam, set up FluentSMTP.

For other gateways and card options, see how to accept credit card payments in WordPress.
Add the Payment Form to Your Video With FluentPlayer
FluentPlayer is a WordPress video player from the same team as Fluent Forms. Its Fluent Forms layer is part of the free FluentPlayer plugin, and it places any of your forms over the video at a time you set.
Add the FluentPlayer block
Install FluentPlayer from Plugins > Add New, then add a FluentPlayer block to the page with your offer video. Pick a file from the Media Library, a YouTube or Vimeo link, or an existing FluentPlayer media item. You can also add any video by pasting a URL.

Add a Fluent Forms layer
In the block settings, open Interactive Layers and click Add Layer. Choose Fluent Forms from the layer types. CTA and Hotspot carry a lock icon on the free plan, while Fluent Forms and Email Capture are open. The complete FluentPlayer guide walks through every layer type.

Pick the payment form
Under Content, give the layer a short title, such as “Book your seat, $49,” and select the workshop form. The preview on the left shows the form over the video right away, along with a Skip button for viewers who aren’t ready to buy.

Set the offer moment
Under Display, enter the time where you name the price. In the workshop preview, it’s 4:00, right after “Seats are $49 and we cap the class at 12.” When playback reaches the mark, the player pauses and the form appears. Timing is the core idea behind interactive video in WordPress.

Run a test purchase
With Stripe in test mode, preview the page, play to the offer moment, and pay with a Stripe test card. Confirm the message appears in the player and both emails arrive. If the payment fails on a cached page, check why payments break with caching plugins.
With FluentPlayer Pro, each layer also gets a Conditions panel. It uses the same Field, Operator, and Value rules as Fluent Forms conditional logic, so the payment form shows only to the viewers you pick.

What FluentPlayer Pro Adds to In-Video Payments
The free layer takes the payment. FluentPlayer Pro handles the viewers who don’t pay at the offer moment, and tells you how many reached it.
CTA Banner for viewers who skip the form
Some viewers close the form and keep watching. A CTA Banner later in the video gives them a second, lighter ask: a short line and a button linking to your payment page. They decide on their own time, without a full form in the way.
Timed Content as a buy section below the player
Timed Content shows a WordPress block area under the video once playback passes a set time. Put the price, what the seat includes, and the payment form there. Viewers who prefer to finish the video first find the offer waiting below it.
Analytics to see who reaches the offer
The offer only works for viewers still watching when it appears. FluentPlayer’s Audience Retention chart shows what share of viewers is left at each point. If most have gone before your timestamp, move the form earlier. To follow up with the viewers who reach it, set up video-triggered automations.

Put the Offer and the Checkout in One Place
Most offer videos already do the hard part. They explain the problem, show the result, and name a fair price.
What’s left is the distance the viewer travels after deciding. Add the payment form you built in Fluent Forms as a FluentPlayer layer. When you want to reach the viewers who skip it, FluentPlayer Pro adds the banner and the retention data.
Frequently Asked Questions
How do I accept payments in video on WordPress?
Build a payment form in Fluent Forms, then add it to your video as a FluentPlayer Fluent Forms layer. Set the layer to appear at the second you name the price. The viewer enters card details in the embedded Stripe field and pays without leaving the player.
Is the Fluent Forms video layer free?
Yes. The Fluent Forms layer is part of the free FluentPlayer plugin, and Fluent Forms free takes Stripe payments with a 1.9% fee per transaction. Fluent Forms Pro removes the fee and adds more gateways. Layer Conditions, CTA layers, and Timed Content need FluentPlayer Pro.
Does the video pause when the payment form appears?
Yes. When playback reaches the layer’s start time, the player pauses and shows the form. Viewers who aren’t ready to buy click Skip and keep watching, so the offer never blocks the rest of the video.
Which payment gateway works best inside a video?
Stripe with Embedded Checkout turned on. The card field sits inside the form, so the viewer stays in the player through the whole payment. A gateway sending buyers to its own hosted checkout page breaks the in-video flow, because the viewer leaves the video to pay.
Do recurring payments work inside the video?
Yes. Add the Subscription field instead of a Payment Item, then set the price, billing interval, and an optional signup fee or trial. Configure the Stripe webhook in Fluent Forms once, or renewal payments won’t update in your entries.
When do the buyer and admin emails go out?
Set each email notification to send After Payment Success. The buyer gets a receipt once Stripe confirms the charge, and you get an admin email at the same moment. Notifications set to After Form Submit fire before payment and confirm sales which never completed.
How do I show the payment form to some viewers and not others?
Use the layer’s Conditions panel, a FluentPlayer Pro feature. It follows the same Field, Operator, and Value rules as Fluent Forms conditional logic, so the payment form appears only for viewers who match your rule.