Posted on

WordPress Plugins – Is Charging A Fee GPL Compliant?

According to WordPress, asking for a fee in order to make a plugin easier to use is not GPL compliant. At least that is what we are being told with regard to our plugins and being de-listed from the official WordPress Plugins Directory. We can still sell our plugins directly via other venues and they will be fully functional within WordPress. However not being listed in the directory has two significant impacts on our business:

1) The WordPress Plugin Directory sends us 90+% of our sales leads. Without those leads we sell 90% less product. The volume of sales, not the price, is what makes it viable for us to continue to provide updates and support.

2) Without a listing in the WordPress Plugin Directory, existing users will not be automatically notified of updates. They will also not be able to click the “update” link for the plugin, thus requiring a manual download and installation of our .zip file for the plugins which makes their life more difficult.

Neither of these situations are good for us or our clients. The sad part of this whole thing is that we embrace GPL and want to be good members of the WordPress community.

However, based on the tone of the messages posted by the WordPress Plugin Czars, they don’t want anyone pushing people to pay for plugins. They want it to be a 100% pure “from the good of my heart I’ll give you money” donation based system.  We know from experience that people simply will not donate.   Our first plugins generated ZERO donations.    The very same plugins, after adding the “license fee”, generated a dozen sales the first PARTIAL month with no other code changes in place.  Same plugin, infinitely better results.   The general mantra for most plugin users is “Why buy the cow when you can get the milk for free?”.

Until and unless we can get this issue resolved with the powers-that-be over at WordPress, we are going to be left with some very difficult decisions.  One of the options, and the one we like the least, is to drop WordPress plugin offerings completely. If we remove the fee and are allowed to be put back on the WordPress directory as a donation-only system, the support requests from non-paying users becomes overwhelming and kills our daily productivity.   As such the most likely option is that we will need to pull the plugin products from the directory completely, in which case we may as well leave the fee in place and remain de-listed.

WordPress Assertions Are WRONG

However, we feel as though this entire situation should never have come up in the first place. WordPress has stated that we have been removed for creating our own license (a false assertion) and seem to indicate that we must remove our request for a fee in order to be GPL compliant (an incorrect interpretation of GPL).   Here is the letter from a WordPress representative to us regarding the de-listing of Store Locator Plus:


You wrote your own licensing terms.

All plugins must be GPL or compatible.

I can see other plugins of yours are doing the same.

This is not permitted.

1. All plugins must be released under the GPL or compatible. This must be stated in the plugin download.

2. A fee to ‘unlock’ is not permitted

3. A fee to in any other way alter the plugin is not permitted

A plugin must be fully functional, not a trial, free and the user must be allowed to change the plugin code if they wish.

If you can change all your plugins that need this without delay then this plugin can be replaced and others not withdrawn.



This is blatantly wrong on several counts, we’ll visit each one below.

“You wrote your own licensing terms.”

This is a combination of statements that all combine to make this argument including:

“You wrote your own licensing terms.

All plugins must be GPL or compatible.

I can see other plugins of yours are doing the same.

This is not permitted.

1. All plugins must be released under the GPL or compatible. This must be stated in the plugin download.”

We wrote our own licensing terms?  Really?  Where?  It is clearly stated throughout that we are licensed under GPL.   The plugin IS GPL COMPABTIBLE. You must be GPL compatible to be listed.  We are.   That point is a non-start and frankly quite ridiculous.

From the plugin itself:

Plugin Name: Store Locator Plus
Plugin URI: /products/store-locator-plus/
Description: Store Locator Plus is based on the popular Google Maps Store Locator with a few customizations we needed for our clients. Hopefully other WordPress users will find our additions useful.
Version: 1.9
Author: Cyber Sprocket Labs
Author URI: /
License: GPL3

