Double Opt-In for Download


Double Opt-In for Download is a light weight plugin that is ideal for building and maximizing your customer base.

Free is something that everyone can afford, from small businesses to global corporations. By offering your visitors a free download or subscription to your newsletter you are informing your potential customers that you are willing to provide free information from the start. If you provide good content, customers will know more about your business and will then be ready to spend thier hard earn money on your product.


The free version of Double OPT-IN For Download comes with all the basic features you need to get your empire started.

  • Offer Free Downloads.
  • Create simple mailing lists.
  • Unlimited number of products you can upload.
  • You can offer, .jpg, .jpeg, .png, .bmp, .gif, .pdf, .zip, .doc, .docx, ,mp3 files.
  • Subscribers email addresses are verified via a double opt in process.
  • Customize your verification email to your subscriber.
  • Subscriber can only subscribe once for each product item.
  • One click download of email address to a convenient csv file.
  • Links to your download are not revealed to your subscribers, keeping them secure.
  • Track how many times your products have been downloaded.
  • Completely customize your forms.
  • Customizable Landing Page Button Text.
  • Works with Multi-Sites.

How it works

All you need to do is simply upload your free download using the plugin admin interface. Once your file is uploaded, create a stylish form or just use the ready made default form. Then just add the generated shortcode to the pages or posts where you would like to show the sign up form. Or simply use a widget to generate your form.

When the subscriber signs up to receive your free download, an email with a verification link is sent to their email address.

For the subscriber to receive the free download they must click on the link in the email. The link returns the subscriber to your website where the plugin verifies the information and provides the subscriber with a button to retrieve the download.

A link to your download is never revealed.

Need more than the basics?

If your looking for something more, like AJAX forms and integrations with email list services like MailChimp, Constant Contact, MailPoet, MadMimi and AWeber, be sure to check out our Pro Versions of Double OPT-IN For Download

Language Support

DOIFD has been translated into the following languages:

  • Dutch – nl_NL
  • French – fr_FR
  • German – de_DE
  • Italian – it_IT
  • Portuguese (Brazil) – pt_BR
  • Spanish – es_ES
  • Serbian – sr_RS ( Courtesy of Ogi Djuraskovic at FirstGuide.Com )


Double OPT-IN for Download is designed to “Set it & Forget it”. But with so many different web site configurations out there hiccups are bound to occur.
For fast response on your support needs please visit our Support Site. The WordPress support forum is no longer monitored.


  • This is a screen shot of the registration forms in the 2015 theme, both page/post and widget.

  • This is a screen shot of the thank you message after a user registers in the 2015 them.

  • This is a screen shot of the admin options page.

  • This is a screen shot of the download admin screen.

  • This is a screen shot of the subscribers admin screen.


Q: How do I put the form on a page or post?

A: After you have uploaded a download item for your visitors you will see a “Shortode” in the download table.
It will look something like this: [lab_subscriber_download_form download_id=1]
Copy it and paste it into your post or page and save the page.
IMPORTANT: make sure you are in “TEXT” mode when using your post/page editor.

Q: How do I change the text in the form?

A: Add the following to the registration form shortcode: text=”Your Text Here” Example: [lab_subscriber_download_form download_id=1 text=”Your Text Here”]

Q: How do I change the submit button text in the form?

A: Add the following to the shortcode: button_text=”Your Submit Button Text Here” Example: [lab_subscriber_download_form download_id=1 button_text=”Your Submit Button Text Here”]

Q: How do I change the landing page download button text?

A: Add the following to the landing page shortcode: button_text=”Your Submit Button Text Here” Example: [lab_landing_page button_text=”Your Download Button Text Here”]

Q: Is there a way to get around the PHP file size limit for uploads?

A: Yes!

  1. Create a dummy upload using a similar type file.
  2. Give it the actual name that you want to use.
  3. FTP into your site. Go to the wp-content folder, then to uploads, then to doifd_downloads. Look for the file you just uploaded. Take note of the name.
  4. Rename the actual file that you want to use to the name that is in the doifd_downloads directory, then upload the file into the directory overwriting the dummy file that is in there.

That will do it.

Q: Does your plugin support languages?

A: As of 1.0.0, yes

The following is a list of languages the plugin supports:

  1. Spanish – es_ES
  2. French – fr_FR
  3. German – de_DE
  4. Italian – it_IT
  5. Portuguese (Brazil) – pt_BR
  6. Dutch – nl_NL
  7. Serbian – sr_RS ( Courtesy of Ogi Djuraskovic at FirstGuide.Com )
