{"id":396457,"date":"2026-11-04T07:53:31","date_gmt":"2026-11-04T07:53:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/download-guard\/"},"modified":"2026-11-04T07:53:12","modified_gmt":"2026-11-04T07:53:12","slug":"materron-download-guard","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/materron-download-guard\/","author":15156070,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.4","requires":"6.5","requires_php":"8.0","requires_plugins":null,"header_name":"Materron Download Guard","header_author":"Miguel \u00c1ngel Terr\u00f3n Bote","header_description":"Stops members from draining your downloads: daily and 30-day limits per role, stricter limits for new members, bulk-download alerts and sign-up filtering. Works with Download Monitor, Easy Digital Downloads and WooCommerce.","assets_banners_color":"1c2638","last_updated":"2026-11-04 07:53:12","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/materron\/materron-download-guard","header_author_uri":"https:\/\/potencia.pro","rating":0,"author_block_rating":0,"active_installs":0,"downloads":129,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"materron","date":"2026-11-04 07:53:12","revision":3783331}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3783331,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3783331,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3783331,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3783331,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3783331,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3783331,"resolution":"1","location":"assets","locale":"","width":2560,"height":1800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3783331,"resolution":"2","location":"assets","locale":"","width":2000,"height":1022},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3783331,"resolution":"3","location":"assets","locale":"","width":2560,"height":1800}},"screenshots":{"1":"Limits per role, with separate limits for new members.","2":"Bulk-download detection and sign-up filter.","3":"Top downloaders and blocked accounts."}},"plugin_section":[],"plugin_tags":[290656,18288,5484,1932,286],"plugin_category":[45,58],"plugin_contributors":[259269],"plugin_business_model":[],"class_list":["post-396457","plugin","type-plugin","status-publish","hentry","plugin_tags-download-limit","plugin_tags-download-monitor","plugin_tags-easy-digital-downloads","plugin_tags-membership","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-user-management","plugin_contributors-materron","plugin_committers-materron"],"banners":{"banner":"https:\/\/ps.w.org\/materron-download-guard\/assets\/banner-772x250.png?rev=3783331","banner_2x":"https:\/\/ps.w.org\/materron-download-guard\/assets\/banner-1544x500.png?rev=3783331","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/materron-download-guard\/assets\/icon.svg?rev=3783331","icon":"https:\/\/ps.w.org\/materron-download-guard\/assets\/icon.svg?rev=3783331","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/materron-download-guard\/assets\/screenshot-1.png?rev=3783331","caption":"Limits per role, with separate limits for new members."},{"src":"https:\/\/ps.w.org\/materron-download-guard\/assets\/screenshot-2.png?rev=3783331","caption":"Bulk-download detection and sign-up filter."},{"src":"https:\/\/ps.w.org\/materron-download-guard\/assets\/screenshot-3.png?rev=3783331","caption":"Top downloaders and blocked accounts."}],"raw_content":"<!--section=description-->\n<p>A common abuse on membership and download sites: someone subscribes to the cheapest plan, downloads your whole library in a few minutes and cancels. Materron Download Guard stops it.<\/p>\n\n<p>Works with <strong>Download Monitor<\/strong>, <strong>Easy Digital Downloads 3<\/strong> and <strong>WooCommerce<\/strong> downloadable products, with any membership plugin that assigns roles. Downloads from all of them are added up for each account.<\/p>\n\n<h4>Download limits<\/h4>\n\n<ul>\n<li><strong>A daily limit and a 30-day limit at the same time<\/strong>, per role. Both must be respected.<\/li>\n<li><strong>Rolling windows<\/strong> (last 24 hours and last 30 days), so nobody gets a fresh quota by waiting for midnight or the first of the month.<\/li>\n<li><strong>Stricter limits for new members<\/strong> during a period you choose (30 days by default). This is what stops \"subscribe, download everything, cancel\". With Restrict Content Pro, the new-member period starts with the first membership that was ever activated.<\/li>\n<li><strong>A clear message<\/strong> when a limit is reached, telling the member when they can download again, instead of a generic \"no access\" page.<\/li>\n<\/ul>\n\n<h4>Bulk-download alerts<\/h4>\n\n<ul>\n<li>Get an <strong>email when an account downloads too much too fast<\/strong> (by default, more than 20 downloads within 10 minutes).<\/li>\n<li>Optionally <strong>block the account<\/strong> from downloading until you review it.<\/li>\n<\/ul>\n\n<h4>Activity screen<\/h4>\n\n<ul>\n<li><strong>Top downloaders<\/strong> in the last 24 hours and the last 30 days, with each member's status.<\/li>\n<li><strong>Blocked accounts<\/strong>, with one-click block and unblock.<\/li>\n<\/ul>\n\n<h4>Sign-up filter<\/h4>\n\n<p>Bulk downloaders usually sign up with throwaway accounts. Download Guard can reject, on the WordPress, Restrict Content Pro, Easy Digital Downloads and WooCommerce registration forms:<\/p>\n\n<ul>\n<li>usernames made only of numbers,<\/li>\n<li>disposable email addresses,<\/li>\n<li>email domains that cannot receive mail (DNS check).<\/li>\n<\/ul>\n\n<h4>How it counts<\/h4>\n\n<p>Downloads are read from the download plugin's own log, so no extra table is created and existing history counts from day one. Administrators are never limited.<\/p>\n\n<p>This plugin is not affiliated with or endorsed by the Download Monitor, Easy Digital Downloads or WooCommerce teams.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>Download Guard does not send data to any external service and does not track anyone. It reads the download logs that Download Monitor, Easy Digital Downloads and WooCommerce already keep, and stores only its settings and, for blocked accounts, when and why they were blocked (in the user's meta data).<\/p>\n\n<p>Bulk-download alerts are emailed from your site to the address you choose, with the account's username and email address.<\/p>\n\n<p>The optional sign-up check \"Email domains that cannot receive mail\" makes a DNS lookup of the email address's domain through your server's DNS resolver. No other data is sent. You can turn it off in the settings.<\/p>\n\n<h4>Developers<\/h4>\n\n<p>Development happens on GitHub: <a href=\"https:\/\/github.com\/materron\/materron-download-guard\">github.com\/materron\/materron-download-guard<\/a>.<\/p>\n\n<p>Filters:<\/p>\n\n<ul>\n<li><code>dlgd_user_limits<\/code> \u2014 change the limits for a user.<\/li>\n<li><code>dlgd_member_since<\/code> \u2014 return when a user became a member (for membership plugins other than Restrict Content Pro).<\/li>\n<li><code>dlgd_is_exempt<\/code> \u2014 exempt users from limits and alerts (administrators by default).<\/li>\n<li><code>dlgd_denied_message<\/code> \u2014 change the message shown when a download is denied.<\/li>\n<li><code>dlgd_signup_rejection<\/code> \u2014 change why a sign-up is rejected.<\/li>\n<li><code>dlgd_disposable_email_domains<\/code> \u2014 change the list of disposable email domains.<\/li>\n<li><code>dlgd_adapter_classes<\/code> \u2014 add support for another download plugin (extend <code>DLGD_Adapter<\/code>).<\/li>\n<\/ul>\n\n<p>Actions:<\/p>\n\n<ul>\n<li><code>dlgd_download_denied<\/code> \u2014 a download was denied.<\/li>\n<li><code>dlgd_burst_detected<\/code> \u2014 an account downloaded too much too fast.<\/li>\n<li><code>dlgd_account_blocked<\/code> and <code>dlgd_account_unblocked<\/code>.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate Download Monitor, Easy Digital Downloads 3 or WooCommerce.<\/li>\n<li>Install and activate Materron Download Guard.<\/li>\n<li>Go to <strong>Download Guard \u2192 Settings<\/strong> and set the limits for each role.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20advanced%20access%20manager%20or%20my%20membership%20plugin%3F\"><h3>Does it work with Advanced Access Manager or my membership plugin?<\/h3><\/dt>\n<dd><p>Yes. Download Guard runs after the other access checks and only ever denies downloads that would otherwise be allowed. Use your membership plugin to decide who can download, and Download Guard to decide how much.<\/p><\/dd>\n<dt id=\"what%20if%20a%20user%20has%20several%20roles%3F\"><h3>What if a user has several roles?<\/h3><\/dt>\n<dd><p>The most generous limit among their limited roles applies. Roles without any limit configured are ignored.<\/p><\/dd>\n<dt id=\"which%20downloads%20count%3F\"><h3>Which downloads count?<\/h3><\/dt>\n<dd><p>With Download Monitor, downloads logged as completed or redirected. With Easy Digital Downloads and WooCommerce, every file download in their logs, matched to the account that placed the order (download links work without logging in). Downloads from guest orders are not limited.<\/p><\/dd>\n<dt id=\"i%20use%20more%20than%20one%20of%20these%20plugins.\"><h3>I use more than one of these plugins.<\/h3><\/dt>\n<dd><p>Downloads from all of them are added up for each account.<\/p><\/dd>\n<dt id=\"i%20disabled%20download%20monitor%27s%20logging.\"><h3>I disabled Download Monitor's logging.<\/h3><\/dt>\n<dd><p>Then its downloads cannot be counted and no limit applies to them. The settings screen warns you about it.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20unblock%20an%20account%3F\"><h3>What happens when I unblock an account?<\/h3><\/dt>\n<dd><p>It can download again right away. Bulk-download detection only counts downloads made after the unblock, so the downloads that caused the block don't block it again.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Stop members from draining your downloads: daily and 30-day limits, stricter limits for new members and bulk-download alerts.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/396457","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=396457"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/materron"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=396457"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=396457"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=396457"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=396457"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=396457"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=396457"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}