Copyright 2010  Cyber Sprocket Labs (

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA


A Fee To Unlock Is Not Permitted

This is a statement that wraps these comments together as they all speak to that point:

2. A fee to ‘unlock’ is not permitted

3. A fee to in any other way alter the plugin is not permitted

A plugin must be fully functional, not a trial, free and the user must be allowed to change the plugin code if they wish.

A Fee To Unlock Is Not Permitted

OK, we agree that having to enter a “license key” (or a “donation key” if you prefer) does “unlock” certain features.  But that is a gray area in-and-of-itself.  First of all the plugin is 100% functional as presented.   We have simply hooked into the shortcode processor so that you must be logged in as a user with admin privileges for the shortcodes to render on pages.  That means visitors won’t see the shortcode output.   You have two options, edit the line in the code that checks the key was entered or send us a donation and put the key in the web based entry box on the admin panel and everything renders to visitors as well as admin users.

Second, and MOST IMPORTANT, where is this policy stated? We sure as heck couldn’t find it.  In fact this quote is directly from the WordPress Developer Center where you register for plugins:

There are only a few restrictions

  1. Your plugin must be GPLv2 Compatible.
  2. The plugin most not do anything illegal, or be morally offensive (that’s subjective, we know).
  3. You have to actually use the subversion repository we give you in order for your plugin to show up on this site. The WordPress Plugins Directory is a hosting site, not a listing site.
  4. The plugin must not embed external links on the public site (like a “powered by” link) without explicitly asking the user’s permission.
  5. If you don’t specify a v2-compatible license, what you check in is explicitly GPLv2

That’s it in its entirety.  Where does is say ANYTHING about “fee to unlock is not permitted”.   We’ve searched the forums, the entire developer directory, the FAQs.  NOWHERE is this policy stated.  When did this become an issue?

A Fee To In Any Way Alter…

The plugin is not altered in any way.


A plugin must be … not a trial… free… allowed to change….

The multi-part comment regarding this point:

A plugin must be fully functional, not a trial, free and the user must be allowed to change the plugin code if they wish.

Let’s start with the easy ones:

Not a trail.
Definitely Not.

Fully functional.
It is.  All the features work and none are missing.  Yes, you can only see certain output as an administrator before you enter a donation fee, but is that non-functional?   Absolutely not.  There are dozens of plugins and built-in WordPress functionality that restricts what people see based on their role.  In fact, the WP3.0+ builds do that very thing.  Admins see a menu bar on the pages while logged in and browsing, but visitors do not.  Is that not fully functional because visitors can’t see some content?

No, we are not being intentionally naive here.   We know that entering the code you get after sending in a payment changes how the plugin works.  However we are not ADDING anything or removing anything.  All the pieces are there.  Don’t want to pay?  Simply edit the one-line of code that checks the donation code was entered.    Everything is there.

By the same token, what about the thousands of plugins that have add-ons?   Those plugins are purposefully nutered when put on the WordPress directory.  You must pay to get feature X or feature Y.   So it is OK to ask for money so you can download the other pieces that make the plugins complete?   If you ask us, THAT is truly not fully functional.  You can’t even turn on those features if you wanted to because you don’t have the CODE.

We give EVERYONE ALL THE CODE UP FRONT whether or not they pay us.   Seems like a better way of doing this to us, but  unless the WordPress people simply missed those 5,000+ plugins that do the limited features/pay us for the extras, it would appear they prefer we send crippled, half-there products and ask for an “add on” fee instead.

It must be free.
What?!?!?!? Who says?

Certainly not GPL.   And DEFINITELY not the guys that started WordPress.   Even Matt Mullenweg, the guy who basically started it all, does not think that add-ons to WordPress should be free. There are multiple recorded conversations about this topic and how people should be allowed to profit on their work based on WordPress extensions including themes and plugins.  The transcript from the Thesis “battle” is just one of many references to this topic.

GPL clearly states that you CAN CHARGE for products licensed under GPL.   Excerpts from the GPL Preamble (the plain speak summary of the legal-speak to come later in the document):

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish)…

Many people that read the GPL simply do not get it. They always equate the word free to the monetary value of something, in essence what you pay to obtain it.   Thus too many people read the GPL and immediately start jumping up & down and waving their fists in the air saying “YOU CANNOT CHARGE MONEY FOR THIS!!! IT IS GPL!!!!”.    That, quite frankly, is an imbecile in action.   READ THE GPL.  Read it carefully.  UNDERSTAND THE GPL.   And if necessary, get a clue.

Benefit Of The Doubt

For now we are going to give the guys that are playing god over at the WordPress Plugin Directory the benefit of the doubt.   We’ll assume that maybe they have a policy that you absolutely cannot charge for a plugin or that you cannot have a role-restricted section of the plugin.   If this is the case then WordPress needs to update their plugin listing requirements before other developers spend countless hours like we did writing code only to be banned shortly after they put them online.

Hopefully they did not do what a lot of other clueless GPL Must Be Free flag-waving idiots do, and equate the term “free” in the GPL with “you cannot charge a price”.   Given the WordPress founder’s obvious affinity for upholding and promoting GPL as “how things should be done” would truly be a sad declaration.   His own minions don’t get it.

Tell Us What You Think

So what do YOU think? Is our position wrong?   Should we just be giving away all our work for free; allowing unfettered access to everything we do and HOPE for donations?   If so, what fixes do you suggest for getting people to actually send in donations?  There are thousands, literally thousands, of ex-WordPress plugin developers littering the WordPress landscape for one sole reason: the donation system failed them. If you’ve got the magic panacea please share so everyone can discuss.

