Require payment on a file upload form

How to Require Payment on a WordPress File Upload Form

Editorial Note: We may earn a commission when you visit links on our website.

Do you want to require payment on a WordPress file upload form? Getting a file and payment at the same time will save time and help to increase your conversions.

In this article, we’ll show you how to make sure your visitors pay when uploading a file on your website.

Create Your File Upload Payment Form Now

How Do I Create a Payment Form in WordPress?

It’s easy to make a payment form in WordPress using the WPForms plugin.

WPForms is the best form builder plugin for WordPress. It lets you build any kind of form for your website without writing any code.

The great thing about WPForms is that you can stop people from submitting a form without a file upload and a payment. Payment addons are available with the Pro version or higher and are useful for forms like:

Using WPForms, you’ll save a lot of time chasing payments, or canceling orders if people don’t send the files you need.

It’s really easy to set up a file upload form with a credit card payment field. Let’s go ahead and step through the process.

How to Require Payment on a WordPress File Upload Form

Step 1: Install the WPForms Plugin

In this example, we’re going to create a quote acceptance form for a business website using WPForms Pro. In order to start the project, our visitor will need to upload a file and pay a deposit.

To start, let’s install and activate the WPForms plugin. If you need help with this, jump over to this guide on how to install a plugin in WordPress.

Next, let’s set up payments. Stay in the WordPress dashboard for this next part.

If you’re considering Stripe vs PayPal, the good news is that WPForms lets you use both. You can also take payment using Authorize.Net and Square if that’s what you prefer.

We’ll use Stripe in this example, which is included in ALL WPForms license levels (even WPForms Lite).

To start, you’ll need to click WPForms » Settings in the left-hand navigation menu. Then click the Payments tab at the top.

Opening the WPForms Payments settings

First, check that the Currency is set correctly. If it isn’t, you can go ahead and change it in the dropdown.

Then scroll down to the Stripe section and click the blue Connect with Stripe button.

Connect With Stripe

You can create an account for Stripe now, or sign in to your existing account.

Once Stripe is connected, you’ll see a message in the Stripe section of the page to confirm it’s all set up:

Stripe connection status live

Did you notice that we’re running Stripe in test mode? If you want to try out your form without making real payments, you can check the Test Mode box to turn that on.

By default, the Stripe integration is set to the Payments Element mode which allows credit card payments as well as alternative payment methods like Apple Pay and Google Pay.

If you’re upgrading from an older version of WPForms and were previously using Card Elements, you can switch to Payment Elements (otherwise, it’s selected by default).

Make sure to save your Payments settings before you move to the next step.

Step 2: Create a File Upload Form

Now we’re going to create a form for our customers to accept a quote. In this form, they’ll need to pay a deposit and attach a document.

The form will look similar to a regular file upload form, but with some extra fields for Stripe.

WPForms is the best WordPress file upload plugin. It comes with 1,800+ form templates, so making any kind of form is really easy. Let’s use the File Upload Form template and customize it.

So to start, click WPForms » Add New in the WordPress admin menu.

Add new form

In the form builder, type a name for your form at the top. Then find the File Upload Form template and click Use Template.

File upload form template

The WPForms form builder will open in your browser.

Notice how the right-hand pane always shows a live form preview that makes it easy to see what the finished form will look like. On the left, you’ll see a list of fields that you can add to your form.

You can also click on any field in the preview to open its options on the left side of the builder. Make sure that the Required setting is on for the File Upload field.

Making the File Upload field required

Now if the user doesn’t add a file, the form won’t submit.

Add any other fields you need for your form and configure their options. Then click Save at the top of the screen to save your progress so far.

Step 3: Add Stripe Payment to Your File Upload Form

Now that we have a working file upload form, all we need to do is add a secure payment field to accept the deposit from the customer.

For this form, let’s make a really simple example with 2 fields:

  • Single Item
  • Stripe Credit Card

Go ahead and drag these 2 fields from the left-hand pane onto the form on the right.

Adding a Stripe Credit Card field to a File Upload form

For the Stripe Credit Card field, you can click on the field in the preview area to change its label and description.

You might have noticed the Email subfield in the Stripe Credit Card field. This lets customers use Stripe Link to checkout more quickly.

In the Advanced field options, you can choose to use the Stripe Credit Card Email subfield or a different Email field from your form.

Changing the Stripe Credit Card Field Link Email field

Once you’re done with the Stripe Credit Field options, click on the Single Item field to open the settings. In Item Price, type the price you want to charge your customer.

Changing the item price for a Single Item field

That’s it. The payment fields are done!

If you want to add more payment fields, check out this guide on how to require a payment total on your form. Adding a Total field will help to prevent anyone from sending a $0.00 payment. In this case, we don’t need a Total field because we’re using 1 fixed price.

OK. We’re done here, so let’s move on to the form settings.

Step 4: Configure Your Form’s Settings

Now that all of your form’s fields are set up, you can configure its settings. Click on the Settings tab on the left side of the builder, then on the General section.

Accessing a form's general settings

Here you can change your form’s name and description, add form tags, change the submit button text, and more.

Next, go to the Spam Protection and Security settings.

Opening the form spam and security settings

You can enable a variety of anti-spam options, including custom filters and CAPTCHAs.

