Want to offer exclusive downloads to your email subscribers? A form that will require email to download files is the perfect way to go! We'll show you how to add gated content with an email-before-download plugin.

Approximate read-time: 4.5 minutes
You're already producing high-value content. Your customers love your copy and come to you for answers. Now, you're ready to have your optimized content generate leads and drive sales.
One way to do this is by setting up an email campaign that goes out when a new subscriber fills out a form. You simply offer the content, and they give you their information. Then you send email with the download.
However, there is an even easier way to offer digital content in exchange for email addresses.
Create gated content
Gated content is any online material that requires users to fill out a form or be a member before they can access it.
To get a better idea, what are types of gated content?
The most popular types of gated content include:
- PDFs
- white papers
- guides
- reports
- eBooks
- membership sites
- signup forms
- Other digital content
What information can you require to access WordPress gated content?
Once you have a digital product or exclusive content your readers want, you can put up a form that allows them access after they fill out certain fields.
In most cases, these forms require an email address before downloading files. You can then convert these captured emails into sales through direct content marketing.
WordPress gated content is the modern-day equivalent of tossing a business card in a jar for a chance to win free lunch, only this time the prize is guaranteed.

And according to landing page experts at Instapages, up to 80% of content is gated. Everybody is doing it!
The key is to exchange your content for hard-to-get user data. In addition to email addresses, you could collect job titles, industry info, or anything else that shows the user is a qualified lead.
One common place to find these free download forms is in the widgets on a sidebar or footer of a WordPress website. That way, they're clearly visible but not as disruptive as a popup. We've written about this before in our article, how to include a contact form in your sidebar.
But should you use an email-before-download WordPress form as a lead magnet?
Absolutely! Let's first find out why then learn how to do it.
Read More: How to Create a Winning Email Strategy for your WordPress Blog
Why require email to download files?
Information exchange should be a win-win scenario. You get to collect email addresses to grow your list, and your target customers get bonus content for free.
If you're having difficulty growing your email list, file-sharing gated content could be the best answer for your email marketing strategy.
Requiring visitors to fill in a form before downloading a file is a great way to provide value to your new email subscribers. This, in turn, gives you important information you need to convert them into new customers.
And it's easy to do! Just promote the awesome gated content on social media, your website, through your customer service reps, and on your blog! Then watch the leads pour in.
Imagine all the conversions you could be missing out on by not using this marketing strategy.
Spoiler alert: it's a lot.
Do I need to know how to code to make a custom form?
Do lines upon lines of white and turquoise code give you the sweats? Or perhaps you're wondering how do I create a download form in WordPress if I'm not a programmer? We've got you!
You can also use this tutorial to answer the question: how do I send a download link in an email? And it's not too hard! We promise.
That's why we recommend an awesome form-building plugin like Formidable Forms.
You don't need to learn PHP, MySQL, or some other framework like Joomla to add a form that requires email to your WordPress website.
In today's post, we’ll show you how to capture email addresses in exchange for gated content without writing a single line of code. For this article, we will be using the Formidable Forms drag-and-drop WordPress form-builder plugin to create our email-before-download form.
How do I require an email address to download a file in WordPress?
The easiest way is to download a plugin to do it for you. You can do this in 3 simple steps:
- Add the gated content to WordPress
- Enable WordPress to display the files
- Attach the content to a download subscribe form
Sound easy? That's because it is! So let's get started.
Step 1 – Add digital downloads and gated content to WordPress
First things first, you'll need to add the exclusive content you will provide your users after form submission. This means we need to create a new form to hold the content with the Formidable form builder plugin for WordPress.
People won't be able to see this form on the front end of your site until you add it to the form you'll display on your website. It simply serves to hold the files you will require email for. We'll be using this intuitive dashboard for uploading and managing the files you're using as your gated content.
We suggest you title the form "Gated Files" or something similar to make it easier to access the form in the future.
Now you'll need to populate your form with some fields. First, add a Text field, which will be a single line field. Simply title it "File Name."
Next, expand the options of the field and make sure you check the boxes Required and Unique. You can see what it looks like in the image below.

The next field you should add to the form is a File Upload field. This is how it should look:

Now it's time to save the form and protect the uploaded files, so click update.
Click on Settings after the form has been updated. Then, scroll to Form Permissions and check the box that says Protect all files uploaded in this form. To save this change, simply click Update.

