How to Easily Accept Payments in WordPress

You don’t need a complicated ecommerce service to accept payments in WordPress!

You might not think about WordPress forms when you think about how to accept payments with WordPress. Or think forms are just too basic to handle more complex needs, like serving as the backbone for an entire athletic team. Don’t underestimate what you can do with your forms!

No matter what you want to accept payments in WordPress for, there’s a way to do it that doesn’t require a ton of technical know-how.

WordPress payment form that lets visitors accept payments in WordPress with PayPal, Apple Pay and Google Pay

Getting payments set up probably sounds super complicated if you’ve never done it before. You’ll find lots of options searching through Google.

You may have already discovered big names like WooCommerce, Shopify, and Square. They’re incredibly good services for big marketplaces, but they’re also incredibly complicated.

You don’t have to be a technical genius to start accepting payments. You don’t have to be a developer. Or hire one.

But you sure can look like one!

What do you want to do?

How to use a WordPress form to accept payments for a single item

Do you have just one thing you need to accept payment for? Price and quantity always going to be the same? You have it easy.

All you really need to do is communicate what you’re charging for. That’s really easy to do stylishly with a simple HTML field. Here’s a quick example:

single item season membership example form

From there it’s just connecting to the right service to collect the payment.

Want to accept payments with PayPal? Credit cards? Jump here to find out how.

Want this to be a recurring payment that happens every month? Year? You can do that too!

How to offer variations of an item at different prices

Offering variations (like large, medium, small for example) at different prices sounds like it could get complicated. No one could blame you for thinking that, but it really isn’t.

You won’t need to code a single thing. It’s a 3 step process and everything you need is right in front of you.

1. Add a field for your customers to make their selection

Radio List and Select fields are the perfect way to offer variations of a single item. You can also use a Select Image field if you want a picture to accompany each option! Each variant can be assigned its own price:

example of a radio field used to sell a single item (season pass) using list options for variants (spring, summer, fall, winter) at different price points for each variant

In the image above of a Radio List field, the Label column is what your customers will see. The Value column is what you’ll see in submissions, and the Calc Value column is the price the customer will be charged for each item.

While you’re in there, give the field a label that asks the question (“Choose your pass”) and put the price right in each option’s label, like “Day Pass ($20)”. Someone using a screen reader then hears the question first and the price with every option. The W3C explains why it helps to group related options under one clear label.

2. Create a calculation where the “total” will live

Click on the Advanced tab of your form builder. Select Calculations. Add a new Calculation, and use the little sandwich icon to add the field you just created.

calculation with radio list field added

3. Choose how your customers can pay

If this is all you need to offer, you’re ready to connect your form to your payment service of choice and begin collecting payments.

Want to accept payments with PayPal? Credit cards? Jump here to find out how!

Need to include 2 or more items with variation or pricing differences? Skip down to this section now.

Need to offer quantities of an item? It’s just 2 simple steps.

There are 2 ways you can do this. Is your item always going to be the same price? Will there be different variations & prices of the item?

My item will always be the same price

Step 1: Add a Number field to your form. This will be where your customers select the quantity they need.

Step 2: Create a calculation and click on the Advanced tab of your form builder. Select Calculations.

Add a new Calculation, and use the little sandwich icon to add your Number field. After the number field (or before it), add the price. Now place an * between them to multiply them together.

example calculation using a number field for quantity multiplied by a set price

That’s all there is to it. Your calculation can now be used as your total, and you’re ready to connect your form to your payment service of choice and begin collecting payments.

Want to accept payments with PayPal? Credit cards? Jump here to find out how!

Need to include 2 or more items with variation or pricing differences? Skip down to this section now.

I have different variations/prices of my item

Step 1: This section above describes how to add a field offering different variations/prices. With that in place, add a Number field for the customer to indicate the quantity they need.

Step 2: Create a calculation and click on the Advanced tab of your form builder. Select Calculations.

Add a new Calculation, and use the little sandwich icon to add both your item and the Number field. Place an * between them to multiply them together.

