How to Add Optional Payment to Your WordPress Forms

Do you want your visitors to be able to choose to donate to your nonprofit as they’re filling out a form? Using conditional logic, you can hide fields unless the user chooses a certain option.

So in this article, we’ll walk you through how to add optional payment to your WordPress form.

If you’d prefer written instructions, keep reading.

Adding Form Fields

The first thing you need to do is install and activate the WPForms plugin. Here’s a step by step guide on how to install a WordPress plugin.

Also, you’ll need to have a form created. See our tutorial on How to Create a Simple Contact Form as an example to get started. You can use any kind of form, but for this tutorial we’ll be using a contact form.

WPForms is the best WordPress Form Builder plugin. Get it for free!

The default contact form comes with Name, Email, and Comment or Message fields. We need to add the Multiple Choice, Credit Card, and Single Item fields to the form.

Customizing Form Fields

The Multiple Choice field comes with three choices but you only need two choices for optional payment. You can simply remove the third choice by clicking on the field in the right panel to edit and then deleting the third choice in the left panel.

optional payments

Since you’ll going to be asking your visitors if they would like to donate, it’ll be a good idea to change the labels for the multiple choice. You can do so by simply clicking on the multiple choice field in the right panel to edit and changing the labels in the left panel.

donation fields label

The Single Item field needs to be set to User Defined so users can enter in their own donation amount. You can do this by configuring the advanced settings for the Single Item field.

user defined

If you need help customizing the donation amounts, you can read this article on how to create a donation form with multiple amounts.

Enabling Conditional Logic

To add optional payment to your form you first need to enable conditional logic on the payment field.

You can enable it by clicking the field, then expanding the Conditionals  section. From there, click the Enable Conditional Logic checkbox.

Next, you’ll want to set up the logic so that the credit card field only shows when the user selects Yes, I’d like to donate.

Optional Payment Settings

So if someone doesn’t want to donate, the Stripe field won’t show up.

Now we need to tell Stripe not to try to process the payment if the visitor doesn’t want to donate.

To do that, click the Payments icon on the left of the form builder. Let’s use Stripe in this example.

Payment tab in form builder

Click on Stripe, then go ahead and click the Enable conditional logic checkbox in the right hand pane. Underneath, create a rule that says Don’t process if the user selects No, thanks.

Enable conditional stripe payment

Now, even if the user types a value into the donation field, the form won’t charge their card if they’ve selected No, thanks.

WPForms integrates with PayPal, Authorize.Net, or Stripe for accepting payments. You can even use set up your form to allow users to choose a payment method.

After you are done configuring the order form settings, click Save to store your changes and your form is ready to be published on your site.

In Conclusion

That’s it! You’ve just added optional payment to your WordPress form.

Want to accept payment for the online orders? Check out how to process payments with your WordPress order forms.

If you’re looking to save even more time processing online orders, you can check out our tutorial on how to create a client booking form that connects with your calendar software.

What are you waiting for? Get started with the most powerful WordPress forms plugin today.

If you like this article, then please follow us on Facebook and Twitter for more free WordPress tutorials.

Using WordPress and want to get WPForms for free?

