BBA Secure File Downloads
BBA Secure File Downloads
Description
BBA Secure File Downloads lets you select files from the Media Library and generate a stable File ID for each file. Then you can place a download button anywhere using:
[bbasfd_download id=”FILE_ID”]
The download is served through a controlled endpoint instead of exposing the direct file URL.
Looking for the PRO version?
https://bigbad.agency/portfolio/wordpress-plugins/secure-file-downloads-for-wordpress/
Usage
Shortcode:
* [bbasfd_download id=”FILE_ID”]
Optional:
* text=”Get the free plugin”
* class=”my-css-class”
Installation
- Upload the plugin folder to /wp-content/plugins/ or install via Plugins.
- Activate the plugin.
- Go to Secure Downloads Files and add your files.
- Copy the shortcode and paste it into a page/post.
Screenshots

The Files screen — pick any file already in your Media Library, get a stable numeric File ID and a ready-to-copy shortcode.

Settings — set the default download button text used when a shortcode does not specify its own.

The built-in "How It Works" guide explains the security model and what the optional Pro add-on adds (download analytics, password protection, per-file download limits).

The shortcode renders a download link on the front end; the real /wp-content/uploads/ file URL never appears in your page HTML.
Faq
Unlimited. The free version does not cap the number of secure File IDs you can create. PRO does not “unlock more files” — instead it adds analytics (who downloaded what, and when), per-file password protection, and per-file download limits (cap the number of times a specific file can be downloaded).
Yes. Use Elementor’s Shortcode widget with the [bbasfd_download] shortcode.
You can learn more about the PRO version here:
https://bigbad.agency/portfolio/wordpress-plugins/secure-file-downloads-for-wordpress/
Reviews
Changelog
1.0.9 – 2026-07-23
- Fix: the built-in “How to Use” help page showed the wrong shortcode ([secure_download]); it now correctly shows [bbasfd_download].
- New: added “Getting Started” and “How It Works” help pages in the admin so first-time setup and the security model are documented in-plugin.
- Change: removed the unused “Default link expiry” setting, which described a capability the current product does not ship.
- Docs: corrected the FAQ (the free version has never capped the number of files) and added screenshot captions.
1.0.8 – 2026-05-21
- Compatibility bump. Re-verified against current WordPress release.
- Raised Requires PHP floor to 7.4 (PHP 7.0-7.3 are EOL).
- No functional changes.
1.0.7
- Security: Validate the download nonce before touching any other request input.
- Security: Add clear permission hooks for download authorization.
- Compliance: Document raw/binary output in the download endpoint for scanners.
1.0.2
- Fix: Plugin Check compliance (admin enqueue without direct $_GET access, readme headers).
1.0.1
- Fix: add nonce to download links and validate in handler.
- Fix: use WP_Filesystem for file reads (Plugin Check compliance).
- Fix: wp_unslash() before sanitization for request values.
- Fix: translators comment for placeholder strings.
- Meta: bump Tested up to.
1.0.0
- Initial release: Files UI, Settings, How to Use, Help/About, shortcode, and secure download endpoint.