Easy Digital Downloads

At the risk of sounding like a marketer rather than a fan and contributor of the plugin, Easy Digital Downloads is a free plugin for WordPress that makes it exceptionally easy to sell digital products through your WordPress-based site.

Though it’s available for download from the WordPress Plugins Repository, Pippin – the lead developer behind the plugin – open sourced the plugin on GitHub in order to get other developers involved.

This past weekend, I was able to contribute a couple of fixes. In light in the whole plugin conversion that’s going on within the WordPress Developer Community, I found several points worth mentioning with regards to getting involved with Easy Digital Downloads.

1. Easy Digital Downloads

Easy Digital Downloads Dashboard

One of the challenges of selling products through WordPress is not only having to figure out which payment gateway to use, but which plugin to use as well – there are a lot of choices.

Some options are free, some require payment, others are limited to a subset of payment gateways, etc. The truth is, there are a lot of good options. The thing I dig about Easy Digital Downloads is the add-on model, the variety of gateways and options that it includes out-of-the-box, and the contributors on GitHub.

2. Learning via Open Source

Easy Digital Downloads on GitHub

One of the things that I dig about WordPress is its open source nature. At the same time, it’s harder to contribute to other developer’s work – especially with plugins – with the way that the plugin repository is organized.

Though each plugin offers its own support forum, users often leave comments on the developer’s blog rather than in the forum. Case in point.

There’s also no easy way to track and file bugs, feature requests, documentation, and so on. As such, it makes the whole development process feel a bit diconnected.

Though Easy Digital Downloads is available in the WordPress Plugins Repository, its primary branch (or trunk, or location, or whatever nerdy term you want to use) of development actually occurs on GitHub.

A Lesson on Security

This past weekend, I submitted a pull request that resolved a problem with images being uploading into the Easy Digital Download products page.

The problem was that once the image was uploaded, WordPress rendered a broken image despite the fact that the file was uploaded to the proper location.

The short of it is that the rules of the htaccess file were a bit too strict so I provided something that would prevent users from snooping around, but still allowed requests from browser clients.

Shortly after my contribution, Pippin commented on the ticket:

I’ve modifying your changes slightly. Now only one .htaccess files is created as multiple files is unneeded and a potential security flaw, as pointed out in issue #260.

Had I not gotten involved on this ticket, I wouldn’t have learned about that particular security issue.

Now, a team of us have improved the core product and I’ve learned something that I likely would’ve learned the hard way and that I can bring back to some of my other work.

3. An Opportunity For WordPress Plugins Everywhere

Obviously, this is nothing but an overview of my experience with contributing a couple of patches to the core plugin, but I still see this as an opportunity for many WordPress plugins: open sourcing the work on GitHub can benefit others everywhere in that it provides a higher quality product through:

  • A team of people contributing to the project
  • A much easier way to track issues, documentation, and so on
  • The chance to learn from others more experienced than you in a given field
  • Code reviews, critiques, and suggestions that ultimately make you a better WordPress developer

Of course, this does come at an expense: As the lead developer, you’re responsible for maintaining the overall vision of your work.

Speaking from personal experience, some users could submit pull requests that may offer nice features but ultimately don’t fit the ultimate goal of your project. Sometimes, this isn’t such a big deal, but if it’s a large pull request, you’re basically telling a person you don’t want their hard work. Depending on your personality, this isn’t always easy.

You’re also having to maintaining two repositories – one in GitHub for other developers and the Subversion repository for the plugin hosted on WordPress. It does offer a bit of overhead.

Nonetheless, my overall experience with this has me mulling over if I want to bring all of my plugins over to GitHub.

4. Contribute

Easy Digital Downloads Open Issues

If you’re looking to become a better WordPress Developer, familiarize yourself with GitHub, learn how software used by tens of thousands of people are used, or just wanting to help build out a plugin, browse the issues on Easy Digital Downloads.

If you see one that looks easy enough for you to fix, then fork it, supply a fix, and issue a pull request. It’s that easy and you’ll be learning a bit a long the way.

One of the things that I always tell aspiring developers to do is to get involved with an open source project to see how they like it. If nothing else, perhaps they – or you – will find that this isn’t actually something worth pursuing as far as a career or a hobby.

Then again, who knows – you may really dig it. And in the process, you end up helping someone else continue to do good work with one of their primary projects.