A modern, secure Stripe payment form you can drop onto any page with a shortcode. Customers pay through Stripe's hosted checkout — card details never touch your site. Here's how to install it, connect Stripe and go live.
Add your Stripe Secret API key.
Add the endpoint and paste the signing secret.
Drop the shortcode onto any page.
Demfilz Payment Forms for Stripe adds a clean, mobile-friendly payment form to your WordPress site that you embed anywhere with a single shortcode. When a customer submits the form, they're sent to Stripe's hosted checkout to enter their card details and pay. Your site never sees, handles or stores a card number — Stripe does all of that.
Use it to take invoice payments, deposits, bookings, donations or one-off charges, with a fixed amount or an amount the customer enters. Every successful payment is recorded in WordPress, confirmed by a Stripe webhook, and emailed to you.
You'll need: a WordPress site (5.6+) with PHP 7.4+, and a Stripe account. No Stripe PHP SDK or extra libraries are required — the plugin talks to Stripe over its standard API. Start with your test keys, then switch to live keys when you're ready.
Plugins → Add New → Upload Plugin.Stripe Payments → Settings.Stripe Payments → Settings.sk_test_…) while you set things up, then swap in your live key (sk_live_…) to take real payments.The webhook is how Stripe tells your site, reliably, that a payment succeeded — even if the customer closes the tab. It's strongly recommended.
checkout.session.completed.whsec_…).aud). This can be overridden per form with a shortcode attribute.Add the shortcode to any page or post — in the block editor, use a Shortcode block (or a Custom HTML/Classic block):
[dpfs_payment_form]
That's the whole setup. The form now renders on that page, and payments will start flowing into the dashboard.
All attributes are optional. Use them to tailor each form — for example, lock a fixed amount on an invoice page, or set the currency for a specific product.
title | Heading shown above the form. |
|---|---|
description | A short line of intro text under the title. |
button | Custom label for the submit button (e.g. "Pay now"). |
amount | A fixed amount. When set, the amount field is locked to this value. |
currency | 3-letter currency code for this form, e.g. aud. Overrides the default. |
amount_label | Custom label for the amount field (e.g. "Invoice total"). |
theme | light, dark or auto — how the form styles itself. |
Example — a fixed $150 AUD invoice payment with a custom heading:
[dpfs_payment_form title="Pay your invoice" amount="150" currency="aud"]
The embedded form collects, before sending the customer to Stripe:
amount attribute.Under Stripe Payments → Payment Summary you get an at-a-glance view of what you've taken:
A payment is marked successful when Stripe confirms it via the checkout.session.completed webhook, with an on-page confirmation as a fallback if the webhook is briefly delayed. A notification email is sent at the same time.
No. The plugin communicates with Stripe over its standard API and bundles everything it needs — there's no Composer step and no separate library to install.
It's strongly recommended. The webhook is the reliable signal that a payment succeeded, even if the customer closes the tab on the way back. There's an on-page fallback confirmation, but the webhook is what makes the records dependable, so you should set it up.
Entirely on Stripe's hosted checkout. Your WordPress site never sees, processes or stores card numbers — it only records that a payment was made, along with the details the customer entered on your form (name, email, reference and so on).
Any currency your Stripe account supports. Set a site-wide default in Settings, and override it per form with the currency attribute using a 3-letter code such as aud, usd or gbp.
This plugin is independent and not affiliated with, endorsed by, or sponsored by Stripe. "Stripe" is a trademark of its respective owner.
Yes — Demfilz Payment Forms for Stripe is a standalone payment form plugin, so you don't need WooCommerce or any ecommerce setup. All it requires is WordPress 5.6+, PHP 7.4+ and a Stripe account, with no Stripe PHP SDK or extra libraries to install. You drop the form onto any page with a shortcode and customers pay through Stripe's hosted checkout.
Place the [dpfs_payment_form] shortcode on any page or post — in the block editor, use a Shortcode block. Optional attributes tailor each form: for example, [dpfs_payment_form title="Pay your invoice" amount="150" currency="aud"] renders a form with a custom heading and a locked $150 AUD amount. The form then renders on that page and payments flow into the plugin's dashboard.
Card details are entered only on Stripe's hosted checkout — never on a form hosted by your site. Your WordPress site never sees, processes or stores card numbers, which keeps your PCI scope to a minimum. Incoming webhooks are verified with the signing secret, so only genuine events from Stripe are trusted.
Use Stripe's test mode: paste a test Secret key (sk_test_…) into Stripe Payments → Settings while you set things up, then swap in your live key (sk_live_…) when you're ready to take real payments. That lets you run the whole flow — the form, the hosted checkout and the webhook — without taking real money.
Yes — the plugin suits invoice payments, deposits, bookings, donations and one-off charges. Leave the amount field open so donors enter what they like, or lock it to a fixed value with the amount shortcode attribute. Every successful payment is recorded in WordPress, confirmed by a Stripe webhook and emailed to you.
Copy the Webhook Endpoint URL shown on the plugin's settings page, then in the Stripe Dashboard under Developers → Webhooks click Add endpoint and paste that URL. Subscribe to the checkout.session.completed event, then copy the endpoint's signing secret (whsec_…) into the plugin's Webhook Signing Secret field and save. The webhook is the reliable signal that a payment succeeded, even if the customer closes the tab.
It's free on the official WordPress.org plugin directory (wordpress.org/plugins/demfilz-payment-forms-for-stripe). In your WordPress admin go to Plugins → Add New, search “Demfilz Payment Forms for Stripe”, click Install Now, then Activate. A Stripe Payments item then appears in the admin menu where everything is configured.
Payments, shipping, integrations or something custom — tell us what you need and we'll come back with a plan and a fixed quote.