example calculation that will multiply two fields to arrive at a total to accept payments in wordpress

That’s all there is to it. Your calculation can now be used as your total, and you’re ready to connect your form to your payment service of choice and begin collecting payments.

Want to accept payments with PayPal? Credit cards? Jump here to find out how!

Here’s how to get a total price from several different items or selections

Need a single total price from several different items or selections your customer makes? You don’t even need to use math. Your WordPress form will do it for you.

There are just 3 steps to get started accepting payments in WordPress!

1. Add fields where users can make their selections

Any of the list fields will work for this. Here are your options:

  • Single Checkbox: let customers select a single item
  • Checkbox List: let customers select one or more items
  • Select List: let customers select a single item from a dropdown
  • Multi-Select: let customers select one or more items from a dropdown
  • Radio List: let customers select a single item from a list
  • Select Image: let customers select one or more items with an image

Functionally it doesn’t matter which ones you pick, the steps to make this work are the same.

What’s important is that you set a Calc Value for each list option that’s equal to that option’s cost. Those values will be used to determine the total in the next step.

demo of a checkbox list field offering different selections at different prices. prices are represented by the calc value setting

The Label column is what your customers will see. The Value column is what you’ll see in submissions, and the Calc Value column is the price the customer will be charged for each item.

2. Create a calculation where the “total” will live

Click on the Advanced tab of your form builder. Select Calculations. Add a new Calculation, and use the little sandwich icon to add the fields you just created. The below example shows 3 fields added together to determine the total:

example calculation adding the value of multiple fields

Calculations support basic math rules & respect order of operations: parentheses > exponents > multiply & divide > add & subtract.

Want discounts, a running total or more math than that? Our guide to building totals with calculations goes deeper.

3. Choose how your customers can pay

You’re now ready to connect your form to your payment service of choice and begin collecting payments. You have a number of options for accepting payments with WordPress: PayPal, Stripe, Authorize.net and more. See below for details.

Accept PayPal, credit cards, Venmo payments & more with your WordPress form

Already moved through any of the sections above? You now have a WordPress form that customers can use to make their selections. All that’s left is actually collecting payment when the form submits.

You can use your form to accept credit card payments, PayPal payments, Venmo, Apple Pay, Google Pay, even bank debit.

If you already have a payment gateway of choice, we offer secure integrations with:

Otherwise, your best bet is to choose based on what type of payments you want to collect.

Connect your form for one-time payments

image of the paypal brand logoNinja Forms partners with PayPal to provide the best possible experience from form creation to payment confirmation. Using the PayPal Checkout add-on for accepting payments gives you the greatest number of payment options:

  • PayPal
  • PayPal Credit
  • PayPal Pay Later
  • Credit cards and debit cards, entered right on your page
  • Venmo
  • Apple Pay and Google Pay
  • Bank payments popular in Europe, like SEPA direct debit, iDEAL, Bancontact, BLIK and Przelewy24

Your customers can pay with their phone now. Apple Pay shows in Safari on supported Apple devices once your domain is registered in your PayPal Business account, and Google Pay shows wherever Google says the visitor is ready to pay. Our PayPal Checkout guide walks through the whole setup.

You can also easily set up Stripe, Authorize.net, and Elavon for accepting one-time form payments.

Stripe sends your customer to its own hosted checkout page to pay, then brings them back to your site. Here’s how to accept payments with Stripe in WordPress, step by step.

Already have an Authorize.net merchant account? The Authorize.net add-on takes the payment in a popup right after the form is submitted, with no trip to a separate checkout page. It handles recurring billing too: the interval (days or months), the number of payments and an optional trial period all live inside the action.

Sandbox mode lets you run test payments before you go live, and the Authorize.net setup docs cover connecting your account. The Elavon add-on also takes payment inline, with no redirect.

Need Mollie for its European payment methods? Paying through Mollie works through our Zapier add-on, and here’s how to accept payments with Mollie from your form.