If you agree with us, then let the people at WordPress know.  Write to the plugin people at or ping Matt Mullenweg via his blog contact form.

If you know someone at WordPress who might listen to our viewpoint and possibly be willing to work with us to keep us listed, please let us know.


We just learned that the person that kicked us off the WordPress listing is the very same person that did this a year ago.   He is also the very same guy that got ahold of one of our requests for a new plugin namespace,  before we had ANY information other than a short description of what it would do, and held up the request for 3 weeks (it normally takes 24-48 hours).   We got someone else at WordPress involved both times & they made things right.

If anyone knows Mark Riley please try to talk to him. If you don’t know him please ping him at his blog or via email and ask him to please support plugin developers that are trying to play by the rules.

Mark Riley
aka “Romantic Robot”
aka “Podz”

Leicester UK
d/o/b: June 5th, ????

Mark Responds

We finally got a response from Mark.   Our only question is where is this “if it isn’t free it can’t be listed in the directory” rule posted?  It certainly isn’t on the requirements to be listed page.  At least not today, yesterday, or any day in the past 18 months.

Here is Mark’s response as posted on the WordPress Forums thread (

Anyone can charge for plugins, or themes, or other code. There are lots of people doing this very successfully for people who use WordPress. But no theme or plugin that wants to charge can be listed in the directory.

If you want to offer the plugins free and without conditions that would be great and they will be re-included after you have made the changes to the readme.txt
If you would prefer to ask for the fee then they cannot be re-included.

It’s that simple.


4 thoughts on “WordPress Plugins – Is Charging A Fee GPL Compliant?

  1. You’ll have to rely on SEO for people to find you now.

    I have purchased quite a few plugins that do different things, I know I tested all of them first, then purchased. Can’t remember if all of them were in the directory.

    Does WP have an issue with a free version that offers users some functionality. If they want the other features, then you upgrade to the full version from your website.?


    1. It depends no how you package those paid features. We’ve been told the product must be fully functional and cannot push the user toward a paid service of premium upgrades in any way. Which is interesting since Akismet (bundled with WordPress) clearly states you cannot use it for free in a commercial setting. The whole topic seems to be a gray area & not well outlined by WordPress. In fact the “you cannot be listed if you charge a fee” is still not a published policy that can be found anywhere on the WordPress site.

      We have been told we can list a LE (Light Edition) version, so we just published that tonight. Hopefully enough people will find that version functional enough to want to donate and/or upgrade to the $25 Plus version that was our core product offering. The sad part is it now takes a lot of extra effort to put out any bug fixes or updates. We already lost a full week+ creating the LE version, time that could have been spent on nothing but product improvements. Guess that is the price the entire community has to pay so we can play by the recently-introduced (at least to us) rules.

  2. What are the rules for the light edition?

    Can you include code in the light edition that pulls updates to the plugin from the server after your customer pays?

    WPMU has a plugin updater but I don’t see it on the repository.

    They have light editions with descriptions in the repository that clearly market their professional editions.

    So is the line drawn where you can’t use the update mechanism on the repository for deploying paid code?

    But can you deploy unpaid code that includes an updater that accesses some other repository?

    Say I post a plugin that is free, but it does updates from a git repository, and that repository requires payment for access.

    As you mention that doesn’t appear to violate the gpl as you are just charging for delivery, not preventing users from making changes. The user could use that plugin and point to any git repository they want. Including a paid one.

    Frankly I think this GPL stuff is bunk. Especially the moralizing. Automatic just uses it to sell services that have their code behind closed doors. What really is the difference between relying on a service that you don’t have the code for and a plugin that wasn’t open source? From where I’m sitting there is none.

    Askimet, Vaultpress, and They all have code that is not open source because its run as a service. So how about if we really believe in sharing code so that people aren’t locked in and can make changes, we extend the gpl to say that any code that you provide to another person, that they are going to rely on, both code that runs a service and code that runs on the end users own servers, has to be not only be open source but shared source as well.

    Of course, they won’t do that, because the wordpress business model is designed to get the open source community to market the wordpress brand so that the people at the top can make money off of and its affiliated services.

    It is not designed to make money for independent developers. If it was they would have already create a professional repository on for paid access to code.

    Which they won’t do, because the strategy is to leverage coders to prop up the brand. Forcing coders to create their own sales vehicles, and attempting to make this difficult.

    Not only is wordpress giving away wordpress free so that paid cms platforms can’t compete they are trying to convince plugin developers to give away free enhancements to further degrade the ability for the competition to charge for their products.

    Like in the browser wars, wordpress is winning through this strategy of making as much free as possible so we have to use it to acquire customers.

    So arguments that Matt makes that you can just use another platform are bunk. You can, but by doing so you are deviating from the standard and taking your clients away from the largest developer community into the world of expensive to maintain proprietary software.

    I recently tried to get some idea of what he thinks the model for consultants should be to make a living, but I haven’t received a response. It would be really nice to hear from Matt and the core team regarding how they envision the finances of a private consultancy that is participating in wordpress. The clearly don’t want you to make money off of distribution of your code. Or at least, to date, they appear to have no interest in facilitating that.

    Of course, I’m still figuring this all out but that is my current opinion.

  3. I’ve just recently learned of this issue. I’m not sure why the confusion exists, but the ground rules for GPL released software are cut and dried. Wikipedia has a good introductory article obviously named “GPL General Public License” and WordPress itself is made available under “GPLv2 (or later)”.

    There are a number of plugins that are developed for WP and have a fee-based “plus” or “premium” version, existing alongside a “free” one that is listed on the WP repository. In fact, there’s a plugin that goes functionally in a similar direction as Store Locator Plus, named SimpleMap – it is listed and available through the WP plugin repository – and it, too, comes in a “free” and “premium” flavor. Another example is Event Espresso, also listed in its “free” (or “Lite”) version on WP. Yet another example is s2Member which has a “free” and a “pro” version; different classifications, same basic idea.

    So, to be perfectly honest, I don’t think this is an issue of WP (or GPL altogether) being inconsistent with a two-tiered or dual offering, of a free and a fee-based version. This seems much more like a matter of definition; it’s about text or presentation.

    Honestly, to me this smacks of a gigantic cluster#### caused by lackluster communication skills, including WP’s Mark.

    Personally, I think that if instead of presenting the product (plugin) as essentially one and the same version of the plugin code with “premium features” that can be accessed / unlocked for a fee to extend the functionality of the “free” version, the “proper” route is to essentially fork the plugin. That’s how the other plugins I mentioned roll. And that’s why those are in the WP repository.

    Now, don’t get me wrong: I’m not underestimating (less so overlooking) the added, burdensome complexity of a dual, forked codebase and its exponentially increased maintenance problems. But that’s how the issue can and arguably should be addressed, to include SLP back into the WP repo.

    Now, as to Trevor’s rationale that WP is more or less replaying the old Microsoft trick of releasing IE (back then essentially to assassinate Netscape, and so retake market share and with it a unified control of OS / browser integration) by “dumping” free software out there to “kill” others, I call major BS on that. Just for argument’s sake I’ll include Joomla! and Drupal in the field of WP’s “competition” aside from MovableType. How can one argue that “free” (GPL-based) distribution is tilting the market in one’s favor when the others are ALSO freely available? That makes no sense. No, WP simply managed to build a better mousetrap at one point, and as a result of it, it has a feature set that translates into an impressive market share. Rightly or wrongly, people think WP is a predominantly better solution; the “competition” has a wide open opportunity to convince people otherwise with their product. Guess what: the competitors have better things to do than focus on WP, they focus on their own product, and all of them (none excluded) are indeed fantastic products as well. Popularity and quality are not necessarily synonymous expressions.

    So again, I personally have no problem whatsoever with paying for a “premium” license. Store Locator Plus is a wonderful plugin, and that’s why I gladly paid for it. So are the other ones I mentioned.

    There is only one way to move forward here and get back to making some money (and I tangentially agree that it’s both tragic and disturbing that the honor system doesn’t translate in an even remotely reasonable number of people donating at least SOMETHING for all the hard work done).

    Fork SPL or face the uphill, high road struggle of emulating other plugins that have gone off the WP grid and scrape by, e.g. the Your Members (a “competitor” of s2Member) plugin team that put out a great product, back it up with great service and earn every penny. And yes, I am a happy customer with them, too.

    But it’s either doing one’s business or getting off the pot: unfortunately, that’s the consequence of developing something as a complement to an existing, wildly successful GPLv2+ product like WP, and having a desire as well (by all means reasonable) to at least see some compensation for the hard work.

    With all that out of the way, GPL based development also lays bare the fundamental problem that manifests itself elsewhere in real life, e.g. in politics: the ones voting (with their wallet) are not necessarily representative of the voices out there that criticize how a given government runs the country. In the case of WP, we as mere users should do more on to hold up our end of the deal, as well, being good citizens of our community.

    And be more supportive of the few that really put in the blood sweat and tears, by expressing constructive criticism instead of venting emotions without traction. That’s why I suggested the avenue of forking development, and provided the practical, existing cases as examples that work.

Comments are closed.