Simple Download Counter

Description

Simple Download Counter (SDC) provides a simple yet powerful way to count file downloads. Works with any file type that’s supported by WordPress (e.g., JPG, PNG, ZIP, MP4, TXT, and many more).

How it works

Visit the plugin settings to add a download file. Then use the shortcode to display a download link on any post or page. The plugin will then count every download and display it in the plugin settings. You can also display the download count on the front end using a shortcode.

Features

  • Simple and powerful download counter
  • Supports local and remote file URLs
  • Supports any file type supported by WordPress
  • Lightweight – entire plugin size is < 160 KB
  • Super fast and built for optimal performance
  • Clean code tightly integrated with WordPress
  • No Apache/.htaccess required

Check out the screenshots below to get a better idea of the plugin settings and more.

How is this better?

There are numerous “download counter” or “download manager” plugins available, but none of them satisfy all of my specific, stringent requirements:

  • Current with latest WordPress
  • Clean and simple code using WP APIs
  • Lightweight with minimal useless features
  • Supports all local and remote downloads
  • No automatically created posts or pages
  • No advertisements or weird admin notifications
  • No obtuse styling of default WP Admin elements
  • Download posts are visible only in the Admin Area
  • Descriptive error handling for upload files
  • No redundant or sloppy coding practices
  • No requirement for cookies or sessions
  • No requirement for Apache/.htaccess
  • No weird database shenanigans

So I decided to build my own. Let me emphasize the utter simplicity of this plugin. It does one thing and does it well: counts the number of downloads for your files. And makes it easy to display download links and download counts anywhere on the front end.

Privacy

This plugin does not collect or store any user data. It does not set any cookies, and it does not connect to any third-party locations. The only thing this plugin does is count the number of times files are downloaded. So 100% privacy friendly for everyone.

Simple Download Counter is developed and maintained by Jeff Starr, 15-year WordPress developer and book author.

Screenshots

  • View Downloads screen
  • Edit Download screen
  • Plugin settings

Installation

Installing the plugin

Activate like any other plugin and done. For usage instructions, continue reading to the “How to use” section below.

More info on installing WP plugins.

Uninstalling

To uninstall/remove the plugin, visit the Plugins screen, deactivate and delete the plugin. When the plugin is deleted in this way, the plugin options are removed from the database automatically.

Note that any defined downloads/files that may have been added will NOT be removed. Those are left in place in order for the site admin to decide whether or not to delete.

How to use

After activating the plugin, visit Downloads in the WP menu. There you can click “Add New” to add a download file. Here are the steps:

  1. Visit Add New
  2. Give the download a title
  3. Upload your image by clicking “Upload File”
  4. Optionally set the starting count and version
  5. Publish the post and done!

After adding a download, you can display a download link on the front end. Here are the steps:

  1. Visit Downloads to view a list of all downloads
  2. In the “Shortcode” column, click button to copy shortcode
  3. Visit any post or page and paste the shortcode
  4. Save changes and done!

Note: If you’re getting 404 errors when trying to download, here is a quick solution.

To display the count (number of downloads) on any post or page, follow these steps:

  1. Add the count shortcode [sdc_count id="123"] to your page
  2. Change the id attribute value to match your download ID
  3. Save changes and done!

Alternately you can display the download count (and other file information) next to the download link. To learn how, check out the next section on shortcodes.

Shortcodes

Description of shortcodes. Currently there are two shortcodes available: one to display download links, and another to display download counts.

Display download link: [sdc_download]

Attributes:

id      (required) the download ID
wrap    (optional) element to use for markup (p, div, span, none)
text    (optional) download link text
title   (optional) download link title
before  (optional) content to display before the download link
after   (optional) content to display after the download link
class   (optional) custom class for markup (separate multiple classes with commas)
type    (optional) display as "link", "button", or "none" (with none, only the before and after attributes are displayed, no link)

For example, a shortcode configuration that includes some possible attributes:

[sdc_download id="123" wrap="div" text="%title%" before="Download " after=" %size%"]

That will display a download link that says, “Download {download title} 64 KB”. And you can customize further with shortcut variables. Notice where it says %title% and %size%. Those are dynamic placeholders that output the download title and file size, respectively. You can use any of the following shortcuts for the text, title, before, and after attributes:

%id%       displays the download ID
%count%    displays the download count
%title%    displays the download title
%version%  displays the download version
%type%     displays the download type (local or remote)
%ext%      displays the download file extenstion (e.g., JPG)
%size%     displays the download file size

Using these shortcut variables, it’s possible to configure your download links however is desired.

Display download count: [sdc_count]

Attributes:

id      (required) the download ID
wrap    (optional) element to use for markup (p, div, span, none)
before  (optional) content to display before the download count
after   (optional) content to display after the download count
class   (optional) custom class for markup (separate multiple classes with commas)

For example, a shortcode configuration that includes some possible attributes:

[sdc_count id="123" wrap="div" before="Download count: " after=" - Version: %version%"]