Whichever you choose, follow the documentation for that add-on (PayPal Checkout, Stripe, Authorize.net, Elavon or Recurly) to onboard to your new or existing merchant account. Once you’re connected, you will now have an action for that add-on under the Emails & Actions tab of your form builder. Just click to add!

image of the paypal checkout add-on action present in the actions tray of the ninja forms builder

Once added, click the action in the list to open and configure it. If you’re using PayPal, first choose the payment options you want to enable from the list under Enable Payment Options.

PayPal Credit, Pay Later and Guest Checkout (the card fields) start on. Apple Pay, Google Pay, Venmo and the bank methods start off, so switch on the ones you want. Switch on Apple Pay and the builder reminds you it won’t appear at checkout until your domain is verified.

PayPal Checkout action settings in the Ninja Forms builder, with Get Total From set to Calculation and the Enable Payment Options toggles showing Apple Pay and Google Pay switched on, plus the Apple Pay domain verification notice.

Next check out the Get Total From setting. This is where you determine the amount that gets sent to your chosen service.

Get Total From gives you three options:

  1. Fixed Amount
  2. Field
  3. Calculation

If the total will always be the same, select Fixed Amount and then enter the amount. When the form is submitted, this amount will be charged every time.

Field will take the total from any single valid field on the form such as a Number or Radio List field. This option allows your customers to set their own payment amount (e.g. Number field) or choose from list options with prices set by you.

Calculation will let you select a calculation value to be used for the total (see our Calculations doc for details). The calculation option lets you charge different prices per unit, apply discounts, and much more!

Using a calculation? Show the total on the form, too. Add an HTML field with your calculation’s merge tag in it (like Order total: ${calc:order_total}), and it updates as your customer picks their options.

Once they submit, the PayPal buttons and card fields take the form’s place without repeating the amount. So the form is their chance to check the total and fix a mistake before they pay.

Wondering what happens if someone submits and never pays? The submission is still saved, and its Edit screen under Submissions shows the payment status, so you can tell paid entries from unpaid ones. In our testing, the email and success message went out only after the payment completed.

Just select the option you need and you’re ready to start accepting payments in WordPress!

Set up recurring or subscription billing with Stripe or Recurly

You can set up recurring payments within your Stripe or Recurly accounts. You can then connect your form to that recurring payment plan using either the Stripe add-on or Recurly add-on.

With Stripe, you’ll find a Recurring Payment Plan ID setting under the Advanced section of the Collect Payment action. Just enter the plan ID from your Stripe account there. All payments from this form will be processed in that account.

Our Stripe guide shows how to sell a subscription with Stripe.

With Recurly, there’s a Recurly action that you’ll add to the form. You just enter the plan code from your Recurly account there, and you’re set.

On Authorize.net? Like you read above, recurring billing lives right inside its action.

What does it cost to accept payments in WordPress?

Two things cost money when a form takes payments: the processor that moves the money, and the add-on that connects your form to it. The Ninja Forms plugin that builds the form is free.

Your payment processor charges a fee on every payment. It’s normally a percentage plus a small fixed amount, and it changes with the country, the card type and the currency, so check PayPal’s fees or Stripe’s pricing for your numbers.

Our PayPal Checkout and Stripe add-ons don’t add any fees of their own on top of PayPal’s or Stripe’s standard processing rates. The processor’s fee is the only cost that grows with your sales.

On our side, you pay for the payment add-on. Each one is sold on its own or comes as part of a Ninja Forms membership, and you can see them all on the payment add-ons page.

Going with Authorize.net, Elavon or Recurly? Your merchant account or processor sets its own fees there, so check them before you choose.

Accept payments in WordPress from any form, anywhere on your site!

If you’ve read through the sections above that are relevant to your needs, you can now build a WordPress form that will accept payments for just about anything. Unless you’re building a massive online store, there’s very little reason to invest the time it takes to learn and maintain a complicated ecommerce service!

Comments are below, and your needs drive the future of the plugin. What other payment gateways or features would you like to see for Ninja Forms? Explore our existing add-ons and membership options to see what’s already available!

Try Ninja Forms Today

