Easy Download Media Counter Free Plugin

Today i was thinking about a nice little plugin that be could very useful: a download counter for WordPress media. I took a look on the internet and didn’t find what i was looking for, so i decided to do it myself. What i was thinking about was pretty simple: count downloads for media that are listed in the wordpress library and provide two shortcodes: the first one to display the download link, and the second one to display the number of times a media was downloaded.

So basically, the plugin offers these two shortcodes, and to make it a bit more useful i added a field in the edit media page, where you can manually modify the downloads value.

Here are the shortcodes to use:

  • (edmc id=”xx”)Download the file(/edmc) – Link to download the file
  • (edmc_show id=”xx” – Returns the sentence “Downloads: xx”
Please note that you must replace ( ) by [ ], and xx by the media ID. You also provide a download link without using shortcode, just add ?edmc=xx to any url and tada !! The magic appears ! 5don’t forget to replace xx by the media unique ID). And a last thing, one line 112 you can define the download file name.

Get the plugin

Gallery

Code

Revision

A little bug has been fixed thanks to Cosmin Popovici

Changelog

June 10 2012: Version 1.1
– Added downloads column in media library

Liked it? Keep me awake with a coffee!

48 thoughts on “Easy Download Media Counter Free Plugin

  1. Dear Remi,

    Thanks a lot for offering this plugin for free.
    However I do wonder if it’s possible to let it count a link that doesn’t refer to a downloadable item. I’ve tried it by adding the ?edmc=xx to a page link, but upon clicking it will give a message to download a 0 byte file.

    What I would like is to just have visitors click a link on my site, go to the direction that link is pointing. But being able to post a counter as to how many people have clicked that link before them.

    Looking forward to hear from you,

    Regards,
    Kasper

  2. Hi, Remi:

    I first must admit being rather new to WP so please bear with me on this. I wanted to try this but I’m missing something about how to write it in. You say to use the unique media ID, but I have no idea what that is. I’ve looked everywhere and find no Media ID field, so I’m not getting something here….

    1. Hi Dave ! No worry! Ok, first of all you have to understand that every media in WordPress as a unique identifier in the database. It’s a number that is auto incremented each time a new media is added. It’s the same for post, page etc… You find this unique ID there are several methods, but the easiest is to go on the media page in the administration, and edit the media you want to find the ID.

      When you are on the edit page, just have a look on the URL. It should be something like that:

      http://yoursite.com/wp-admin/media.php?attachment_id=532&action=edit

      There are two parameters, and the one we need is: attachment_id. Here its value is 532. This is the value you have to use in your shortcode!

      Let me know if you manage to do it!

  3. Hi Rémi, I am having the same problems as mo has. The counter worked when I established the link. Then, one day, I got alerted that the file was corrupt. I checked and the download dialog box displayed that the file to download was 0 kb in size.

  4. I believe i’ve found the code of the corrupted file some people are reporting.

    It is happening because you are getting the file path (physical) using wp_upload_dir()( http://codex.wordpress.org/Function_Reference/wp_upload_dir) and this returns the path including the current month (when this option is configured on the backoffice).

    So if you uploaded the file last month (09) the download will work until the month rolls over.

    When you upload the file, it would be stored on …/wp-content/uploads/2012/09

    In october it will stop working since the download folder will become …/wp-content/uploads/2012/10

    If you look at the content of the corrupt file you will see something like

    Some real path ommited

    Warning: filesize() [function.filesize]: stat failed for [WP ROOT FOLDER]wwwroot/wp-content/uploads/2012/10/MYFILE.ZIP in [WP ROOT FOLDER]wwwroot\wp-content\plugins\easy-download-media-counter\easy-download-media-counter.php on line 137

    Warning: readfile([WP ROOT FOLDER]wwwroot/wp-content/uploads/2012/10/MYFILE.ZIP) [function.readfile]: failed to open stream: No such file or directory in [WP ROOT FOLDER]wwwroot\wp-content\plugins\easy-download-media-counter\easy-download-media-counter.php on line 139

    So this is the cause, the fix i’m not sure if it’s that simple :-)

    I’m not versed on wordpres, but the file path seems to be available as part of the media, so perhaps a redirect could be used to the “real” path or check if this option is enabled and deduce from the “real path” the month

  5. Hey Rémi,

    I’m having the same issue too.

    At first it worked great, but then I replaced the file with a FTP with a new version and I started having the same issue as Jan and mo.

    The file is a zip. The only change was replacing the file. Direct download (trough …wp-content/uploads/… URL) works fine.

    I initially uploaded the file with WP, then replaced it via FTP (because it’s a fairly large file) – it worked fine, but stopped working when I replaced it again recently. Nothing else was changed (on WP or the server; the filename is the same), just the file contents.

    1. Hi, it’s because you are not using the plugin as you should. The way you insert the shortcode isn’t good. Simply use the shortcode without any “a” tag, it’s automatically inserted. Please read the documentation.

  6. Hi Rémy,
    In my website I manage mp3 files that can’t be uploaded by the WordPress system because are too large (25 Mb or more). So, they have not id number. Could be another way to use your plugin?

    Thanks,

    Eduardo

    1. It’s not fixed, it still fails with 0-byte files.

      WordPress folders chmod: 755
      Files chmod: 644
      Owner : www-data

      Trying to get a file with spaces in the name fails with 0-bytes (empty file), i.e. “My Awesome File.jpg”. If checking with file_exists(), you can see it will return FALSE.

  7. Hey Rémy, tank you for this plugin! Can you tell me one thing? The shortcode ID . ‘”]’ ) ?> shows me the numbers of downloads, right? But it also shows me the type of media – and i don’t want that. Wher to modify your plugin, to hide this information? I show the mediatype on an other place…

    Can you please tell me? Thanks a lot for your plugin and the answer!

    Best reguards!

  8. Hi Remi

    I’m having a little trouble with the plugin. I’ve found the ID (shows as post ID not attachment ID but perhaps that’s just due to the latest version of WP.)

    So I’ve added ?edmc=382 to the end of the download link, then gone to the front end and downloaded, but the count column in the Media manager has not recognised and still shows no downloads.

    What would you suggest?

    Thanks

    Cathy

Leave a Reply