{"id":109,"date":"2026-06-17T15:56:16","date_gmt":"2026-06-17T15:56:16","guid":{"rendered":"https:\/\/chware.org\/?page_id=109"},"modified":"2026-06-17T19:59:57","modified_gmt":"2026-06-17T19:59:57","slug":"wordpress-forced-license-downloader","status":"publish","type":"page","link":"https:\/\/chware.org\/index.php\/wordpress-forced-license-downloader\/","title":{"rendered":"WordPress Forced License Downloader"},"content":{"rendered":"<p><strong>=== WordPress Forced License Downloader (WFLD) ===<\/strong><br \/>\nContributors: Zanphar<br \/>\nStable tag: 1.0.0<br \/>\nRequires at least: 6.0<br \/>\nTested up to: 6.9<br \/>\nRequires PHP: 7.4<br \/>\nLicense: GNU GPLv2<br \/>\nLicense URI: https:\/\/charlieware.com\/licenses\/wfld-license.txt<\/p>\n<p>Enforce compliance and protect your assets. Force users to accept a license agreement before downloading files, while preventing direct hotlinking.<\/p>\n<p><strong>== Description ==<\/strong><\/p>\n<p>WordPress Forced License Downloader (WFLD) is a security and compliance utility for WordPress designed to gate downloadable content behind an explicit license agreement screen. It ensures that visitors and members must review and accept your terms before gaining access to files, making it an essential tool for distributing software binaries, legal documents, digital products, and media.<\/p>\n<p>The plugin features a robust administrative interface with a built-in inline help system to guide configuration. To safeguard your intellectual property and infrastructure, WFLD utilizes file-path obfuscation techniques that mask the true location of your assets, effectively mitigating the risk of unauthorized direct hotlinking and bandwidth theft.<\/p>\n<p>= Key Features =<\/p>\n<ul>\n<li><strong>Out-of-the-Box Templates:<\/strong> Equipped with several standard license agreements available immediately for a streamlined deployment.<\/li>\n<li><strong>Total Content Control:<\/strong> Complete flexibility to alter, change, modify, or remove license agreements to align with your specific legal or proprietary terms.<\/li>\n<li><strong>Inline Guidance:<\/strong> An integrated, contextual help system that explains settings, features, and workflows directly within the admin dashboard as you go.<\/li>\n<li><strong>Asset Obfuscation:<\/strong>\u00a0Conceals the real server paths of documentation, images, products, software, and videos to prevent hotlinking and unauthorized external sharing.<\/li>\n<\/ul>\n<p><strong>== Installation ==<\/strong><\/p>\n<p>1. Upload the `wordpress-forced-license-downloader` folder to the `\/wp-content\/plugins\/` directory, or install directly through the WordPress admin panel.<br \/>\n2. Activate the plugin through the &#8216;Plugins&#8217; menu in WordPress.<br \/>\n3. Navigate to the **WFLD Settings** page in your dashboard to configure your global download rules.<br \/>\n4. Select or customize your preferred license agreements and configure your protected download paths.<\/p>\n<p><strong>== Frequently Asked Questions ==<\/strong><\/p>\n<p><strong>= How does the file obfuscation work? =<\/strong><br \/>\nWFLD intercepts the download request, verifies that the license agreement has been accepted in the user session, and streams the file chunks directly via PHP. The true directory path on your server is never exposed to the client.<\/p>\n<p><strong>= Can I use my own custom proprietary license? =<\/strong><br \/>\nYes. While the plugin includes several standard templates out of the box, you have full control to alter, rewrite, or completely replace the text with your own custom terms.<\/p>\n<p>= Does this prevent people from sharing the downloaded file later? =<br \/>\nThis plugin secures your server infrastructure from direct hotlinking and ensures a compliance check happens *at the point of download*. Once a user saves the file locally, further distribution falls under the legal boundaries established by the license agreement they accepted.<\/p>\n<p><strong>== Screenshots ==<\/strong><\/p>\n<p>1. \/assets\/screenshot-1.png &#8211; The global settings panel displaying available license templates and the inline help blocks.<br \/>\n2. \/assets\/screenshot-2.png &#8211; The front-end user experience showing the mandatory license acceptance screen before a download initiates.<\/p>\n<p><strong>== Changelog ==<\/strong><\/p>\n<p>= 2.1.0 =<br \/>\n* Initial release of WordPress Forced License Downloader (WFLD).<br \/>\n* Integrated pre-configured license templates.<br \/>\n* Implemented file path obfuscation and basic hotlink prevention mechanisms.<br \/>\n* Added contextual administrative inline help system.<\/p>\n<p>The following download button is a real-time example, and allows you to download the WordPress plugin so you can use on your own site.<\/p>\n<div class=\"lm-download-wrapper\" data-instance=\"1\" data-license-id=\"2\" data-download-token=\"32a1bf512ba079085221f12badbed91deb910742\"><button type=\"button\" class=\"lm-download-button\" data-instance=\"1\" data-license-id=\"2\" data-download-token=\"32a1bf512ba079085221f12badbed91deb910742\" data-accepted=\"0\">Download<\/button><\/div>        <div class=\"lm-modal lm-modal-modal\" id=\"lm-modal-2-1\" data-instance=\"1\" data-license-id=\"2\">\n            <div class=\"lm-modal-backdrop\"><\/div>\n            <div class=\"lm-modal-content\">\n                <div class=\"lm-modal-header\">\n                    <h3>License Agreement<\/h3>\n                    <span class=\"lm-license-badge\">GNU General Public License v2.0<\/span>\n                <\/div>\n                <div class=\"lm-modal-body\">\n                    <div class=\"lm-license-scroll\">\n                                                    <p>GNU GENERAL PUBLIC LICENSE<br \/>\nVersion 2, June 1991<\/p>\n<p>Copyright (C) 1989, 1991 Free Software Foundation, Inc.<br \/>\n51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA<\/p>\n<p>Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.<\/p>\n<p>Preamble<\/p>\n<p>The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too.<\/p>\n<p>When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.<\/p>\n<p>To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.<\/p>\n<p>For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.<\/p>\n<p>We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and\/or modify the software.<\/p>\n<p>Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.<\/p>\n<p>Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.<\/p>\n<p>The precise terms and conditions for copying, distribution and modification follow.<\/p>\n                                            <\/div>\n                    <label class=\"lm-accept-checkbox\">\n                        <input type=\"checkbox\" class=\"lm-accept-input\" \/>\n                        <span class=\"lm-checkbox-label\">I have read and accept the terms of this license agreement.<\/span>\n                    <\/label>\n                <\/div>\n                <div class=\"lm-modal-footer\">\n                    <button type=\"button\" class=\"lm-btn lm-btn-decline\">Decline<\/button>\n                    <button type=\"button\" class=\"lm-btn lm-btn-accept\" disabled>Download<\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n        \n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>=== WordPress Forced License Downloader (WFLD) === Contributors: Zanphar Stable tag: 1.0.0 Requires at least: 6.0 Tested up to: 6.9 Requires PHP: 7.4 License: GNU GPLv2 License URI: https:\/\/charlieware.com\/licenses\/wfld-license.txt Enforce compliance and protect your assets. Force users to accept a license agreement before downloading files, while preventing direct hotlinking. == Description == WordPress Forced License<span class=\"post-excerpt-end\">&hellip;<\/span><\/p>\n<p class=\"more-link\"><a href=\"https:\/\/chware.org\/index.php\/wordpress-forced-license-downloader\/\" class=\"themebutton\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_ayudawp_aiss_exclude":false,"_ayudawp_aiss_exclude_summary":false,"footnotes":""},"class_list":["post-109","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/chware.org\/index.php\/wp-json\/wp\/v2\/pages\/109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chware.org\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/chware.org\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/chware.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chware.org\/index.php\/wp-json\/wp\/v2\/comments?post=109"}],"version-history":[{"count":0,"href":"https:\/\/chware.org\/index.php\/wp-json\/wp\/v2\/pages\/109\/revisions"}],"wp:attachment":[{"href":"https:\/\/chware.org\/index.php\/wp-json\/wp\/v2\/media?parent=109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}