Always free, with premium features available through our memberships.

24 Comments

    1. Sir Llama,

      – Add a second Collect Payment action to the form and set it to PayPal
      – Place a Radio List field with an option for Stripe and another for PayPal to let your customers indicate their choice
      – Use Conditional Logic on the PayPal action so that it will only fire when PayPal is selected in the Radio List field, and then do the same for the Stripe action.

      If you need any help getting set up, let us know!

      Cheers,
      Quay

  1. Is it possible for either the Stripe or PayPal add-on to fail to submit if the customer doesn’t complete the payment? I noticed that with the PayPal add-on at least, the info is submitted into the form’s database as soon as they click the “submit” button, whether they pay or not once the PayPal screen appears. Or is this just because I’m testing in Sandbox mode?

  2. Are there any plans to add the ability to send payment information from different forms to different PayPal accounts? I work somewhere that has different departments that handle finances separately and it would be very useful to be able to send payments to their own accounts.

  3. with Stripe add-on – is there a way to have a currency field and a second field with amount. then in processing it picks up both fields for a donation for a Non Profit organisation
    eg currency field of – USD, CAD, GBP
    number field – enter amount.

    I see in set up the currency is defined, can this be overridden by this field

    1. Yes, you’d just need to write an additional calculation that totals both those fields, and then use that calculation as the Total in your Stripe action.

    1. Unfortunately not right now, but thanks for bringing this up. We’ll definitely be adding more payment gateway options in the future, and direct debit/transfer are asked for frequently. Every voice we hear that needs this, makes it more likely that’s a feature we focus 🙂

  4. Very helpful. Looking to set up recurring membership form with PayPal or Stripe (or both). This helped me get started. Thanks!

  5. Hello,
    I’ve setup the Evalon integration, however I’m not seeing the transaction ID stored anywhere in the Store Submissions. Is there something I need to do to add it in?

    Thanks!

  6. I need to know how do I setup multiply recurring payment plan ID at stripe field ? like with coma seperated or just simply add it ?

    1. You’d want to set up the recurring plans in your Stripe account, and then create a Stripe action for each recurring plan with their respective ID entered into the action. From there, use conditional logic to determine which plan fires based on the selection that’s made in the form.

  7. Thanks for this helpful posting.

    I am using PayPal Express with Ninja. After PayPal completes, it returns to my former with no notification. Just a page with the form’s header. Can I redirect on return to a different WordPress page.

    I assume there is no communication back to Ninja from PayPal so I can’t know if the transaction was canceled bu the user in PayPal, succeeded or failed. Is this correct?

  8. Are there any plans to use Square as the payment processor? I totally prefer PayPal and Stripe, but my client wants to use Square. I’ve seen a third party Square plug-in for Ninja Forms, but I would feel more safe using an official NF add-on, plus I already pay for an annual membership here. Thank you.

    1. Hi Ellice,
      our team has discussed creating a plugin for this, but I do not have an ETA on when the plugin would be available.

  9. Hi
    I am using Ninja Forms on two different sites with professional membership.
    On one site I can add Credit Card fields but on other site I can not find Credit Card field option which I can add to the form.
    Please advise.
    Thanks

  10. Is there a way to make it mandatory for the payment to process via PayPal Express in order to actually submit the form? I’ve noticed when testing that I can fill out the form and press submit without actually processing payment via PayPal and the form submission still shows up in the backend WordPress submissions.
    Thanks for your help in advance

    1. I have the same question. I would like something like this: After someone fills in the form and complete the payment, this person will receive a success message where he can download a PDF file. It’s like automatically selling a digital product.

  11. I’m trying to work up an event registration form with the PayPay Express payment gateway. I think this question has been asked a few times but never answered. How can we get the payment status and transaction ID into the download of submissions? I’ve found that I can use the merge field to get the transaction ID included in the admin email or manually edit each record to see the status and transaction ID, but that’s only practical for very few submissions. I was able to use a hidden field to get my cart total into the download, but that didn’t work with the transaction ID. Is this doable?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.