That will display a line that says, “Download count: {download count} – Version: {download version}”. You can customize further with shortcut variables. Notice where it says %version%. That outputs the download version. You can use any of the following shortcuts for the before and after attributes:

%id%       displays the download ID
%title%    displays the download title
%version%  displays the download version
%type%     displays the download type (local or remote)
%ext%      displays the download file extenstion (e.g., JPG)
%size%     displays the download file size

Using these shortcut variables, it’s possible to configure your download counts however is desired.

Display total download count: [sdc_count_total]

This shortcode simply displays the total number of (published) downloads.

[sdc_count_total]

No attributes for this one, just add to page and enjoy results.

Display the number of downloads: [sdc_downloads_published]

A simple shortcode to display the number of published downloads:

[sdc_downloads_published]

No attributes, just grab gulp and go.

Display download metadata: [sdc_meta]

Attributes:

id      (required) the download ID
title   (optional) the download title
url     (optional) the download URL
count   (optional) the download count
version (optional) the download version
type    (optional) the download type
ext     (optional) the download file extension
size    (optional) the download size

This shortcode displays any bit of meta information about the download. Here are some examples:

[sdc_meta id="123" size="true"] // displays the file size for download ID 123
[sdc_meta id="123" type="true"] // displays the file type for download ID 123
[sdc_meta id="1728" title="true" count="true"] // displays the title and count

By default, only the id is required. All other attributes are optional. Here is a blank template for quick copy/paste:

[sdc_meta id="" title="" url="" count="" version="" type="" ext="" size=""]

And here is another template with all available attributes set to true:

[sdc_meta id="123" title="true" url="true" count="true" version="true" type="true" ext="true" size="true"]

Remember to be mindful of the id attribute, make sure it is correct according to your downloads.

Questions? Comments? Send ’em via the contact form at Plugin Planet.

FAQ

How to disable inline-block style on button forms?

By default, download button forms are styled with inline-block. To disable and display as block-level, add the following code snippet via theme functions or simple plugin:

function simple_download_counter_button_style($style) { return ''; }
add_filter('simple_download_counter_button_style', 'simple_download_counter_button_style');

No changes necessary, save and done.

How to stop bots from crawling download URLs?

By default, the plugin uses download URLs with the following structure:

https://example.com/sdc_download/19890/?key=1234567890abc

In the Admin Area, the plugin displays these download URLs/links in various places, like the “Edit” screen. On the front end, the plugin does not add any download URLs/links. So by default, there is no way that any bots will know about any of your download links. As soon as you add a download link anywhere on the front end, bots will be able to find and crawl, etc. To prevent good/obedient bots from crawling your download links, add the following to your site’s robots.txt file:

User-agent: *
Disallow: /sdc_download

Then to verify, use a free online robots.txt validator to make sure the new rules mesh well with any existing rules. Adding the above rules to robots.txt will prevent good bots (who obey robots.txt) from following the links.

Is it possible to define custom file headers?

Yes, here is a tutorial that explains how to set it up.

Got a question?

Send any questions or feedback via my contact form

Reviews

March 27, 2024
This simple plugin does just what it claims to do, all without the huge bloat like in some other plugins pushing paid pro versions. I have also found by first-hand experience that developer behind this free plugin is great to work with for other developers who submit detailed bug reports or respectfully request hooks. A credit to the WordPress community.
December 18, 2023
Jeff Starr is such an Ace when ik comes to creating simple stuff that just works! Perfect! Thanks so much, Jeff!
November 8, 2023
This plugin is exactly what I was looking for. It allows me to count download without uploading to wordpress, to name and categorize, tag if I wish so. Add notes and show versions. Have a button download or a link download. It is simple and yet with everything needed. It is my favorite plugin.
July 23, 2023 3 replies
I cannot figure this plugin out. I hit save on the wp settings -> permalinks page but I still get page not found for every link. Good luck! Update: I eventually figured out what I was doing wrong. Files offered through my website were in the media list but did not show as “attached” to a web page in the “uploaded to” column. Once I attached them, the plugin worked. So the plugin does what it advertises, it was a user error resulting from somewhat poor documentation. Updated the rating but deducted one star for the documentation issue. Thank you for creating this product and making it available for free!
March 11, 2023
Easy to use. Just install, add file, set category and paste code or use generated permalink in existing elements (buttons)
Read all 15 reviews

Contributors & Developers

“Simple Download Counter” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

If you like Simple Download Counter, please take a moment to give a 5-star rating. It helps to keep development and support going strong. Thank you!

1.9 (2024/06/21)

  • Fixes bug with TinyMCE loading (Thanks @garrettm30)
  • Fixes bug “Failed to initialize plugin” (Thanks @qriouslad)
  • Fixes bug with dismiss_notice_link
  • “Add Download” Quicktag now included on all post types
  • Updates plugin settings page
  • Updates default translation template
  • Tests on WordPress 6.6 (beta)

Full changelog @ https://plugin-planet.com/wp/changelog/simple-download-counter.txt