Enter the URL to your WordPress website to install.


    1. Hi Sharukh,

      We don’t currently have integration with Instamojo, but we’ve added that to our feature request list for future consideration. Thanks for the suggestion 🙂

      1. Hey Anurodh – Currently WPForms does not have Razorpay integration. I have created a feature request so that the dev team can consider it for our future roadmap. Thanks for the suggestion!

      1. Hi Gautam! I apologize but I’m not sure I’ve understood your request completely, but it seems that you might be looking to be able to place “holds” on your customer’s cards (as a deposit or security for rentals or appointments). Our payment integrations aren’t able to do this currently, but I’ve noted your interest in such a capability and added your vote to that feature request.

        If I’ve misunderstood you, please contact us to clarify with additional details or if you have any further questions 🙂


    1. Hi Kevin – We don’t currently have an option for this integration, and are focusing on our current payment options (Stripe and PayPal). But I’ve noted this on our feature request list for consideration down the road 🙂

  1. How can I export information on paypal form.
    I need the status field information.
    What other transaction fields related to paypal can I get access to export or use in wpforms
    Iike transaction #, Paid amount, or the field status -completed or pending, anything…

    Trying to build report with exported information, I export now and no status field.
    Thank you

    1. Hi Eric,

      I apologize for any trouble with this, and the reason that we don’t include this information in CSV exports is that it’s generated dynamically (pulled from PayPal so that you see the latest/most correct info). I can understand why this and the other PayPal-related data would be useful to export, though, and I’ve added that to our feature request to be considered down the road.

      If we can assist in any other way, please get in touch!

  2. Is this possible to integrate payment gateway other than PayPal or stripe in wpforms? In india both the gateways are not popular.

    1. Hi Prashann,

      We currently only have payment integrations with Stripe and PayPal, and aren’t planning to expand this in the near future. But if you could please share any options that you were hoping for over in our feature request form, that will help us to keep additional ideas in mind down the road.

      Thanks! 🙂

      1. I agree with him both this option does not work with India and I am also looking for some better option integration with WP forms that we can use for india for payment please let me know if you have something come up in that matter

      2. Hi Beena,

        We really appreciate your feedback and while I’m sorry we currently don’t have any other payment integration options available I’ll go ahead and forward your comment as a feature request to our team for them to consider as they plan future updates to WPForms.


    1. Hi Ali,

      We don’t have a way to do this right now, but I’ve made a note on our feature request list so we can keep it on our radar! Thanks for the suggestion 🙂

    1. Hi Desmond,

      We don’t have a way to do this right now, but I’ve made a note on our feature request list so we can keep it on our radar! Thanks for the suggestion 🙂

      1. This is 2021, and I want to know if you people have integrated Paystack, which is no 1 online payment processor in Africa?
        If not, do you have any payment integration for your customers from Africa who cannot use paypal and stripe?

      2. Hey there — We currently do not have an inbuilt feature integrated with Paystack addon. I have made a note and placed it on our feature list to consider in the future as we continue to plan out our roadmap.

        I see that Zapier, a connector service, does have the ability to connect WPForms and Paystack. Zapier addon is available with Pro and higher licenses.

        Hope this helps! 🙂

    1. Hi Lucas,

      Currently we don’t have the ability to include coupon codes in our forms. We do have a possible workaround to set this up as shown in this screencast.

      But essentially, you can add two Multiple Items fields — one with normal pricing and one with discounted pricing and also add a Single Line Text field to accept a coupon code. The last step is to create conditionals for each of the item fields. To do this, click on one of those fields and open its Field Options screen. From there, open the Conditionals section and checked ‘Enable Conditional Logic’.

      For the full price items, the logic should resemble this screenshot. This tells this field to be hidden if the correct coupon code is entered.

      The discounted item’s conditional logic should be set to display when that same ‘coupon code’ is entered.

      I hope this helps! 🙂

  3. Please Add Paystack Payment Gateway. I unable to complete my form submission PayPal and Strip don’t work in my Country..
    Please help!

    1. Hi SamuelChuck,

      At this time we only support Stripe and Paypal Standard, and will be concentrating on those two payment providers. I’ll make note of your suggestions so we can review it later as we continue to plan out our roadmap for the future. We appreciate the suggestion!

    2. name sake, i’m facing the same issue. i want to be using paystack to collect subscription payment where customers will have to log in before they can view any content on vip

      1. Hey Samuel- We don’t currently have an option for this integration, and are focusing on our current payment options (Stripe, PayPal and But I’ve noted this on our feature request list for consideration down the road 🙂

  4. Hi am Dan
    Just want to know can I use the wf plugin to design Electricity bill payment and transportation bill payment system? Am new as a CMS user.

    1. Hi Daniel! You can absolutely create a simple payment form with WPForms. We have a great article on our website about this here. Hope this helps!
      Have a good one 🙂

  5. As far as I can tell, this doesn’t actually work with Stripe. I’m a WPForms Pro user and have tried to set this up, but if you try and submit a form that has a total value of $0 then you get an error from Strip saying “invalid amount”.

    1. Hi Daniel.
      This should work if you will use Conditional logic under Payments > Stripe settings in the form builder.
      For example, you can set it up there so the Stripe payment won’t be processed if an Item with “0” price is chosen, or based on the choice in a Checkbox, Multiple Choice, Dropdown, etc field. This way you can simply disable Stripe payment in your form if the payment conditions are not being met.
      I hope this helps.
      Have a good one 🙂

      1. You’re right. That does work. But that’s a pretty crucial step in the process that is entirely missing from this tutorial! Without that step, it doesn’t work. The tutorial mentions using conditional logic to display the payment form, but doesn’t mention the need for the additional steps on the Payment tab. It’s not intuitive that you would need to do this. As far as I’m concerned, if there’s no way to enter a credit card in the form, why would it be trying to process a payment?

      2. Hi Daniel,
        thanks for taking the time to write to us about this. I will forward this to the post author so they can possibly make some edits to more clarify the process.
        And regarding your question, the system will still think that the Payment should be processed if it is not disabled conditionally.
        I apologize for any inconvenience!
        Have a good one 🙂

  6. Hello I want to Fix onetime life time membership and two yearly memberships on stripe, need help in setup. thanks

    1. Hi Ghulam!
      We have a great tutorial on our site on how to install and use our Stripe addon, with the explanation of both One time and recurring subscription options.
      However, if you would like to fix something outside of WPForms functionality, I would recommend contacting the Stripe support team directly.
      I hope this helps.
      Have a good one 🙂

  7. If the option is “No, I don’t want to donate,” can I still make the Stripe payment required? In other words, on my form, I have four options (Tier 1, Tier 2, Tier 3–all which cost– and Tier 4–which is free). I want the Stripe payment to be required for every answer except the last one. I conditionally set it up to hide the payment fields if the user selects Tier 4, but the form won’t process because the Stripe payment is still required (even though the cost is $0). Can you tell me what I am doing incorrectly? Thanks so much!

  8. We are looking to have a “payment”page where customers enter their name, invoice number and payment. Since each payment will be a different amount, this “user defined” option works perfect. Thanks.

    1. Hey Steve – Great to hear that the user-defined option was able to help you achieve your requirement!

      Have a good one 🙂

    1. Hey Wajid – This is actually dependent on the service provider that you are using. WPForms just sends the card data to your integrated payment service provider(Stripe, Authorize.Net etc) and they will handle all such country-specific regulations at their end. In general, recurring payments can’t be done with debit cards in India but to get the confirmation on this, I would suggest contacting the support team of your integrated provider.

      I hope this helps!

    1. Hey Cesar – Thanks for reaching out! This is already in our feature request list. I have gone ahead and added your vote to the feature request so that the dev team can consider this for the future.

      Thanks 🙂

  9. ADD Paystack Gateway. Africans are more used to Paystack than STRIPE and PAYPAL. Adding Paystack will make your form solution African Friendly.
    We need Paystack on WPFORMS in Africa.

    1. Hey Abolade- I am sorry as Currently we don’t have an option for Paystack integration, and we are focusing on our current payment options (Stripe, PayPal and But I’ve noted this on our feature request list for consideration down the road.

      Thanks, and have a good one 🙂

    1. Hi Younis! If you’re looking to add a currency that isn’t currently included with WPForms (such as Indian Rupee), you can follow this Developer’s Doc as a guide to add your own custom currencies.

      I hope this helps!

      If you require further assistance, please submit a support ticket if you have an active WPForms license.
      If you don’t have an active license, we provide limited complimentary support in the WPForms Lite support forum.

  10. When will you add woocommerce to the Payments? That would be extremely helpful if we could use their Plugin. It would make refunds, payments much easier.

    1. Hi Jamie, WooCommerce isn’t a payment processor so it wouldn’t be a payment option we can add. Their platform integrates third party processors similarly to how WPForms integrates payment processing as well. Additionally we don’t support any integration with WooCommerce, mainly because they’re heavily integrated with their own forms systems.

      I hope this helps to clarify 🙂 If you have any further questions about this, please contact us if you have an active subscription. If you do not, don’t hesitate to drop us some questions in our support forums.

    1. Hi hanamichy! Our PayPal integration simply connects the form with PayPal (which does all of the processing), so this would depend on your PayPal account’s settings. You may want to refer to this PayPal guide for more information about this.

      I hope this helps to clarify 🙂 If you have any further questions about this, please contact us if you have an active subscription. If you do not, don’t hesitate to drop us some questions in our support forums.

      1. Hi Henry, I looked at PayPal’s information. Does any of these apply because I’m using WPForms?

        The following products do not offer a guest checkout experience:
        – CreateBillingAgreement, CreateRecurringPaymentsProfile, Express Checkout using Billing Agreements or Recurring Payments. You can find these references in your API logs. If you’re unsure whether or not your system uses these API operations, please reach out to your developer or cart provider to check your logs.

        – PayPal HTML Installment, Subscription, and Automatic Billing buttons. To have guest checkout for these products, you will need the Enhanced Recurring
        Payments product.

        – REST Billing Agreements

        – PayPal HTML Donation button where the checkout is a recurring payment.

        Thanks for your help.

      2. Hi Hanamichy, those do not apply, and Guest Checkout should work after you’ve enabled it within your PayPal dashboard.

        If you have any further questions, please either submit a support ticket if you have an active subscription, or post in our support forums if you do not have an active subscription.

        Due to WordPress regulations, we cannot provide support through comments. Thank you for understanding 🙂

  11. We’re considering using wpforms as a means for users to submit annual membership renewals. I understand wpforms provides for custom fields, such as member ID. Is there a reporting mechanism or transaction list that would include the member ID? It would be very beneficial toward reconciling payments.

    1. Hi Steven! Our form builder enables you to build fully custom forms, so you’d definitely be able to include a field that collects Member ID. We don’t have a specific feature for a “transaction list”, however all of our paid versions would allow your forms to record all submitted data, which you’ll then be able to review at your convenience. Our Entry Management system also has a filtering capability, so you’d be able to filter results according to your needs, such as by Member ID.

      You can review all entries within the WordPress admin area. Here’s a screenshot of what the main Entries page looks like, and here’s a screenshot of what an individual entry’s page looks like.

      You can also export entries (either individually or by form) to a CSV file. Here’s our tutorial on how to do that. The CSV file can then be opened with a spreadsheet program, like Excel, and converted into other formats in that program if you’d like.

      For more details on how entries management work in WPForms, please see our guide here.

      I hope this helps to clarify 🙂 If you have any further questions about this, please contact us!

  12. I’m hoping you could add Paystack integration any sooner. It’s more preferred in Africa since it gives the average mobile user the ability to make payments without challenges. I really hope this could be added veeeery soooon.

    1. Hi Eric- I agree, a Paystack addon would be great, though we do not have one at the moment. I have made a note and placed it on our feature list to consider in the future as we continue to plan out our roadmap.

      I see that Zapier, a connector service, does have the ability to connect to this. If you’d like to consider that approach, it would be a way you could possibly connect to the service now. We have a Zapier addon available with our Pro license level or higher

      Here’s our tutorial on setting up the Zapier addon.

      You can see Zapier’s page on this specific integration here.

      Hope this helps! 🙂

Add a Comment

We're glad you have chosen to leave a comment. Please keep in mind that all comments are moderated according to our privacy policy, and all links are nofollow. Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.

This form is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.