Secure Downloads


Secure Downloads plugin generate secure download links for protected files and can send emails to your clients for downloading.
Links can expire after a predefined time and you can set IP lock for specific download. Download links does not show real location of files at your server.
You can track every download of files by receiving email about file download with detailed info about download.

Plugin Homepage | Support


  • Securely distribute your files and track every download.
  • Upload your files via familiar WP interface.
  • Define Title, Description and Version Number at “Attachment details” for your protected files
  • Plugin upload files into secure, protected folder. Website visitors will not have direct access to such files.
  • Generate secure links to your protected files, which does not show real location of file.
  • Links can expire after specific time.
  • Links can be locked to specific IP or IP mask (network).
  • Configure email template with different parameters.
  • Send emails to your customers with secure links for download your protected files.
  • Monitor downloading of each files, by receiving email notification about file download with detailed info about download.
  • Fast configure your protected files via CSV form. Useful for saving or editing list of files in one form.
  • Easy reorder list of files via drag and drop interface.
  • Configure URLs for pages with warning, like “link expired notice”.
  • Mobile friendly.


  • Distribute you files after purchase
  • Delivery updates of your products to your customers


  • Send or simply generate secure download links to your protected files.
  • Sortable List of your files – edit and sort (drag and drop) list of your protected files.
  • CSV List of your files – upload files to protected folder, edit file title, description, and version number.
  • Settings – configure different options.
  • Emails – activate and configure email template for sending to your customers and download notification email.
  • Email Delivery – confirmation of email sending.


Automatic installation

To do an automatic install, log in to your WordPress admin panel, navigate to the Plugins menu and click Add New.
In the search field type “Secure Downloads” and click Search Plugins.
Once you’ve found the plugin you can view details about it such as the the point release, rating and description.
Now, you can install it by clicking “Install Now”.

Manual installation via WordPress admin panel

  • Download plugin zip file to your computer
  • In your WordPress admin panel, navigate to the Plugins menu and click Add New.
  • Click “Upload Plugin” button and hit “Choose File” button
  • When the popup appears select your downloaded zip file of plugin
  • Follow the on-screen instructions and wait as the upload completes.
  • When it’s finished, activate the plugin via the prompt. A message will show confirming activation was successful.

Manual installation via FTP

  • Download plugin zip file to your computer and unzip it
  • Using an FTP application, or your hosting control panel, upload the unzipped plugin folder to your WordPress installation’s wp-content/plugins/ directory.
  • In your WordPress admin panel, navigate to the Plugins menu and find your uploaded plugin
  • Click on Activate link under the plugin. A message will show confirming activation was successful.

That’s it!


Adding New Files

  • Open Secure Downloads > Files menu page in WordPress admin panel
  • Click on “Add New” button and upload your files. Please note, you must to upload new files via menu of plugin, for saving these files secure. Do not use previously uploaded files via standard media/pages/posts uploader.
  • Enter Title, Version Number and Description at “Attachment details” section.
  • Select one or multiple files, click insert button and Save changes.

Configure Settings

  • Open Secure Downloads > Settings menu page in WordPress admin panel
  • Configure different settings, like secret key for hash generating, warning URLs, default options, etc…
  • At Secure Downloads > Settings > Emails menu page you can configure email templates that are sending to your customers and administrator

Secure Links for File Downloads

  • Open Secure Downloads menu page in WordPress admin panel
  • Select specific file in selectbox
  • Optionally enter email, if you need to send protected link to your customer
  • Configure link expire time, optionally configure IP loc for file download, and activate option to send copy of email to administrator
  • Click on Generate or Send button for generation or sending email with secure link to your protected file
  • Check status of action


Plugin supports following languages:

  • English


  • PHP 5.2.4 or newer,
  • MySQL version 5.0 or newer,
  • WordPress 4.0 or newer,
  • jQuery 1.7.1 or newer


