{"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-03-08T13:42:48","modified_gmt":"2026-03-08T13:42:48","slug":"bba-secure-file-downloads","status":"publish","type":"plugin","link":"https:\/\/tw.wordpress.org\/plugins\/bba-secure-file-downloads\/","author":14097479,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.7","stable_tag":"trunk","tested":"6.9.4","requires":"5.8","requires_php":"7.0","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-03-08 13:42:48","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":174,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3477423,"resolution":"256x256","location":"assets","locale":""},"icon-512x512.png":{"filename":"icon-512x512.png","revision":3477416,"resolution":"512x512","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3477416,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3477423,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":[],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3477423,"resolution":"1","location":"assets","locale":""},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3477423,"resolution":"2","location":"assets","locale":""},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3477423,"resolution":"3","location":"assets","locale":""},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3477423,"resolution":"4","location":"assets","locale":""}},"screenshots":[],"jetpack_post_was_ever_published":false},"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=3477423","caption":""},{"src":"https:\/\/ps.w.org\/bba-secure-file-downloads\/assets\/screenshot-2.jpg?rev=3477423","caption":""},{"src":"https:\/\/ps.w.org\/bba-secure-file-downloads\/assets\/screenshot-3.jpg?rev=3477423","caption":""},{"src":"https:\/\/ps.w.org\/bba-secure-file-downloads\/assets\/screenshot-4.jpg?rev=3477423","caption":""}],"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=\"why%20does%20free%20limit%20to%203%20files%3F\"><h3>Why does FREE limit to 3 files?<\/h3><\/dt>\n<dd><p>This keeps the free plugin fully usable while allowing a PRO upgrade path. PRO can unlock unlimited files.  With PRO, you can also enjoy analytics, password protected downloads, limited number of downloads and complete control of your file download system.<\/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.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:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/283203","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=283203"}],"author":[{"embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/sofrustrate"}],"wp:attachment":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=283203"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=283203"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=283203"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=283203"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=283203"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=283203"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}