Day 16: License Server

I finally had a chance to revisit the WordPress plugin. Still cleaning up my hacks, but I am looking at getting a license server in place to be able to track installs.

This is the first time I am looking at doing something like this and want to make sure that the license checking doesn’t get in the way of usability, either performance or something failing expectantly and causing the plugin to report an invalid license.

I am playing around with different models to find a good way to implement the license check along with where exactly in the plugin this should go. I am planning on having different license models, so I need to be able to define licenses as single and multi use. I am also working on an ecommerce system to generate the licenses.

I would really like this to be completely automated where the plugin in purchased, the files are sent, a valid license is generated and issued, and then the installation of the plugin checks the license. That would at least get something going that is more passive than I am currently doing.

That would also make it easier to sell off the plugin site if there is no work involved. I could also then use the framework to create other plugins or even themes that require a license. The license server would be the same along with whatever I use I do the ecommerce part of it.

If everything works as planned, which so far hasn’t been the case, I should be able to spin up more plugins quicker than it took to do the first one. Similarly, I should be able to subscription-based services quicker after all the work is done for the first one.

I think this is a large reason why my previous attempt at doing this failed. I focused too much on deadlines. Spending time making a server and ecommerce platform to generate and validate licenses was time I couldn’t afford to waste on something that didn’t generate any income right now.

Similarly, a membership site that reoccurring billing would have been too time consuming to even begin with. That caused me not to even try to launch one.