Note 2010/06/09: Since I wrote this post, our client has sold her site to Morningstar, which has replaced the subscription area we developed with their own, Windows-based subscription service.
Our latest work involves development of a subscription system using WordPress on the popular financial blog, Footnoted.org. The requirements of the system were as follows:
- A subscriber registration and payment processing interface
- System tracking of subscription expiration dates
- Download management allowing the administrator to easily upload files as well as restricting file downloads to paying subscribers only
- An email notification sent to paying subscribers when a new publication is available
It turns out that we spent a large part of this project researching our options in using existing WordPress plugins. There are a few ecommerce plugins already available, but most cater to shopping carts. The wp-ecommerce plugin proved to be popular only because, unlike some of the ecommerce plugins, some people actually get it to work without messing with the code. But it is a monster in size and complexity, poorly written and documented, so we are glad we ditched this option early on.
Our solution was as follows. Site registrations are handled by WordPress’s own registration system, slightly modified to simplify the process and to show the Footnoted logo instead of the WordPress logo when registering or logging in. For payment processing we ended up modifying Shannon Whitley’s Easy PayPal plugin. We could never get this plugin to work out-of-the-box–there are some nasty bugs that had to be fixed before it would even interface with PayPal properly. But it is simple and nicely documented so therefore easy to modify. Once the subscriber pays, PayPal immediately notifies the system that this is a paying subscriber, and the the subscription expiration date is stored.
Downloads are handled by a modified wp-downloadmanager plugin. This handy plugin inherently provides a interface for the administrator to upload files. The plugin also provides embedding of file links into posts and file redirect links to hide the real download path of the file. We modified this plugin to allow downloads from current, paying subscribers only.
Finally, we wrote our own email notification plugin, notifying paying subscribers that a new download is available. See the results in the FootnotedPro area of Footnoted.org.
Tags: Ecommerce

