=== Download Monitor ===
Contributors: wpchill, silkalns, barrykooij, mikejolley  
Tags: download manager, file manager, digital store, ecommerce, password protection  
Requires at least: 5.5  
Tested up to: 7.0
Stable tag: 5.2.1
License: GPLv3  
Requires PHP: 7.4

== Description ==
## Powerful Download Manager Plugin for WordPress

Download Monitor is a powerful download manager plugin for handling downloadable files, adding download links to your posts or pages, and tracking downloads.

Download Monitor has been featured on the websites of some of the most popular and leading businesses in the WordPress ecosystem, such as WPBeginner, Pagely, Jilt, WP Fusion & Kinsta.

= See how easy it is to list a download on your WordPress site =
https://www.youtube.com/watch?v=xEbliDziMrU&list=PLM2tOjfhVrZfvMiJ3ib1GqvWBpYpBeQaS

## Download Monitor Extensions available when purchasing a Pro plan

* [Buttons](https://download-monitor.com/extensions/buttons/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=Buttons): Create beautiful, fully customizable download buttons for your files.
* [Downloading Page](https://download-monitor.com/extensions/downloading-page/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=Downloading+page): Serve your downloads from a separate page.
* [Google Drive](https://download-monitor.com/extensions/google-drive/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=Google+drive): Lets you use the files hosted on your Google Drive as Download Monitor files.
* [Advanced Access Manager](https://download-monitor.com/extensions/advanced-access-manager/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=Advanced+access+manager): Create advanced download limitations per download and on a global level.
* [Email Notification](https://download-monitor.com/extensions/email-notification/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=Email+notification): Trigger an email notification whenever one of your files is downloaded.
* [Document Library Manage](https://download-monitor.com/kb/page-addon/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=Page+addon): Display files in fast, searchable tables or grids with sorting, filters, and flexible styling. Your documents, easy to find.
* Lock downloads option: Set restrictions to your download functionality using [MailChimp Lock](https://www.download-monitor.com/extensions/mailchimp-lock/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=Mailchimp+lock), [Email Lock](https://www.download-monitor.com/extensions/email-lock/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=Email+lock), [CAPTCHA](https://download-monitor.com/extensions/captcha/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=Captcha), 
* [Gravity Forms Gated Content](https://www.download-monitor.com/extensions/gravity-forms/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=Gravity+forms): easily create a download gate with Gravity Forms. Require users to fill-in a form before accessing a download.
* [Ninja Forms Lock](https://download-monitor.com/extensions/ninja-forms/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=Ninja+forms): if you are an user of Ninja Forms, you can also use this to require users to fill-in of a form before accesing a download.
* [WPForms Gated Content](https://download-monitor.com/kb/wpforms-integration/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=WPForms): gate your downloads by first requesting users to submit a form build using WPForms.
* [Contact Form 7 Lock](https://download-monitor.com/kb/contact-form-7/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=CF7): request the submission of a Contact Form 7 form before providing access to the download.

## Documentation
We have a large Knowledge Base on our [Download Monitor website](https://www.download-monitor.com/kb/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=knowledge+base) that contains documentation about how to how to setup and use Download Monitor.

## How-to Guides
Are you a new Download Monitor user? Read these articles on how to get your files ready for download with Download Monitor:
[How to install Download Monitor](https://www.download-monitor.com/kb/install-and-activate-download-monitor/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=how+to+install)
[How to add your first download in Download Monitor](https://www.download-monitor.com/kb/adding-downloads-to-your-website/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=how+to+add)
[How to list your first download on your website with the download shortcode](https://www.download-monitor.com/kb/shortcode-downloads/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=how+to+list)

More advanced topics that a lot of people find interesting:
[Learn more about the different ways you can style your download buttons](https://www.download-monitor.com/kb/content-templates/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=style+buttons)
[Learn more about how to customize your download buttons](https://www.download-monitor.com/kb/overriding-content-templates/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=customize+buttons)
[Learn more about what actions and filters are available in Download Monitor](https://www.download-monitor.com/kb/action-and-filter-reference/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=action+filter)

= Contributing and reporting bugs =

You can contribute code to this plugin via GitHub: [https://github.com/WPChill/download-monitor](https://github.com/WPChill/download-monitor)
You can contribute localizations via Transifex [https://www.transifex.com/projects/p/download-monitor/](https://www.transifex.com/projects/p/download-monitor/)

## Help & Support
* Search our extensive [knowledge base](https://download-monitor.com/kb/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=knowledge+base) for documentation about installing the plugin/the extensions, available settings and how to use them.
* Browse [Download monitor's WordPress forum](https://wordpress.org/plugins/download-monitor/) to find answers to your queries or create a new topic.
* [Contact us](https://download-monitor.com/contact/?utm_source=wordpress.org&utm_medium=link&utm_campaign=description&utm_term=contact+us) directly for support.

== 3rd party or external service disclaimer ==

The plugin connects to our website through an API call (https://download-monitor.com/?dlm-all-extensions=true) in order to request a list of available extensions.

IT DOES NOT SEND ANY DATA NOR DO WE COLLECT INFORMATION FROM THE REQUEST

Our privacy policy can be found at this URL https://download-monitor.com/privacy-policy/


== Installation ==

= Automatic installation =

Automatic installation is the easiest option as WordPress handles the file transfers itself and you don't even need to leave your web browser. 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 "Download Monitor" 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. Most importantly of course, you can install it by clicking _Install Now_.

= Manual installation =

The manual installation method involves downloading the plugin and uploading it to your webserver via your favourite FTP application.

* Download the plugin file to your computer and unzip it
* Using an FTP program, or your hosting control panel, upload the unzipped plugin folder to your WordPress installation's `wp-content/plugins/` directory.
* Activate the plugin from the Plugins menu within the WordPress admin.

== Frequently Asked Questions ==

= Can I upload .xxx filetype using the uploader? =

Download Monitor uses the WordPress uploader for uploading files. By default these formats are supported:

* Images - .jpg, .jpeg, .png, .gif
* Documents - .pdf, .doc, .docx, .ppt, .pptx, .pps, .ppsx, .odt, .xls, .xlsx
* Music - .mp3, .m4a, .ogg, .wav
* Video - .mp4, .m4v, .mov, .wmv, .avi, .mpg, .ogv, .3gp, .3g2

To add more you can use a plugin, or filters. This post is a good resource for doing it with filters: [Change WordPress Upload Mime Types](http://www.paulund.co.uk/change-wordpress-upload-mime-types).

= Can I link to external downloads? =

Yes, you can use both local paths and external URLs.

= My Download links 404 =

Download links are powered by endpoints. If you find them 404'ing, go to Settings > Permalinks and save. This will flush the permalinks and allow our endpoints to be added.

= Download counts are not increasing when I download something =

Admin hits are not counted, log out and try again!


== Screenshots ==

1. Easily add downloads to your website with our Gutenberg block!
2. The main admin screen lists your downloads using familiar WordPress UI.
3. Easily add file information and multiple versions.
4. The quick add panel can be opened via a link about the post editor. This lets you quickly add a file and insert it into a post.

== Changelog ==
= 5.2.1 - 07.07.2026 =
Improved: File browser modal updated.
Fixed: Downloads widget chart on the dashboard showing incorrect data.
Fixed: Download title sometimes displayed incorrectly on the Reports page.
Fixed: PHP notice shown on some admin pages about an incorrectly enqueued script.
Fixed: File download not working correctly on Safari.
Improved: Download button templates now integrate better with active theme styling.
Fixed: Various Terms & Conditions issues, including messaging and translation support.

= 5.2.0 - 15.06.2026 =
Changed: Improved frontend CSS class naming to avoid conflicts with other plugins.
Added: Filter to show extra version fields in the download editor.
Fixed: PHP warning related to session handling on hosts with open_basedir restrictions.

= 5.1.16 - 10.06.2026 =
Removed: Short Description meta box from download edit page.
Removed: ID field from Download Information meta box.
Removed: Manual download count and File Date fields from version editor.
Added: Title validation — publishing a download without a title now shows an error notice and keeps the download as draft.
Fixed: Debug Download meta box is now hidden by default, togglable via Screen Options.
Fixed: Version date is preserved on save instead of being overwritten.
Fixed: Button styles and radio button selection color in Insert Download popup.
Fixed: WPML translated endpoint resolution for current language in download handler.

= 5.1.15 - 19.05.2026 =
Fixed: Compatibility with Divi builder. No longer loading XHR javascript in builder.
Added: Windows Server (IIS) support for dlm_uploads directory protection via web.config using requestFiltering.
Fixed: session_start() failure when server session directory is missing, with graceful fallback to sys_get_temp_dir().

= 5.1.14 - 14.04.2026 =
Fixed: Polylang includes language prefix and any subdirectory.
Fixed: Error handler returns HTTP 500 instead of 404/403.
Fixed: No-access modal missing CSS when dlm-frontend was not pre-loaded on the page

= 5.1.13 - 14.04.2026 =
Fixed: Admin styles compatibility with WordPress 7.0.

= 5.1.12 - 25.03.2026 =
Removed: Settings page sidebar upsells.
Added: Blacklist protection upsell in settings page.

= 5.1.11 - 20.03.2026 =
Fixed: Security update.
Fixed: WPML double language prefix in download URL.

= 5.1.10 - 05.03.2026 =
Fixed: Security update.

= 5.1.9 - 04.03.2026 =
Fixed: Security update

= 5.1.8 - 26.02.2026 =
Fixed: Security - PayPal payment gateway IDOR and financial logic vulnerability. Validates order hash (timing-safe), binds PayPal token to the order, and only completes the order when the transaction matches. Handles capture failures safely.

= 5.1.7 - 27.01.2026 =
Update: Removed unused images.
Fixed: Textdomain for some translations.
Fixed: Removed upsells from REST API settings tab.
Fixed: Safari compatibility with XHR redirect.
Fixed: XHR compatibility with plugins that remove domains from links.

= 5.1.6 - 05.11.2025 =
Added: Black Friday upsells & notifications updates.
Fixed: Logging no access page redrection

= 5.1.5 - 27.10.2025 =
Fixed: Redirect filter not triggered for deleted/non-existing downloads.
Fixed: Admin upsells modal buttons not working properly.

= 5.1.4 - 07.10.2025 =
Changed: Removed DLM Pro upsell.
Added: Upsell for DLM Document Library Manager.
Fixed: Log meta values not saving when creating a download log.
Update: Optimized database cleanup for expired cookies.

= 5.1.3 - 18.09.2025 =
Update: Improved Reports widget and Reports page UI/UX.
Update: Reports upsells now display with the correct filters design.
Fix: Download meta values were sometimes not saved correctly when using WPML.

= 5.1.2 - 05.09.2025 =
Fixed: Start session only on download-related requests.

= 5.1.1 - 01.09.2025 =
Fixed: Removed stray debugger statements.

= 5.1.0 - 27.08.2025 =
* Changed: Reworked the reports interface improving speed, design and accuracy.

= 5.0.33 - 08.08.2025 =
Fixed: Compatibility with Safari browser & redirect to file.

= 5.0.32 - 30.07.2025 =
Changed: Removed the "download version" post type from the list of translatable content in `wpml-config.xml`.

= 5.0.31 - 28.07.2025 =
Fixed: Set the default language for download taxonomies when using the Polylang plugin.
Changed: Removed 'dlm_enable_api_keys' filter and always render the REST API table in Settings -> Advanced -> REST API.

= 5.0.30 - 25.07.2025 =
Fixed: Downloads without a default WPML language were not showing in the admin table.

= 5.0.29 - 23.07.2025 =
Fixed: Compatibility with Admin Columns plugin.

= 5.0.28 - 22.07.2025 =
Added: Made the plugin fully translatable with WPML.

= 5.0.27 - 08.07.2025 =
Fixed: Expired cookies were not cleared from cookie data tables.

= 5.0.26 - 20.06.2025 =
Changed: Updated label of Page Addon to Document Library Manager

= 5.0.25 - 05.06.2025 =
Fixed: Set the Secure attribute on the PHPSESSID cookie for the session started by DLM.

= 5.0.24 - 26.05.2025 -
Added: New filters to allow preventing session initialization when necessary.
Fixed: Issue causing license deactivation during scheduled weekly checks.

= 5.0.23 - 22.04.2025 -
Fixed: License was being deactivated for single product licenses.
Fixed: Security update

= 5.0.22 - 17.03.2025 -
Added: Integrated WPChill Notification System.

= 5.0.12 - 25.09.2024 =
Fixed: Error on simple site approved download path deletion

= 5.0.11 - 25.09.2024 =
Fixed: Critical error when no paths ( [#1558](https://github.com/WPChill/download-monitor/issues/1558) )
Fixed: REST API Version creation order ( [#1557](https://github.com/WPChill/download-monitor/issues/1557) )
Fixed: Allow network admin to quick add paths from Download edit screen ( [#1559](https://github.com/WPChill/download-monitor/issues/1559) )

= 5.0.10 - 24.09.2024 =
Fixed: Check user capability when enabling Shop ( thanks to @truonghuuphuc for reporting ) ( [#1551](https://github.com/WPChill/download-monitor/issues/1551) )
Fixed: Double slash for home url ( [#1533](https://github.com/WPChill/download-monitor/issues/1533) )
Changed: Downloadable file URLs format on save ( [#1536](https://github.com/WPChill/download-monitor/issues/1536) )
Fixed: PHP Error ( [#1534](https://github.com/WPChill/download-monitor/issues/1534) )
Changed: Downloads Paths for multisite, now on each site ( only network admin can add them ) ( [#1538](https://github.com/WPChill/download-monitor/issues/1538) )
Fixed: Database error when installing tables on multisite ( [#1540](https://github.com/WPChill/download-monitor/issues/1540) )
Added: Terms & Conditions quick edit action in admin list ( [#1510](https://github.com/WPChill/download-monitor/issues/1510) )
Fixed: New untitled Download fatal error ( [#1541](https://github.com/WPChill/download-monitor/issues/1541) )
Fixed: Plugin conflict with Event Espresso ( [#1548](https://github.com/WPChill/download-monitor/issues/1548) )
Fixed: Main site in multisite incorrect route ( [#1549](https://github.com/WPChill/download-monitor/issues/1549) )
Fixed: Printing emoji in Insert in Editor action ( [#1504](https://github.com/WPChill/download-monitor/issues/1504) )
Fixed: Creating API Keys on Firefox & Firefox like browsers ( [#1553](https://github.com/WPChill/download-monitor/issues/1553) )

= 5.0.9 - 29.08.2024 =
Fixed: Security update when exporting single Download CPT

= 5.0.8 - 28.08.2024 =
Fixed: Logging bug in some conditions ( [#1527](https://github.com/WPChill/download-monitor/issues/1527) )
Fixed: Legacy importer null content bug ( [#1528](https://github.com/WPChill/download-monitor/issues/1528) )

= 5.0.7 - 27.08.2024 =
Fixed: Versions order not following menu order ( [#1511](https://github.com/WPChill/download-monitor/issues/1511) )
Fixed: Undefined variable ( [#1523](https://github.com/WPChill/download-monitor/issues/1523) )
Fixed: Not logging downloads in some conditions ( [#1522](https://github.com/WPChill/download-monitor/issues/1522) )

= 5.0.5 - 23.08.2024 =
Fixed: Dev fixes

= 5.0.4 - 23.08.2024 =
Fixed: Dev files included

= 5.0.0 - 21.08.2024 =
Fixed: File Browser not working on installations that return '//' ( double slashed ) paths. ( [#1412](https://github.com/WPChill/download-monitor/issues/1412) )
Fixed: File Browser no longer displays cross-site folders in multisite environments. ( [#1402](https://github.com/WPChill/download-monitor/issues/1402) )
Fixed: Performance issues that were affecting websites with a large number of downloads or a large postmeta table. ( [#1421](https://github.com/WPChill/download-monitor/issues/1421) )( [#1425](https://github.com/WPChill/download-monitor/issues/1425) )
Fixed: Error when trying to delete files on Download deletion ( [#1468](https://github.com/WPChill/download-monitor/issues/1468) )
Fixed: When using XHR to download files, some browsers would block redirecting a Download file in a new tab ( [#1467](https://github.com/WPChill/download-monitor/issues/1467) )
Fixed: Incompatibility with the WPML plugin ( [#1453](https://github.com/WPChill/download-monitor/issues/1453) )
Fixed: Certain UI bugs in the admin area
Fixed: Filetype was not showing the icon ( [#1426](https://github.com/WPChill/download-monitor/issues/1426) )
Fixed: Multiple downloads bug when on the same page using the "Button" template ( [#1449](https://github.com/WPChill/download-monitor/issues/1449) )
Fixed: PayPal payment gateway PHP 8.x compatibility
Fixed: UUID column from download_log can not be null ( [#1506](https://github.com/WPChill/download-monitor/issues/1506) )
Fixed: External file Downloads might not register downloads ( [#1508](https://github.com/WPChill/download-monitor/issues/1508) )
Changed: Admin download edit view ( [#1398](https://github.com/WPChill/download-monitor/issues/1398) )
Changed: Enhanced display of settings descriptions. ( [#1444](https://github.com/WPChill/download-monitor/issues/1444) )
Changed: Major change, multiple allowed uploads paths and setting redesign ( [#1447](https://github.com/WPChill/download-monitor/issues/1447) )
Changed: Major change, switched to DLM-globaly used cookie for Download Monitor and its extensions ( [#1384](https://github.com/WPChill/download-monitor/issues/1384) )
Changed: File restriction, search and placement now based on allowed paths, and now is absolute
Chaged: Removed Twitter Lock upsells, extension meets the end of life ( [#1497](https://github.com/WPChill/download-monitor/issues/1497) )
Added: File type & location column to the admin list table ( [#1450](https://github.com/WPChill/download-monitor/issues/1450) )
Added: REST API endpoints for creating, updating, and deleting downloads and versions ( [#1215](https://github.com/WPChill/download-monitor/issues/1215) )
Added: REST API Keys, to allow access to the REST API endpoint functionality
Added: Included the Terms and Conditions premium plugin in the LITE version ( [#1445](https://github.com/WPChill/download-monitor/issues/1445) )
Added: Download debug export metabox ( [#1387](https://github.com/WPChill/download-monitor/issues/1387) )
Added: Possibility in Multisite to specify the uploads folder for each site ( [#1403](https://github.com/WPChill/download-monitor/issues/1403) )
Added: Directories access restriction ( [#1401](https://github.com/WPChill/download-monitor/issues/1401) )

= 4.9.14 - 27.05.2024 =
Fixed: Security issue, thanks to Arkadiusz Hydzik for reporting it.

= 4.9.13 - 15.04.2024 =
Fixed: Enforce on what pages should the ID pe appended in the title ( [#1443](https://github.com/WPChill/download-monitor/issues/1443) )
Fixed: WP 6.5 compatibility for fresh installs ( [#1442](https://github.com/WPChill/download-monitor/issues/1442) )

= 4.9.12 - 11.04.2024 =
Fixed: Lite vs Premium page not showing when a license is not added.( [#1441](https://github.com/WPChill/download-monitor/issues/1441) )

= 4.9.11 - 16.02.2024 =
Changed: Removed Freemius
Fixed: Slight UI fixes

= 4.9.10 - 05.02.2024 =
Fixed: Versions download link for the "Version list" template ( [#1422](https://github.com/WPChill/download-monitor/issues/1422) )

= 4.9.9 - 30.01.2024 =
Fixed: Performance issue fix

= 4.9.8 - 25.01.2024 =
Fixed: Products update problem ( [#1415](https://github.com/WPChill/download-monitor/issues/1415) )
Fixed: PHP Warnings on non-defined Download templates ( [#1413](https://github.com/WPChill/download-monitor/issues/1413) )

= 4.9.7 - 23.01.2024 =
Fixed: [] operator not supported for strings error. ( [#1409](https://github.com/WPChill/download-monitor/issues/1409) )
Fixed: User reports not showing user name & role. ( [#1410](https://github.com/WPChill/download-monitor/issues/1410) )

= 4.9.6 - 22.01.2024 =
Changed: Moved, removed and updated admin settings for "General" section ( [#1346](https://github.com/WPChill/download-monitor/issues/1346) )
Changed: Moved, renamed and updated admin settings for "Shop" section ( [#1347](https://github.com/WPChill/download-monitor/issues/1347) )
Changed: Moved, removed and updated admin settings for "Advanced" section ( [#1348](https://github.com/WPChill/download-monitor/issues/1348) )
Changed: Prevent Duplicate Downloads ON by default on production(live) websites.  ( [#1350](https://github.com/WPChill/download-monitor/issues/1350) )
Changed: Reports - don't get users without downloads. ( [#1313](https://github.com/WPChill/download-monitor/issues/1313) )
Fixed: Removed nonce check on reports for WordPress' own requests ( [#1383](https://github.com/WPChill/download-monitor/issues/1383) )
Added: Templates section where the user can see overridden templates. Also, moved the Misc section in the General tab ( [#1389](https://github.com/WPChill/download-monitor/issues/1389) )
Added: Dynamic data to plugin's templates, now offering way to add attributes to the link without needing to override the template ( [#1385]( https://github.com/WPChill/download-monitor/issues/1385) )
Added: Open in new tab option when selecting "Redirect to file" option ( [#1386]( https://github.com/WPChill/download-monitor/issues/1386 ) )
Added: Alert if some PHP functions/modules are disabled ( [#1392]( https://github.com/WPChill/download-monitor/issues/1392 ) )
Changed: Do not take into consideration the 60s window for unique downloads on localhost or staging ( [#1350]( https://github.com/WPChill/download-monitor/issues/1350 ) )
Fixed: Disabling file browser from wp-config.php ( [#1259]( https://github.com/WPChill/download-monitor/issues/1259 ) )
Changed: Moved external hosting upsell to its own metabox ( [#1405](https://github.com/WPChill/download-monitor/issues/1405) )

You can read the complete changelog [here](https://github.com/WPChill/download-monitor/blob/master/changelog.txt)

== Upgrade Notice ==

= 5.1.0 =
* We strongly recommend to create a backup of your current website before applying the update.