Installation Instructions
  1. Upload the ‘double-opt-in-for-download folder to the “/wp-content/plugins/” directory
  2. Activate the Double Opt-In for Download plugin through the ‘Plugins’ menu in WordPress
  3. Create a landing page for your subscribers and add this shortcode to it, [lab_landing_page]. You can change the button text in the download button by adding button_text=”My Special Text” to the short code. The whole short code would look like this: [lab_landing_page button_text=”My Special Text”]
  4. Configure the plugin by going to the “Settings” sub-menu that appears under DOIFD in your admin menu.
  5. Upload your Free download by going to the “Downloads” sub-menu. Give your file a name, select your landing page, attach your free download, select a form, then upload it.
  6. Optional – Create your own custom form design by clicking Forms in the DOIFD submenu.
  7. Once your file is uploaded, copy the generated shortcode and paste it into the pages and posts of your choosing or use the sidebar widget.


You can also use the “Double Opt-In Sign Up” widget on your pages.

After you have completed steps 1 thru 6 above:

  1. Add widget to the sidebar of your choosing.
  2. Add a title for your free download if you desire.
  3. Select the download you would like to use in the dropdown box.
  4. Select a Form to be used with the download.
  5. Save it.


Good plugin but terrible customer service

We really enjoy using this plugin, so upgraded to pro version. However, there was a bug in the ‘resend’ email and we’ve been waiting for support but we’ve had a poor response.
We had one email asking which PHP we were running and it’s now been over a month and still nothing. If we were ‘free’ customers I would understand to a point, but we paid for this plugin. Based on the customer service alone I would not recommend this plugin. Sorry, peeps but customer service is just as important as a working plugin!

Awesome Support

Recently upgraded to 4.6 and needed an update. Had some trouble getting the plugin to update. Andy jumped on it and had a solution within a few hours. Perfect support for a PRO product!

Does not work

We were supposed to go live today with our marketing campaign to send a link to this free download.

A couple weeks ago I noticed there was a bug where you couldn’t update a download after you created it. But, you could create a new one I emailed support, got a response with a question, and then never heard anything back after I answered.

Today I tried to create a new download. Error. It’s looking for a JS file that doesn’t exist. I thought maybe I need to just remove the free version plugin (out of desperation). Yep that deleted all my customizations.

I’m guessing that there’s some kind of conflict with the security that I’ve put in place, which implies that there’s some “hard coding” going on??? Maybe? Maybe not.

Needless to say we aren’t going to meet our goal and now I have to look for a new plugin.

Read all 43 reviews

Contributors & Developers

“Double Opt-In for Download” is open source software. The following people have contributed to this plugin.




  • Fix – Updated widget code for PHP 7
  • Fix – Fix typo in CSS creation
  • Fix – Hardened data validation


  • Fix – Hardened data validation to prevent potential SQL injection attack


  • Fix – Hardened data validation to prevent potential SQL injection attack


  • Added – Option to keep DOIFD data in WordPress when deleting DOIFD from WordPress


  • Tweaks – Minor tweaks and corrections to improve performance.
  • Compatible with WordPress 4.6


  • Enhancement – No more dynamically created stylesheet. Stylesheets are now written when Forms are created or updated and will only load on pages and posts where a DOIFD form exists. This will have a dramitic effect on the reduction of server resources!!!
  • Enhancement – There is now a seperate section for Forms. You have the ability now to create individually styled forms. Once a form is created you can assign it to a download when creating or editing a download or by adding form_id to the shortcode.
  • Enhancement – Now have option settings for Font Size, Font Color, Font Family, Border Style, Border Color, Border Color, Border Radias, Submit Button Color & Text.
  • Enhancement – Form text is now built into the form, no need to add it to the shortcode anymore.
  • Tweaks – Numerous Minor tweaks through out the plugin to help with efficientcy, emails and speed.


  • Enhancement – Plugin now captures users IP address and stores it in the users database.
  • Enhancement – Added date/time of download and users ip address to users CSV download.
  • Fix – Missing P in sql code that threw an error causing downloads to lose the file extension on some servers
  • Fix – Notices genereated if users email was already in the wp users table. Plugin now checks for duplicates prior to executing, eliminating notices
  • Security Fix – Thanks to Kacper Szurek for spotting and reporting some potential vulnerabilities within DOIFD that were corrected.
  • Tested for WordPress 4.4 compatibility


  • Security Fix – Many, many thanks to Larry Cashdollar for spotting and reporting some vulnerabilities within DOIFD that were corrected.


  • Enhancement – Added option to send User an email with thier login information if admin elects to have new users added to WordPress users table.
  • Enhancement – Default sort order of Subscribers is now most recently signed up. Was by name.
  • Fix – Fixed conflict with Mandrill that caused Mandrill to not activate/deactiveate


  • Updated deprecated class structure for WordPress 4.3 compatibility


  • Enhancement – Added Excel ( .xls, .xlsx ) to to allowed uploads/downloads
  • Misc Tweaks


  • Bug Fix – Updated mysql field for total number of downloads from tinyint to int. Total downloads were stopping at 127
  • Bug Fix – Changed landing page update order so admin email is only sent once.


  • Bug Fix – Bug that caused some downloads to not download properly on some systems
  • Bug Fix – Warnings given when bulk delete used for downloads.


  • Added back – Bulk function delete to Subscriber and Download tables
  • Added back – Download Name to subscribers table
  • Added back – Subscriber table now sortable by Name, Email, Download and time
  • Fix – If multiple widgets selected on one sidebar only one would show.
  • Fix – Misc PHP notices thanks to David Tan!


  • Added – Proper update routine


  • Fix – Subscriber Pagination was not working


  • Major Update – A lot of backend and interface tweaks.
  • Added – Simple mailing list can now be created without a download.
  • Added – Custom CSS can be added to the forms in the options panel


  • Added Serbian (sr_RS) language files ( Courtesy of Ogi Djuraskovic at FirstGuide.Com ).
  • Bug Fix – CSV download was not downloading subscribers if the download was deleted.


  • Added check box to subscriber download to remove duplicate email addresses.


  • Fixed 500 error in multi-site when activating new site.
  • Added Form value arrays with hook for easy manipulation.


  • Now works with Multi-Sites
  • Added Download File Name in CSV Download
  • Added Verified column in subscribers to show if the user verified their email address
  • Added Dutch Language translation – nl_NL
  • Added Portuguese (Brazil) language translation – pt_BR
  • Added Italian language translation – it_IT


  • Bug Fix – Fixed bug that caused the initial verification email to not send for some users with certain versions of PHP


  • Added Indicator on the upload form showing your PHP maximum file upload size limit
  • If your file exceeds your upload limit, the plugin will warn you and not let the upload proceed.
  • You will now have the ability to turn off the use of WordPress’s form nonce. The nonce is a built in security measure to protect your forms from being hijacked. It is not recommended that you disable this, but some users using caching plugins have reported issues and requested this ability.


  • Fixed bug that caused the widget verification email to be blank


  1. Moved the landing page selection option to the download upload form. You can now select/create a landing page for each individual download.



  1. Fixed widget background and added the ability to add ! to use with important to the widget background form color and form input fields background css fields



  1. If Privacy Page option is not used the fields are hidden.
  2. Updated admin header.
  3. Admin widget will now only show if an admin is logged in.



  1. Added ability to add a link to your privacy policy page in the forms.
  2. Added ability to set the form font title color and size.
  3. Email Subject line has been translated.



  1. Added ability to style the page and post form including adding your own css class.
  2. Added optional notification to admin of download.
  3. Fixed plugin activation error.
  4. Corrected misspelling in Widget.
  5. Added error messages for invalid or missing verification numbers.
  6. Added limited stylesheet for ie8 and below.