2023년 10월 27일
Perhaps this plugin is only for text and HTML but I decided to try it as no specific filetypes were specified. I performed a test using the default text file and it worked fine.Later I attempted to send .fbx, .mp3, .wav, and .zip files. None of these filetypes seemed to work. Each email showed the file was 0 bytes in size upon receiving, and the download links redirected to the 404 error page. I gave 3 stars as this likely works for some users use cases, just didn’t work out for what I tried.
2023년 3월 20일
I spent an afternoon setting it all up with multiple emails and working with my hosting company trying to get it to work with some 300M zip files, only to find out it is not working with files of more “than about 100M”. A big waste of my time for a specification that should be stated in the plugin description and documentation.
2020년 4월 21일 답글 1개
Installed and activated plugin. Shared a ZIP file containing an entire WordPress site. Got a notification that client was downloading. Then received about 13 other notifications that the file was being downloaded by several different computers around the world. DEFINITELY NOT SECURE.
2019년 7월 7일
Poor/non-existent documentation, no annotations on settings that explain anything, grammatical errors on website. The developers show complete contempt for even basic English on their website, “All uploaded files stored inside protected, secure folder, which does not accessible for website visitors.” [sic] And they want to take your money, but you’re not worth their time to write up some documentation, annotate the settings, or even get basic English grammar right on their website. No visible ticketing system. Also complete lack of contact details barring a generic contact form and a generic-looking website. Respectable plugin publishers don’t hide behind a veil of anonymity and genericness. Also unclear if it is possible to generate a download link without sending an email. I review thousands of plugins a year and it’s been a while since I’ve seen such a mess of a plugin, where the seemingly-autistic developer lacks the empathy to assume the shoes of an average WP user.
2019년 1월 3일 답글 1개
When trying to activate, I got fatal error, I was not able to login, had to manually rename plugin directory to continue. Never ever happened with any other plugin. Fatal error: Uncaught ArgumentCountError: Too few arguments to function opsd_recheck_plugin_locale()….
모든 10 평가 읽기

기여자 & 개발자

“Secure Downloads”(은)는 오픈 소스 소프트웨어입니다. 다음의 사람들이 이 플러그인에 기여하였습니다.


자국어로 “Secure Downloads”(을)를 번역하세요.

개발에 관심이 있으십니까?

코드 탐색하기는, SVN 저장소를 확인하시거나, 개발 기록RSS로 구독하세요.



  • Added never expire products option (
  • Load some CSS files only at admin panel (


  • New. Icon for WordPress side menu. (


  • Compatibility. Support WordPress 5.7 – update of admin panel styles. (1.2.1)
  • Fix Warning Deprecated: The each() function is deprecated. (1.2.2)
  • Fix Deprecated: Function get_magic_quotes_runtime() is deprecated(1.2.3)


  • Compatibility. Support WordPress 5.5 – update of admin panel styles. (


  • Compatibility. Support WordPress 5.3 – update of admin panel styles. (
  • Under Hub Added hook: ” add_filter( ‘opsd_define_ip_mask’, ‘my_opsd_define_ip_mask’, 10, 1 ); function my_opsd_define_ip_mask ( $ip_mask ){ return $ip_mask } ” for ability to override mask for IP (
  • Fix Checking of saving closing window state (nonce of window) in Ajax request only for current plugin (


  • Fix Notice: Array to string conversion in ..\secure-downloads\core\any\api-emails.php (
  • Under Hub Ability to use action for programmatically send secure email. ( Example: do_action( ‘opsd_send_secure_download_email_to_user’, array( ‘opsd_email_to’ => ’’, ‘send_copy_to_admin’ => ‘Off’, ‘opsd_product_selection’ => 1, ‘opsd_product_expire’ => ‘+ 24 hours’, ‘continue_without_product’ => false ) );


  • Fix conflict issue with Booking Calendar plugin (
  • Fix Fatal error: Uncaught ArgumentCountError: Too few arguments to function opsd_recheck_plugin_locale()… in PHP 7.2 (
  • Fix Notice: A non well formed numeric value encountered in … in PHP 7.2 (
  • Fix Possible Fatal error: Cannot redeclare debuge_log(), if used with some other new plugins. (
  • Fix Error “404 Not found” “../assets/libs/chosen/chosen.css” (
  • Fix Notice: A non well formed numeric value encountered in ../opsd-class-notices.php in PHP 7.2 (


  • Fix issue of checkboxes and radio buttons height in new Firefox updates in admin panel, otherwise sometimes, there exist weird artefact (


  • Add additional warning text about ngnix servers. (1.1.1)
  • Load JavaScript variables only for admin panel (1.1.2)
  • Fix. Issue Fatal error: Uncaught Error: [] operator not supported for strings in ..\wp-content\plugins\secure-downloads\core\admin\api-settings.php:552 (1.1.3)
  • Fix. Issue ( ! ) Notice: Array to string conversion in …\class-admin-settings-api.php:929 (1.1.4)
  • Improvement Updated all links from http to https of plugin website.
  • Improvement Auto select product based on ‘product_name’ parameter in URL (1.1.5)
  • Improvement Auto select product based on ‘product_id’ parameter in URL (1.1.5)
  • Improvement Auto insert email based on ’email’ parameter in URL Example: (1.1.5)