Then you can go to the Notifications section. Whenever someone submits your form, you’ll receive an email with the entry details.  The notifications settings are where you can customize this email or add multiple email notifications.

Accessing a form's notifications settings

If you scroll down on this page, you can also include users’ file uploads in the email notification.

Enabling file upload attachments for an email notification

Finally, the Confirmations settings let you create a custom message to show users after they submit your form. Check out our tutorial on how to create form confirmations for more details.

Now that your form settings are good to go, you can move on to the payment settings.

Step 5: Configure Your Stripe Payment Settings

The hard work is done! We’re in the home stretch. We just need to tell WPForms exactly what we want to do in Stripe when the form is submitted.

Stay in the form builder and click Payments » Stripe. From there, toggle on the Enable Stripe payments setting.

Enabling Stripe payments for a form

There are a few settings that you can customize here:

  • Payment description: This is the description that will appear on your customer’s credit card statement. You should normally type your business name here.
  • Stripe payment receipt: Select Email from the dropdown to send a receipt to the email address your visitor entered in the form.
  • Enable conditional logic: You can use this to process the payment only if certain conditions are met. This is helpful if you want to check that important fields are filled out before payment is taken.

The rest of the settings are for recurring payments, so we don’t need to edit those right now.

All done? Click Save at the top of the form builder.

Just one more step to go!

Step 6: Publish Your File Upload Payment Form

Now we’re ready to publish your form. This is the easiest part.

At the top of the form builder window, click Embed.

Embed form button

In this example, we’re going to Create New Page.

Create new page

We’re going to name our page Pay Your Project Deposit. Type your preferred page name here and then click Let’s Go.

Name your file upload payment form

WPForms will now create a new page and add the form we created to it. All that’s left to do is click the Publish or Update button in the top-right corner.

Publishing a File Upload form with payment

Now the form is live, you’re ready to take payments and file uploads in 1 form!

A File Upload form with required payment fields

And that’s it! You can now take payments on your WordPress file upload form.

After customers start submitting your form, you can look entries up by their payment details if you ever need to track down a specific payment. Just go to WPForms » Entries and use the search field.

Create Your File Upload Payment Form Now

Next, Add Optional Payments to a Form

Do you want to take file uploads with optional payment? This could be a good way to take donations for a charity or nonprofit.

To find out how to make payment optional, check out this article on adding an optional payment field to a form. You might also be interested in how to use the Zapier addon to save file uploads to Dropbox or Google Drive.

Ready to build your form? Get started today with the easiest WordPress form builder plugin. WPForms Pro includes file upload form templates and offers a 14-day money-back guarantee.

If this article helped you out, please follow us on Facebook and Twitter for more free WordPress tutorials and guides.

Using WordPress and want to get WPForms for free?

Enter the URL to your WordPress website to install.


    1. Hi balhadj, it isn’t possible as our plugin’s forms do not have an integration with any checkout pages. The process described in this article is for a process that is handled entirely within WPForms.

      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. Is it possible to charge the customer according to audio/video length? If I charge $1 per minute and he uploads a 5 min audio file it charges him $5?

    1. Hi Thomas! We don’t have any feature that would enable your forms to discern the media file length and calculate a total to be charged. It may be possible to with custom code, however I apologize as we aren’t able to provide support for this degree of customization.

      In case you’d like to look into custom development options, we highly recommend using Codeable. Codeable screens all developers for you to make sure that they’re highly skilled and communicative, and then also helps guide the entire process of connecting and communicating with a best-fit developer.

      Here’s our tutorial on using Codeable, which provides more details on how this process works.

      Or if you’d like a team that you can continue coming back to (longer term) for custom development help, you might also consider checking out WPBuffs.

      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.

  2. Is it possible to ensure that the customer details entered in a form like are add to our mail chimp mailing list?

    Are payments taken linked to accounting systems i.e. Xero or similar?

    What happens to the uploaded file? is it emailed or stored in digital asset management software?

    1. Hi Michael!

      You can have customer details from your forms be added to your Mailchimp account’s database by utilizing our Mailchimp addon which is available with our Plus level (and higher) license. More details about this can be found here.

      Regarding payments being linked to accounting systems, at this time we do not have any such integrations though it could be possible via our Zapier addon. For instance, it is possible to connect your WPForms to Quickbooks via Zapier as described here.

      Uploaded files (along with any of your forms and their data) are stored on your site’s server directly, so you have control over all of your files and data. More details about this can be found in this article.

      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.

  3. Hi, on the post above you have put a highlighted bar that says “WPForms is the best WordPress Form Builder plugin. Get it for free!” However the payment function you have described in this post is not available on the free version, but only the Pro version. I think that this post needs to state very clearly at the outset that this functionality of accepting payments is only available on the Pro version

    1. Hi Tosin! The banner that you’re referring to is not a part of this article specifically but is rather filled dynamically for marketing content, so it isn’t attributed to this article. However I agree that we could certainly do a better job making it clear in this article that payment processing features are only available with our Pro level (or higher) license. I’ve forwarded your feedback to our writing team for further review 🙂

      Thank you for taking the time to give us your feedback here!


    1. Hi there,

      I am sorry to inform you that we do not have a built-in feature that shows the change in Pricing based on the number of file uploads. I will upvote the request on our behalf.

      Thanks you for your patience here 🙂

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.