Fixed bug that blocked subscribers from editing their profile (Yes, a rookie move)



  1. Discovered and fixed a security issue with the download link



  1. Resolved download issue with android phones. Downloads now work in all mobile phone, tablets etc.
  2. Resolved Download file name issue with Firefox.



  1. Added option to export all email addresses or just verified email addresses.
  2. The name of the file that the user downloads is now the name you gave your download.
  3. Added the ability to change the text in the download button.
  4. Added date of download to subscriber table.
  5. Added admin warning message if the Landing Page is not set in the options secion.



  1. Added German Translation – de_DE
  2. Updated French Translation thanks to Laurent LEMOINE @
  3. Corrected some misspellings


  1. Added ability to upload mp3 files for download.
  2. Added Delete confirmations for downloads and subscribers.
  3. Code enhancements for smother operation. (Fingers crossed)
  4. Added Error messages to help trouble shoot problems.
  5. Improved instructions throughout the pages.
  6. Added Spanish (via Google Translate) language translation.
  7. Fixed the form. Looked cockeyed in Firefox.


  1. Added ability to style the widget in the plugin admin panel.
  2. Minor code fixes.


Corrected spelling error in form



  1. Made an adjustment to the mime type that might help with an issue that people are having when downloading to apple products



  1. Added ability to change wording on the form submit button. You can now add the following option to the short code to change the button text: button_text=”Your Button Text”.
    Example: [lab_subscriber_download_form download_id=1 text=”Your Custom Text Here” button_text=”Your Button Text Here”]
  2. Added the ability to change the submit button text in the widget form as well.



  1. Added a widget to the admin dashboard that summerizes your total subscribers and downloads.
  2. Added an option to display a promotional link to plugin authors website



  1. Added the ability to edit downloads
  2. You can now replace the current download without changing the shortcode
  3. You can now change the display name of the download without changing the shortcode
  4. You can now reset the download count
  5. Added more support info to plugin header and updated donate nag message



Changed location of download directory to avoid deletion when upgrading.



  1. Added the ability to add download subscribers to the wordpress users table.
  2. Added the ability to use custom text in the subscriber registration shortcode form.
    Example: [lab_subscriber_download_form download_id=1 text=”Your Custom Text Here”]
  3. Added the ability to add custom text to subscriber registration widget form.
  4. Correct formatting error that caused the widget to not work.



  • Initial beta release.