{"id":283203,"date":"2026-03-07T05:36:18","date_gmt":"2026-03-07T05:36:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/bba-secure-file-downloads\/"},"modified":"2026-07-23T18:52:50","modified_gmt":"2026-07-23T18:52:50","slug":"bba-secure-file-downloads","status":"publish","type":"plugin","link":"https:\/\/de.wordpress.org\/plugins\/bba-secure-file-downloads\/","author":14097479,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.9","stable_tag":"1.0.9","tested":"7.0.2","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"BBA Secure File Downloads","header_author":"BigBad Agency","header_description":"Secure, controlled file downloads using WordPress Media Library files. Includes an admin UI to add files and a shortcode to render download buttons.","assets_banners_color":"3d2417","last_updated":"2026-07-23 18:52:50","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/bigbad.agency\/portfolio\/wordpress-plugins\/secure-file-downloads-for-wordpress\/","header_author_uri":"https:\/\/bigbad.agency","rating":0,"author_block_rating":0,"active_installs":0,"downloads":578,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.8":{"tag":"1.0.8","author":"sofrustrate","date":"2026-05-21 10:48:44"},"1.0.9":{"tag":"1.0.9","author":"sofrustrate","date":"2026-07-23 18:52:50"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3477423,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon-512x512.png":{"filename":"icon-512x512.png","revision":3477416,"resolution":"512x512","location":"assets","locale":"","width":512,"height":512}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3477416,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3477423,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.8","1.0.9"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3620399,"resolution":"1","location":"assets","locale":"","width":1440,"height":900},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3620399,"resolution":"2","location":"assets","locale":"","width":1440,"height":900},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3620399,"resolution":"3","location":"assets","locale":"","width":1440,"height":900},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3620399,"resolution":"4","location":"assets","locale":"","width":1440,"height":820}},"screenshots":{"1":"The Files screen \u2014 pick any file already in your Media Library, get a stable numeric File ID and a ready-to-copy shortcode.","2":"Settings \u2014 set the default download button text used when a shortcode does not specify its own.","3":"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).","4":"The shortcode renders a download link on the front end; the real \/wp-content\/uploads\/ file URL never appears in your page HTML."}},"plugin_section":[],"plugin_tags":[5440,24613,233,44220,80],"plugin_category":[43],"plugin_contributors":[254594],"plugin_business_model":[],"class_list":["post-283203","plugin","type-plugin","status-publish","hentry","plugin_tags-downloads","plugin_tags-file-download","plugin_tags-media-library","plugin_tags-secure-download","plugin_tags-shortcode","plugin_category-customization","plugin_contributors-sofrustrate","plugin_committers-sofrustrate"],"banners":{"banner":"https:\/\/ps.w.org\/bba-secure-file-downloads\/assets\/banner-772x250.png?rev=3477423","banner_2x":"https:\/\/ps.w.org\/bba-secure-file-downloads\/assets\/banner-1544x500.png?rev=3477416","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/bba-secure-file-downloads\/assets\/icon-256x256.png?rev=3477423","icon_2x":"https:\/\/ps.w.org\/bba-secure-file-downloads\/assets\/icon-256x256.png?rev=3477423","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/bba-secure-file-downloads\/assets\/screenshot-1.jpg?rev=3620399","caption":"The Files screen \u2014 pick any file already in your Media Library, get a stable numeric File ID and a ready-to-copy shortcode."},{"src":"https:\/\/ps.w.org\/bba-secure-file-downloads\/assets\/screenshot-2.jpg?rev=3620399","caption":"Settings \u2014 set the default download button text used when a shortcode does not specify its own."},{"src":"https:\/\/ps.w.org\/bba-secure-file-downloads\/assets\/screenshot-3.jpg?rev=3620399","caption":"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)."},{"src":"https:\/\/ps.w.org\/bba-secure-file-downloads\/assets\/screenshot-4.jpg?rev=3620399","caption":"The shortcode renders a download link on the front end; the real \/wp-content\/uploads\/ file URL never appears in your page HTML."}],"raw_content":"<!--section=description-->\n<p>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:<\/p>\n\n<p>[bbasfd_download id=\"FILE_ID\"]<\/p>\n\n<p>The download is served through a controlled endpoint instead of exposing the direct file URL.<\/p>\n\n<p>Looking for the PRO version?\nhttps:\/\/bigbad.agency\/portfolio\/wordpress-plugins\/secure-file-downloads-for-wordpress\/<\/p>\n\n<h3>Usage<\/h3>\n\n<p>Shortcode:\n* [bbasfd_download id=\"FILE_ID\"]\nOptional:\n* text=\"Get the free plugin\"\n* class=\"my-css-class\"<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to \/wp-content\/plugins\/ or install via Plugins.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to Secure Downloads \u2192 Files and add your files.<\/li>\n<li>Copy the shortcode and paste it into a page\/post.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20many%20secure%20files%20can%20i%20create%20on%20the%20free%20version%3F\"><h3>How many secure files can I create on the free version?<\/h3><\/dt>\n<dd><p>Unlimited. The free version does not cap the number of secure File IDs you can create. PRO does not \"unlock more files\" \u2014 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).<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20elementor%3F\"><h3>Does it work with Elementor?<\/h3><\/dt>\n<dd><p>Yes. Use Elementor\u2019s Shortcode widget with the [bbasfd_download] shortcode.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20the%20pro%20version%3F\"><h3>Where can I get the PRO version?<\/h3><\/dt>\n<dd><p>You can learn more about the PRO version here:\nhttps:\/\/bigbad.agency\/portfolio\/wordpress-plugins\/secure-file-downloads-for-wordpress\/<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.9 - 2026-07-23<\/h4>\n\n<ul>\n<li>Fix: the built-in \"How to Use\" help page showed the wrong shortcode ([secure_download]); it now correctly shows [bbasfd_download].<\/li>\n<li>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.<\/li>\n<li>Change: removed the unused \"Default link expiry\" setting, which described a capability the current product does not ship.<\/li>\n<li>Docs: corrected the FAQ (the free version has never capped the number of files) and added screenshot captions.<\/li>\n<\/ul>\n\n<h4>1.0.8 - 2026-05-21<\/h4>\n\n<ul>\n<li>Compatibility bump. Re-verified against current WordPress release.<\/li>\n<li>Raised Requires PHP floor to 7.4 (PHP 7.0-7.3 are EOL).<\/li>\n<li>No functional changes.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Security: Validate the download nonce before touching any other request input.<\/li>\n<li>Security: Add clear permission hooks for download authorization.<\/li>\n<li>Compliance: Document raw\/binary output in the download endpoint for scanners.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: Plugin Check compliance (admin enqueue without direct $_GET access, readme headers).<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: add nonce to download links and validate in handler.<\/li>\n<li>Fix: use WP_Filesystem for file reads (Plugin Check compliance).<\/li>\n<li>Fix: wp_unslash() before sanitization for request values.<\/li>\n<li>Fix: translators comment for placeholder strings.<\/li>\n<li>Meta: bump Tested up to.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: Files UI, Settings, How to Use, Help\/About, shortcode, and secure download endpoint.<\/li>\n<\/ul>","raw_excerpt":"Serve Media Library files through a controlled download endpoint, and place download buttons anywhere with a shortcode.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/283203","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=283203"}],"author":[{"embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/sofrustrate"}],"wp:attachment":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=283203"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=283203"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=283203"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=283203"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=283203"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=283203"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}