Step 2 – Allow users to see the files with completed form submissions
Very important: your new subscribers need to see the digital content you're offering. In this step, we'll enable users to see those files in a confirmation message.
You can do this by creating a new View. This is just like when you create a brand new form, except you click on View instead of Forms. Choose Grid for the View type.
Call your new View "Display Protected File." Under Advanced Settings, you can adjust the Limit to show the number of files you're offering. For this tutorial, we'll set it to 1.
Click the link to start adding content. Now it's time for some simple code. Don't worry, we'll walk you through it!
In the content box, click on the Text tab instead of Visual. You’ll need to enter some HTML to create a link to the download:
<a href="[x]">Open [y]</a>
Just make sure you replace [x] with the Field ID of your file upload field and [y] with the Field ID of the File Name field (added in step 1). Otherwise, this won't work.
Once you've done that, click the Filter Entries link at the top of the page.
Add a filter and change the options to File Name field equal to [get param=filename default=0]

Save your changes before moving on to the next step. Including default=0 here will prevent a random file from being accessed if the file name isn't passed to the View.
Step 3 – Add "require email to download files" feature to a subscribe form
Now that the groundwork is in place, you can either create a simple contact form or subscribe form that will appear on your WordPress site or add your new downloads to one that already exists. Just make sure that all the fields exist to submit the information you want to collect.
Next, be sure to include an email address field and check the Required box. This way, you'll be able to capture the email address before giving out the digital download.
Next, go to the Form Settings page for the form you've decided to use.
Set the form to Show a Message on submit. This will create a "success" message telling the user they've successfully signed up. This message is where you'll display the View with the inline link for users to download the file.
The View shortcode should look like this:
[display-frm-data id=123 filename="Test File"]
In this code, the 123 stands for the form ID of your View, and the Test File stands for the File Name.
The final step is to update your form, save all your changes, and publish it. Congrats!
And if you need a quick recap, take a look below:

Or, check out our documentation on how to email a protected file.
How to require email to download files wrap up
You did it! Now you have a fully-functioning form that requires visitors to enter an email to download a CSV file or multiple files.
Create Your File Download Form
Let us know in the comments how this file-download form works for you!
Read more about file downloads from the blog
If you're not already using Formidable Forms, we have plenty of great features to help your website boost conversions. We offer simple solutions to complex problems. Get started with our free plugin or the full-featured premium versions!
This doesn't test that the email is valid, I know I've done this before with your help pointing to the correct article, but months later can't find it....
Would be great to have an automated solution for this repetitive task.
Hi Craig, Sorry we missed your comment! Here are the instructions to verify an email address . Instead of showing another form, you can show the files instead.
Thank you so much for the step by step instructions
Good article. I have been using Forms to collect information for years and have settled on Formidable for the last few years as the only one I use. Collecting email addresses is a must and really simple to do.
this is a cool tool.
Thanks for this blog, learned a lot!
I've only just started to use Formidable and the functionality, and supporting documentation has been excellent. Thank you for this guide.
Thanks so much for the kind words! Welcome to the Formidable Family.
Excellent. I have used this for a couple of projects and it's a great marketing solution.
Glad you are liking it!
This is great!
Another similar option that I've used (which also works great) is to use the "Send Email" action, which allows you to include a file attachment an automated email back to the person filling out the form. I like this option because you are guaranteed that the email address will be a valid one, or else they won't receive the email!
Great suggestion. As long as you have a reliable email system set up so you can be confident emails are going through, this is a great option.
This is a nice option. But how do you attach the file that has been uploaded via the "download manager form"? And if I send a mail with the file, can I do it without showing the view to the user?
You can send the uploaded files as an email attachment without a view. Or you can include the View shortcode right in the email. This is a built in feature of our pro version. If you need help with this, please reach out to our support, and we are happy to assist.
For multiple white papers: I'd like to not ask the visitor to fill out the form if they have done before, but still I'd like to get a notification when they download additional files.
Hi there, Thanks for your question. It sounds like you're looking for more of a members-only area?
Hi
I am very interested in the functionality described in this post. However it does not seem to be available in the free version of the plugin. Do I have to upgrade in order to get it?
Thanks for a quick reply
Hi there,
Yes, the above tutorial does require features only included in the paid versions of the plugin. You would need to upgrade in order to create this setup using Formidable Forms.
Do I need to create multiple forms/views to offer different files to be downloaded (some page, other pages)? Or can the filename be passed via an url parameter and use one form? Otherwise if I have many files, creating many forms is not a dynamic solution...
Sure, you can upload multiple files in the same form. It'll just need an extra filter if you don't want to show all the files at once.
Would I get access to this functionality with the basic version of the plugin or would I need the pro?
Hi Tom,
The tutorial above does require Views to work, so you would need at least the Forms + Views Basic package in order to execute the above functionality.