Many people have websites and offer free downloadable materials to their visitors. You could be a CPA with a PDF brochure or a custom window installer with an excel file for cost estimates. You want to provide materials, but you also want to gather the visitor’s email address and contact info before letting them download the files. This tutorial will cover how to do that with some helpful free WordPress plugins.
Want to get your contact forms setup with downloads all done for you with a walk-through step-by-step? Check out our WordPress help!
What we’ll cover
- Step 1: store your downloads on your website
- Step 2: gather the visitor’s information
- Step 3: give the visitor the download
- Step 4: optionally send the visitor’s info to a mailing list
Note: If you are looking for a non-plugin option which works both with and without WordPress, scroll to the end of the article.
Store your downloads on your website
The step is storing your downloadable material (for example, a PDF) with a download plugin. This allows you to replace your downloadable file without actually having to change any of your URLs.
There are three popular download monitor plugins and they all work pretty well.
- Download Monitor – most popular option, allows for multiple files per download
- Simple Download Monitor – very easy to get started with, limit of one file per download
- WordPress Download Manager – limits you to one file per download
For this tutorial, I’m going to use Simple Download Monitor.
Add your download
Once you have Simple Download Manager installed, you will see a “Downloads” option in your admin sidebar. If you click on it, you will see your list if current downloads (blank at the moment) and some additional options. For this tutorial, we will only be using “All Downloads” and “Add New”. We will leave all of the other settings alone.
Click on “Add New” and give your Download a title. Then go down to the Downloadable Files and click on Select File.
You can either upload a new file or add a file from your existing Media Library. It’s also possible to add a file by just inputing the URL selection (this is great if your file exists somewhere besides your media library — such as if you are using another server to store your item).
Once you have uploaded your file, click on the usual Publish button.
Now go back to the All Downloads page and you will see your download.
Gather the visitor’s information
The next step is creating a form with a thank you that goes to download. This really depends on what your goal for interaction is. Here are three I recommend:
- Forminator is a fully-featured free plugin. With it you can create powerful contact forms that collect data from the website visitor. It includes integrations for Google recaptcha and has payment options for Stripe & PayPal. It also integrates with several popular mailing list providers.
- Hustle is fully-featured free plugin which allows for forms to be created and placed in a number of locations, including popups. It has integrations for a larger number of mailing list providers than Forminator does. You can pop-up, slide-in, or embed your form.
- Gravity Forms is fully-featured premium plugin (paid yearly) that allows you to create powerful contact forms with advanced logic. These forms once filled out can redirect conditionally, display different messages depending on fields selected, send multiple emails, store data to your email mailing list provider, and logs all forms to the database.
For this tutorial, I’ll be using Forminator.
Create your contact form
Now that you have your download ready, it’s time to create the contact form. Forminator has already put together a set of instructions, so rather than take my own screen shots, I’ll just use theirs!
Also, you can visit their full plugin documentation for extra help getting setup.
You’ll want to setup your form with only the fields you really need. Studies have shown that the more fields you require, the less likely people are to complete the form. Also, with the GDPR, you are not supposed to gather more data than you actually need.
Give the visitor the download
Once you have created your form with the fields you would like, you can now set up your thank you redirect. For this, we’ll adjust the submission behavior of the form.
You’ll need to set the “After submission” to “Redirect URL” and enter the URL of the landing page for your download. The download plugin automatically creates a download page for you, but you can also create your own custom one. I always recommend setting a download page to “no-index” to make sure that search engines don’t index it.
You can also send your download to visitors by using the Email notification feature. Although if you want to use this, I’d recommend sending them to no-index page where you have embedded the download shortcode.
Optionally send the visitors info to a mailing list
For a lot of website owners the goal of offering downloads is to populate your mailing list. Forminator has integrations with several mailing list providers and other locations you can data (like Zapier which connects almost anything to almost anything else). Their current list of integrations is available on their documentation.
Once you configure your integration settings you can select which form(s) send data to what location. That configure link goes to a how to section for setting up popular mailing list providers with Forminator with images included!
Alternative non-Plugin Option
There is, of course, another commonly used method. That is a mailing list signup form. With popular mailing list providers, such as MailChimp, you can choose to have new subscribers to your email list receive a welcome email which can include links to your downloads.
You can create different lists and have different sign-up forms for each list, this allows you to send different welcome emails.
MailChimp has also made automation free, so if you want to setup an entire sequence of follow-up emails to your subscribers you can do that easily.
Most mailing providers offer a “Welcome email” type of functionality, although what it is called will vary between mailing list providers. Consult your mailing list provider documentation for how to set it up.
This tutorial has explained how to let people download materials in exchange for providing an email address and contact info. Like most things in life, there is no “best” for everyone, but the option of using Simple Download Manager with Forminator is a free option that will work for a number of people.
43 thoughts on “Offer Free Downloads with Contact Form Email Submission”
Hi, when I insert the short code to the “Thank You” message it just shows up as text and not something that could be downloaded.
I’ve updated the instructions – Forminator no longer allows shortcodes in the success area. I’ve updated the instructions to use the redirect URL. Information on the redirect URL is at https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#behavior-forms
I found this post as very useful , you have tried to explain things very beautifully . Keep up the good job..
Hello, kinda old post, but can anyone elaborate how you can use hubspot to track a download?
The tracking number of downloads is still done through Download Monitor (or a similar plugin). You can configure Hubspot to send you an email when forms are completed. In this email, it will have some info on the person and which page they filled out the form on. This helps with tracking the number of downloads.
Thank you for this article. However, I have an urgent query. How can I display a link to download file with the success message in contact form 7. Thanks.
Prerak, you can use the instructions at https://contactform7.com/redirecting-to-another-url-after-submissions/ to redirect to a thank you page on which you can enter the link and any other content you want to.
Hi Gen! thank you so much for this tutorial.
We had taken it for one site but with the last update wordpress Email Before Download have a several issues and it disappears from wordpress directory plugins.
Have you the same problem?
The “Email Before Download” plugin was removed from the repository, the author abandoned it. I updated the article to remove using it. You should remove the plugin from your site.
thanks for the awsome Tutorial, but I still have a question.
I use CF7 and WP Download Manager and I am sending th URL of the Downloadpage in an Email to the Client. The problem is, that I dont want the client to be able to send this link to others. So I kind of need a personalized Link or one which is expiring after some time.
Do you have any ideas which plugin I could use for that ?
For a more complex setup with expiring links, you’ll want a full featured plugin like Easy Digital Downloads. That plugin actually works like a shopping cart (and you can just make your “products” free). But it comes with expirations on downloads and limits on how many times they can be downloaded. Remember also that an assistant may be filling out forms and then forwarding things to a decision maker.
Hi there – great tutorial. However, I’m still having issues. I want to use contact form 7 to send an email to the user with a link to download a pdf. The download manager shortcode to the file doesn’t work in the contact form and the URL link to the file remains as the URL address in the email the user receives, which looks ugly. Can anyone help on this?
You can use the URL, just mark “use HTML content type” and write the HTML code to make the email look better.
Great tutorial. Was wondering if there is a way to force automatic download of the selected files(checboxes) after the form is validated and submitted, instead of presenting the inline links and/or email delivery.
Also, is there a possibility of inserting multiple preconfigured /ebd packages…or a way to insert divs and titles inside the /ebd so I can have a Downloads Section and a Related Files Section underneath, with just one contact form(the same). Right now it permits only a bulk section with all downloads from download Monitor, when I opt for the multiple downloads option.
Finally, can this combine the output in an archive instead of multiple downloads?
Tudor, the functionality you are talking about isn’t part of the plugin.
Is there a way to make this use a different form plugin? Namely, Visual Form Builder?
Chris, the plugin Email Before Download is specifically listed as working with Contact Form 7, so I don’t know if it would integrate with any other plugins out of the box. Visual Form Builder and Contact Form 7 have a bit different backend architectures so you probably won’t have much luck getting Visual Form Builder and Email Before Download to work together.
Can I use category slug not download_id in shortcode?
No, the shortcode is only setup for individual download id numbers.
I am newbie and I have a problem with the “Email before download”, although plugin works Pdf link is in vertical format. How can I fix it?
The formatting is normally controlled by your own CSS.
Could you be more specific about CSS? can I use the style.css and how? My theme is customizr.
W3Schools.com has an excellent tutorial on CSS. If you want to make changes to your CSS you should either create a child theme of Customizr or use a CSS plugin. Simple Custom CSS (https://wordpress.org/plugins/simple-custom-css/) is a good one.
I have created a child theme and the style.css file contains some changes. When I used this file to change the vertical text of link it did not work. (I took ready html code from the web) can I use child theme and simple custom css plugin at the same time?
Also at the settings of “Email before download” plugin there is “Inline Link Custom CSS” is that useful to make changes at the link format?
In my opinion the letters of text link look to be greater than there are and the word is split.
Yes, you can use a child theme and the Simple Custom CSS plugin at the same, however, if the CSS code isn’t working in your child theme then it probably won’t work in the plugin either. Most likely the real issue is the code you copied from the web doesn’t correctly apply to your form. You need to either pay a developer to solve your CSS problem or you need to go through a full CSS tutorial to learn CSS to fix your issue. Copying little bits of code when you don’t understand CSS very rarely solves anything.
Thanks for your helpful tutorials
Thank you for this useful tutorial, Gen. Do you know if it’s possible at all to have the link sent by email point to a download page rather than a straight download file? It would be nice to direct the customer back to the website 🙂
This setup is for a direct download link.
If you are looking for a download page on your site to be sent to people, then you drop the fancy setup and just have a simple contact form 7 with an email to the visitor telling them the URL of the download page. Then you add your download on that page.
Hi, great tutorial but unfortunately i can not get it to work. I am offering multiple downloads to be selected by user. I am testing with 2 and when email is input, the download file names appear side by side as one link and open in a blank page with nothing on. Here is the code
[email-download download_id=”556,559″ contact_form_id=”562″]
the file names appear under the send button as
I have put this code into a widget into the footer and contact form works fine apart from that little glitch. I just want the .pdf files to auto download on link click or view.
I have checked file name/paths and all ok.
Contact form is all ok.
What am i doing wrong ?
Everything you entered looks fine. My guess is that you have a theme or plugin conflict going on.
I saw on a previous forum that the problem is with contact form 7. It was the input fields that was the problem. You can not change the alias for the field i.e
Your Email (required)
Can not be changed to
Your Email (required)
The ‘your-email’ can’t be changed which is what i was doing and i also forgot to put a space in between the ebd and the / . works fine now, thanks again for the tutorial 😉
Glad you found the issue, yes CF7 can be a little fussy on certain things.
i did everything correct except
“i also forgot to put a space in between the ebd and the / .”
Thanks a lot , you save my time.
I getting message “No file paths defined” what I am doing wrong?
You need to put a file path in. You made a download but you never gave it a file to be downloaded.
i want to change the email the client receives that contains the link to down load file from WordPress to my own
Just edit the From field in Contact Form 7, that will change the email address contact form 7 sends emails from. Also you can use the WP SMTP plugin that I mention in another on fixing WordPress email: http://www.anphira.com/wordpress/fix-wordpress-mail/
TY for the great tutorial.
Everything works perfect here but… is there any way to list the titles of the downloads instead of its id’s in the field “edb_downloads” in the table with database info ?
IDs are guaranteed to be unique, while titles are not. So you must used the IDs.
Never mind. I was checking submitted data through Download Monitor Logs instead of Contact Form DB
Very good and useful tutorial! Thank you. I have a question though. In your screenshot ‘Viewing Database Info’, I can see the fields ‘your-name’ and ‘your-email’. However I don’t see it in my WordPress backend. That is I see all fields except for those two…Possible, there were some changes to the plugin?
This is the most clear tutorial I found on the subject.
Pedro, I’m glad that you found it helpful!