I can’t find a lot of information on google about creating a paid wordpress plugin. I’m already versed into plugin development, but what are my options to have a freemium model ?
I would like to restrict some parts of my plugin to paid users but obviously, as every wordpress plugin source code is free, is that really possible ? How do plugins like Gravityforms protect their plugin from being redistributed to the wild ?
Warning: This is not legal advice. The only definitive answer you can get on a legal subject is from a lawyer trained in that area. If your defence in court is that you read a stack exchange answer that will not hold up. Having said that I’ll try to answer using information from the FSF FAQ.
Lots of people sell GPL licensed plugins, so you can make money this way. But the user is purchasing the ability to acquire the plugin, support, future updates, etc, not the plugins code itself.
The TLDR:
They can’t.
Since WordPress is GPL code, all code publicly distributed must also be licensed either as GPL, or GPL compatible.
The GPL states you cannot charge for code, but you can charge for distribution. So when you buy gravity forms, you’re not paying for the plugin, you’re paying for the downloading and acquisition of the plugin.
Once you have the plugin it is perfectly legal to burn it to a CD and mail it to 20,000 people free of charge. You won’t get the support or updates ( unless you pay them again, or you have a support contract ), and it would be a pretty nasty thing to do ( they have a business! ), but it’s perfectly legal.
No matter what you do, someone will figure out how to redistribute it for free, so stop worrying about it, those people were never going to pay anyway and won’t get the support for updates.
The only method that appears to work is to do the functionality on your own server and use API keys, selling a service.
For the actual purchasing component:
License Keys
Put a payment mechanism on your site, and use it to generate API keys. Make the user put these keys into their backend, or couple their sites URL with their purchase, and use that to enable the restricted features.
Paid for Plugin
Set up a shop plugin of sorts, and use the virtual downloadable product type. There are services and sites that you can use to handle this if you don’t want to host a site yourself