Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Insert or Embed Articulate Plugin into Wordpress - Plugin review email thread
https://www.elearningfreak.com/uncategorized/articulate-wordpress-plugin-is-not-in-wordpress-repository/
Note: Still working on the formatting. It'll take a few days:
Your Plugin - Insert or Embed Articulate Content into WordPress - has been Suspended on WordPress.org
From: "Ipstenu (Mika Epstein)" <plugins@wordpress.org
Date: March 28, 2017 at 1:41:04 PM CDT
To: brian@redacted.com
Subject: Your Plugin - Insert or Embed Articulate Content into WordPress - has been Suspended on WordPress.org
Reply-To: Ipstenu (Mika Epstein) <plugins@wordpress.org
Upon review, your plugin has been found to be in violation of the directory guidelines, found at
https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/
Your plugin is a trial version.
Note that this trial version will allow you to upload 3 .zip files before asking you to purchase. For some people, this will be more than enough.
Our guidelines prohibit that in item 5. Trialware is not allowed in the directory.
Plugins may not contain functionality that is crippled or locked, only to be unlockable by payment or upgrade. Paid functionality must be part of an externally hosted service or a separate plugin, that is not hosted on wordpress.org.
Plugins are closed immediately and the developer contacted when this happens, in part because we have an imperfect system of notifications. This means until your plugin is corrected to meet our guidelines, we will not reopen it. Once you have corrected the issue, checked the code into SVN, and increased your plugin's version number, please reply and let us know. At that time we will re-review your code (not just the changes, but the entire plugin), so there may be a delay.
Your plugin will not be re-opened until it is reviewed, and it won't be reviewed until you reply to this email, so please do so as soon as you've corrected the issue(s).
If you have any questions, please let us know.
https://wordpress.org/plugins/insert-or-embed-articulate-content-into-wordpress/
================================================================================================
Hello,
This is a fully functioning plugin that has enabled over 10,000 instructional designers & elearning developers to share their projects & portfolios.
The paid functionality is apart of a completely separate plugin that is for sale here: https://www.elearningfreak.com/presenter/insert-or-embed-articulate-content-into-wordpress-plugin-premium/
The version on the Wordpress is not crippled or locked down in that users can still upload their Articulate content, edit their existing content, iframe it, lightbox, and lots of other functionality included for free. The premium version for sale on my website is a seperate plugin and is an "upsell" or an extension of the original plugin.
I have resubmitted the plugin. I've spent a lot of time & effort making sure that this plugin continues to be valuable to my users. In fact, this plugin has been apart of the Wordpress repository for over 6 years. I've continually implemented bug fixes and have spent thousands of dollars developing this plugin. I could easily pull this plugin from the site & continue to sell the Premium one on my website. However, I want to provide people with a free alternative to other pricey tools like WPLMS, Learndash, and even Articulate's own services.
I hope you'll reconsider. I believe my plugin passes your requirements due to the following reasons:
#1 - The premium plugin is a completely separate plugin from the version available on the Wordpress repro. It's been that way since I introduced the premium plugin in 2014.
#2 - Upsell notifications are not prominent or annoying.
#3 - Functionality is not locked. Users may continue to edit their uploaded content using the Content Library
Thanks,
Brian
================================================================================================
We don't need you to "resubmit" the plugin. You have the plugin entry in the directory already.
What we need you to do is to modify the plugin to remove the limitation of only "3 uploads" using it.
This is a completely artificial limitation in the source code of the plugin.
if (count($dirs) quiz_embeder_count())
{
echo '<blockquote class="flow-text pink-text lineheighter"The version only supports three uploads. Please purchase the full version with unlimited uploads at <a href="http://www.elearningfreak.com/presenter/insert-or-embed-articulate-content-into-wordpress-plugin-... target="_blank"www.elearningfreak.com</a - Already purchased the premium plugin? Go to Articulate License on your Wordpress menu to activate your license key.</blockquote';
}
I could easily pull this plugin from the site
If you do not remove the artificial limitations from the plugin, then you won't have to do this, because we will remove the plugin from the directory permanently.
You misunderstand the nature of the WordPress.org Plugin Directory. We are not a marketplace. We are not there to advertise for you. We are there offering you free hosting, free updates, free access to the millions of WordPress users out there.
If you want to sell additional functionality on your own paid version of the plugin, then that's fine. But it must be additional functionality, not removal of artificial limitations that you baked into the code specifically so that you had something to upsell the users to in the first place. We will not host your code for free if you do that.
So, here's your actual choice to make: Remove the restrictions, or we will cease offering you free hosting for your plugin on WordPress.org.
-Otto
B
Brian Batt replied 2 days ago (Tue, 28 Mar at 5:40 PM)
Replied to : plugins@wordpress.org
Hello Otto,
First off, the free version on the Wordpress repro and the one on my site are completely separate plugins. I'm not using the repo in Wordpress simply for hosting. In fact, here's a copy of the first order I ever received for the premium version of my plugin back in September of 2012. So, I'm not sure why I'm suddenly being told to do something different when I haven't changed anything in almost 5 years:
image
Regarding the "artificial limitation" statement, there's nothing artificial about the code that extracts the zip of a published elearning course & makes it playable within Wordpress either via an iframe or lightbox. My plugin uploads the ZIP to Wordpress using Plupload, extracts the content (usually hundreds of files), and then selects the appropriate file to display using an algorithm to ensure that the content is responsive. That's not easy & that's why I impose this limit. I also have developer licenses for the lightbox functionality that I've purchased through third parties that people have to pay hundreds of dollars to access as individuals. However, those are free to use in the Wordpress Repo version. Also, there are several plugins on the market that have copied my functionality exactly (they didn't even bother to change the code) and have sold it as a feature. It's usually called "one click upload" like this: https://www.learndash.com/work/grassblade-pro-version/ - https://vibethemes.com/documentation/wplms/knowledge-base/embedding-articulate-storylineadobe-captivateispring-content-packages/ - If this was an artificial limitation, I wouldn't have over 10,000 users of the free plugin. Elearning content is really hard to display & is constantly changing. That's why I have to keep my plugin constantly updated & have for the past 6 years. Here's an example structure of a .zip file that my plugin can display in Wordpress:
image
Here's just a few (of many) of the people in the Articulate forums that I've been able to help with this plugin:
http://wpplugincoach.com/articulate-modules-in-wordpress/
https://community.articulate.com/discussions/articulate-storyline/wordpress-pluging-for-storyline#reply-41428
https://community.articulate.com/discussions/articulate-storyline/storyline-to-wordpress#reply-126403
http://michaelseery.com/home/index.php/2010/02/addingarticulate-wordpress/comment-page-1/#comment-3032
Full disclosure: I work for Articulate. I created the plugin originally due to the many support requests that I answered about making it easier to upload content to Wordpress. The company had no interest in developing such a plugin. So, I invested the time & resources into making this happen. Thus, I develop and maintain this plugin on the side.
Even after the user has reached 3 uploads, they can continue to use the plugin and display their elearning content on their site. There's no watermarks or any restrictions on viewing or editing the content. In fact, in order to upload more items, they can simply delete the items from the Content Library and their upload count resets. I've got that documented on my site and also the support forums.
To reiterate, my premium plugin is hosted on my site. It's a separate plugin & has additional functionality like course completion tracking (shown below) and tin can api/xapi statement viewing:
Again, my plugin is no different than many of the "Lite" plugins available on Wordpress in that we choose which features are Lite in hopes that the user upgrades to the premium version. The content uploaded using my plugin can still be used and launches by both the author and the end-user. There's no annoying watermarks or restrictions that are shown to the website viewers. I've done everything in the past 6 years to ensure that my plugin is not simply trialware per the guidelines and I'm not sure why I'm suddenly being audited when I've sold my extension plugin since September of 2012.
https://wordpress.org/plugins/video-blogster-lite/
https://wordpress.org/plugins/nice-paypal-button-lite/
https://wordpress.org/plugins/social-gallery-lite/
https://wordpress.org/plugins/search-manager/
https://wordpress.org/plugins/nivo-slider-lite/
Thanks and I hope you'll reconsider,
Brian
P
Plugins replied 2 days ago (Tue, 28 Mar at 6:31 PM)
to : redacted@redactedemail.com
Humans make mistakes.
We shouldn't have approved a plugin that limits uploads to three. And that's our mistake. But at the same time, we've had a guideline since pretty much forever that states you cannot arbitrarily lock people out of part of a plugin.
Your plugin is limited to three uploads, and upsells a separate plugin to unlock. Technically, if someone wanted to fork your plugin and remove the limitation, we would permit that. Which I suspect you wouldn't be a fan of, and yet that's perfectly reasonable within the GPL.
You have two choices:
1) Remove the 3-upload limit
2) Leave your plugin closed
That's what we have today. I'm sorry we didn't notice this sorry, and I'm sorry we all (you included) missed this as a guideline violation. But it is. Your plugin is not acting as a service, it's running all the code itself, therefor it does not meet our qualifications for what we would allow.
B
Brian Batt replied 2 days ago (Tue, 28 Mar at 7:34 PM)
Replied to : plugins@wordpress.org
Hello,
Just so I understand, as long as I remove the upload limit, I can disable all of the other features in the plugin and say that those are "Premium" features. Is that correct? So, let's take a look at what that involves:
#1 - User can upload & view their content in both iframes & lightboxes. So, if I remove the unlimited uploads option, I'll disable everything else, but iframes like this:
image
#2 - No need to allow the user to edit their already uploaded content, so let's remove the Content Library entirely:
image
#3 - No need to allow the user to pick either Colorbox or Nivo Lightbox to ensure Wordpress theme compatibility (including 13 lightbox themes that I paid someone to design):
image
#4 - Let's also remove the custom sizing options so that the user has to manually change those settings every time they upload a content item:
image
#5 - Let's also remove the ability to use custom buttons to launch the content. The Lite version only supports iframes anyways, right?
image
Can you see my point? You're getting hung up on the Uploads functionality when there's a ton of other features (including bug fixes) that make it really easy to ensure the user can display their content EXACTLY how they want it. So, according to the terms, I can disable all of those options above & I'll be within the terms.
I'm very proud that a user can do exactly what they need to do without getting hit constantly with annoying prompts & watermarks like half of the "Lite" products in the Wordpress Repo. So, if I'm forced to change the upload count, anyone that is already using the plugin & has never hit the upload limit will essentially be forced to upgrade to premium for features that they've had access to for free. I have a ton of users that are in instructional design college courses that simply need to display a course or 2 in their Wordpress portfolio. They are benefiting from all of the features & bug fixes that I release for both the Lite and Premium versions of my plugins. And they never have to pay for the Premium plugin because the Lite version has everything they need. Unfortunately, that will not be the case if I'm forced to update my plugin.
And to be clear, the user is not locked out of the plugin. Here's an example of everything that can still be done:
http://drops.articulate.com/DC0I
Thanks,
Brian
P
Plugins replied 2 days ago (Tue, 28 Mar at 7:46 PM)
to : redacted@redactedemail.com
Just so I understand, as long as I remove the upload limit, I can disable
all of the other features in the plugin and say that those are "Premium"
features. Is that correct?
No. You misunderstand.
If the code to do a thing is included in your plugin, it can't be locked out. So if you chose to remove people's ability to do things, then the code has to be removed entirely. If it's in the files uploaded to .org, then it can't be arbitrarily locked out.
No disabling. Removing.
You certainly can remove features and have them ONLY in the premium version if you wanted.
We're not 'hung up' on anything besides this: If I can go in and edit your plugin and upload as many as I want, then your limit is arbitrary and needs to be removed in order to be in compliance with our guidelines.
--
Ipstenu (Mika Epstein)
B
Brian Batt replied 2 days ago (Tue, 28 Mar at 8:23 PM)
Replied to : plugins@wordpress.org
Hello,
How is what I'm doing any different from a plugin like Wordfence?
https://wordpress.org/plugins/wordfence/
The code is there to provide real-time updates, but unless you're premium, you're limited:
image
image
image
Personally, I love Wordfence. The basic version of Wordfence is enough for me just like 3 uploads is enough for some of my users. For some Wordfence users, their real-time scanning feature might be the "must-have", but it's hidden behind a pay wall.
I don't understand the double-standard here. That's what I have a problem with. Wordfence is not the only plugin in the Repo that does this.
If you want, I can change this code:
if (count($dirs) quiz_embeder_count())
To:
if (count($dirs) 2))
Then, rename my plugin to "Insert or Embed Three Articulate Content Items into Wordpress", but I really don't think I'm doing anything different than a lot of other Wordpress developers.
Thanks,
Brian
P
Plugins replied 2 days ago (Wed, 29 Mar at 12:02 AM)
to : redacted@redactedemail.com
They're acting as a service. The plugin isn't doing the scan, the remote service is. You're not a service.
Limiting your plugin to an arbitrary number, within the code, in order that you can upsell to a pro version that's unlocked is pretty much what we don't want you to do with a plugin.
You can remove aspects and have them installable as add ons (this is the edd / woocommerce model)
You can have a totally separate pro version with the missing features (this is the Yoast / Monster model)
You MAY NOT hardcode in an arbitrary limit when the plugin does all the work.
Hello,
How is what I'm doing any different from a plugin like Wordfence?
https://wordpress.org/plugins/wordfence/
The code is there to provide real-time updates, but unless you're
premium, you're limited:
Personally, I love Wordfence. The basic version of Wordfence is enough
for me just like 3 uploads is enough for some of my users. For some
Wordfence users, their real-time scanning feature might be the
"must-have", but it's hidden behind a pay wall.
I don't understand the double-standard here. That's what I have a
problem with. Wordfence is not the only plugin in the Repo that does
this.
If you want, I can change this code:
if (count($dirs) quiz_embeder_count())
To:
if (count($dirs) 2))
Then, rename my plugin to "Insert or Embed Three Articulate Content Items
into Wordpress", but I really don't think I'm doing anything different
than a lot of other Wordpress developers.
Thanks,
Brian
B
Brian Batt replied a day ago (Wed, 29 Mar at 9:49 AM)
Replied to : plugins@wordpress.org
Hello,
Unlimited uploads is my service. It requires not only a separate plugin to be installed, but also an activation code that verifies that user has access to that feature. The separate plugin and the licensing system is all handled on my site. Unlike Wordfence, I'm not using the Wordpress Repo to host all of my code. Here's an example:
Simply installing the separate plugin is not enough to enable the unlimited uploads service:
image
The separate plugin does add a new "License" page:
image
Then, you must have an active license for the Premium plugin (which again is completely separate and hosted by me):
image
Wordfence on the other hand, hosts all of its code on the Wordpress Repo including the activation which is a clear violation of "Paid functionality must be part of an externally hosted service or a separate plugin, that is not hosted on wordpress.org."
My plugin not only utilizes a separate plugin, but also an externally hosted activation service.
Because Wordfence hosts the activation code within the plugin hosted on the Wordpress Repo, they are also in violation of "The plugin may not “phone home” or track users without their informed, explicit, opt-in consent." - Their plugin has to "phone home" in order to verify the activation of the license.
My plugin does not contain any of the activation code. The completely separate premium plugin handles the activation code.
============
My software is a service and is within the guidelines provided in the terms. I'll be more than happy to update the readme to make that as clear as possible. I'm not trying to game the system, nor am I using the Wordpress repo to simply advertise my premium plugin. My plugin with it's lite features is enough for most people. Whereas a plugin like the one below is blatantly advertising it's Pro plugin as the first thing in their description:
image
Thanks,
Brian
P
Plugins replied a day ago (Wed, 29 Mar at 10:07 AM)
to : redacted@redactedemail.com
a service that is a license is not an acceptable service. We actually mention that specifically on the guidelines.
Hello,
Unlimited uploads is my service. It requires not only a separate plugin
to be installed, but also an activation code that verifies that user has
access to that feature. The separate plugin and the licensing system is
all handled on my site. Unlike Wordfence, I'm not using the Wordpress
Repo to host all of my code. Here's an example:
Simply installing the separate plugin is not enough to enable the
unlimited uploads service:
The separate plugin does add a new "License" page:
Then, you must have an active license for the Premium plugin (which again
is completely separate and hosted by me):
Wordfence on the other hand, hosts all of its code on the Wordpress Repo
including the activation which is a clear violation of "Paid functionality
must be part of an externally hosted service or a separate plugin, that is
not hosted on wordpress.org."
My plugin not only utilizes a separate plugin, but also an externally
hosted activation service.
Because Wordfence hosts the activation code within the plugin hosted on
the Wordpress Repo, they are also in violation of "The plugin may not
“phone home” or track users without their informed, explicit, opt-in
consent." - Their plugin has to "phone home" in order to verify the
activation of the license.
My plugin does not contain any of the activation code. The completely
separate premium plugin handles the activation code.
===========
My software is a service and is within the guidelines provided in the
terms. I'll be more than happy to update the readme to make that as
clear as possible. I'm not trying to game the system, nor am I using the
Wordpress repo to simply advertise my premium plugin. My plugin with
it's lite features is enough for most people. Whereas a plugin like the
one below is blatantly advertising it's Pro plugin as the first thing in
their description:
Thanks,
Brian
B
Brian Batt replied a day ago (Wed, 29 Mar at 10:33 AM)
Replied to : plugins@wordpress.org
Hello,
So, I send you a thoughtful reply with great examples of why my plugin falls within the Service category and you reply with one sentence? You obviously didn't read my reply and you obviously do not understand my plugin. My service is unlimited uploads. Just because you don't like what I consider a premium feature, doesn't mean that I violate your terms. My unlimited uploads service is apart of another separate plugin that is hosted on Github using Easy Digital Downloads to handle the activation and validation of the license. As you said before: "You can have a totally separate pro version with the missing features (this is the Yoast / Monster model)" - The feature missing from my Lite plugin is unlimited uploads. The premium version has the unlimited uploads feature.
Here's a quick list of plugins that implement your so called "arbitrary limits":
https://wordpress.org/plugins/wpdatatables/
Please note some limitations of the Lite version:
Plugin will allow only tables up to 150 rows.
=========================================================
https://wordpress.org/plugins/video-blogster-lite/
Doesn't allow batch processing of 50 videos in the Lite version
=========================================================
https://wordpress.org/plugins/microthemer/
Microthemer Lite is a free trial that gives you full editing features and the same customer support paying customers receive. The only difference is that it limits you to editing/creating 9 ‘selectors’ e.g.
The site title.
The site description.
An image, or all images.
A link, or all links.
The search site input field.
The search site button.
A post/page.
The sidebar.
The footer.
Or any other 9 elements you choose, these are just examples.
The full program allows you to edit an unlimited number of elements – read on to find out how.
=========================================================
https://wordpress.org/plugins/push-notifications-for-wp/
With Push Notifications for WordPress (Lite) you can send, for each post, a maximum of 1,000 notifications per platform (e.g. 1,000 for iOS, + 1,000 for Android).
Push Notifications for WordPress (Lite) is our basic solution for small personal blogs. We also offer a full-featured plugin with a reduced memory footprint and unlimited notifications, Push Notifications for WordPress, designed for all the other websites. Push Notifications for WordPress also supports Safari, Chrome, and Firefox notifications. If you’re not sure which plugin is right for you, compare the features here.
=========================================================
https://wordpress.org/plugins/wpnewsman-newsletters/
WPNewsman Pro is a significant upgrade over Newsman Lite that will allow you to:
Send to unlimited number of subscribers (vs. 2000 subscribers in the Lite version).
=========================================================
Thanks,
Brian
P
Plugins replied a day ago (Wed, 29 Mar at 10:45 AM)
to : redacted@redactedemail.com
Thank you for pointing those other plugins out. We'll investigate them as well and if they do not conform to our guidelines then they too will be removed from the directory.
However, your definition of "service" does not meet ours. If the "service" in question is simply to remove an arbitrary restriction that is *in the plugin code*, then it is not a service by our definition.
Your plugin code has an arbitrary restriction added into it. This is not acceptable, and it will not become acceptable through any arguments you make on the matter.
Please remove the restriction or we will remove the plugin.
-Otto
Hello,
So, I send you a thoughtful reply with great examples of why my plugin
falls within the Service category and you reply with one sentence? You
obviously didn't read my reply and you obviously do not understand my
plugin. My service is unlimited uploads. Just because you don't like
what I consider a premium feature, doesn't mean that I violate your terms.
My unlimited uploads service is apart of another separate plugin that is
hosted on Github using Easy Digital Downloads to handle the activation and
validation of the license. As you said before: "You can have a totally
separate pro version with the missing features (this is the Yoast /
Monster model)" - The feature missing from my Lite plugin is unlimited
uploads. The premium version has the unlimited uploads feature.
Here's a quick list of plugins that implement your so called "arbitrary
limits":
https://wordpress.org/plugins/wpdatatables/
Please note some limitations of the Lite version:
Plugin will allow only tables up to 150 rows.
========================================================
https://wordpress.org/plugins/video-blogster-lite/
Doesn't allow batch processing of 50 videos in the Lite version
========================================================
https://wordpress.org/plugins/microthemer/
Microthemer Lite is a free trial that gives you full editing features and
the same customer support paying customers receive. The only difference is
that it limits you to editing/creating 9 ‘selectors’ e.g.
The site title.
The site description.
An image, or all images.
A link, or all links.
The search site input field.
The search site button.
A post/page.
The sidebar.
The footer.
Or any other 9 elements you choose, these are just examples.
The full program allows you to edit an unlimited number of elements –
read on to find out how.
========================================================
https://wordpress.org/plugins/push-notifications-for-wp/
With Push Notifications for WordPress (Lite) you can send, for each post,
a maximum of 1,000 notifications per platform (e.g. 1,000 for iOS, + 1,000
for Android).
Push Notifications for WordPress (Lite) is our basic solution for small
personal blogs. We also offer a full-featured plugin with a reduced memory
footprint and unlimited notifications, Push Notifications for WordPress,
designed for all the other websites. Push Notifications for WordPress also
supports Safari, Chrome, and Firefox notifications. If you’re not sure
which plugin is right for you, compare the features here.
========================================================
https://wordpress.org/plugins/wpnewsman-newsletters/
WPNewsman Pro is a significant upgrade over Newsman Lite that will allow
you to:
Send to unlimited number of subscribers (vs. 2000 subscribers in the Lite
version).
========================================================
Thanks,
Brian
B
Brian Batt replied a day ago (Wed, 29 Mar at 11:07 AM)
Replied to : plugins@wordpress.org
Hi Otto,
My service doesn't just allow unlimited uploads. I have other features in the premium plugin like Tracking that I mentioned before. The tracking feature is worth thousands of dollars a month. Here's a similar product to my completely separate Wordpress plugin: http://www.saltbox.com/learning-record-store-pricing.html
I've invested 6 years of my time & thousands of dollars into this plugin. Instead of holding back features like custom buttons, custom sizing, 13 custom designed lightbox themes, editing existing content, and much more, I've chosen to include those features so that both Free and Premium customers benefit. I have thousands of users that utilize the free version of the plugin that will no longer have access to bug fixes and new features if it's removed. I just cannot understand why I'm suddenly being audited when I've kept the free plugin and the premium plugin completely separate from each other. All I'm asking for is the playing field to be even. Just because you think unlimited uploads is an arbitrary limit, doesn't mean that it is. Have you seen the code that handles the upload and extraction? I've had to update that numerous times to get around all kinds of server limits. Until I finally found a solution, I was answering multiple support cases a day on server upload limits that had nothing to do with my plugin. That takes time & money to develop. To say that's arbitrary is simply ignorance. There's no difference between Wordfence requiring a license to remotely scan a server and my completely separate plugin (again, that's not hosted on Wordpress) requiring a license to remotely verify if the user can continue to upload content.
Thanks,
Brian
P
Plugins replied a day ago (Wed, 29 Mar at 11:25 AM)
to : redacted@redactedemail.com
Okay, let me try to explain this in a way that makes more sense to you.
If you want to add additional features using an add-on plugin and then sell that plugin from your site, then that's great. No problem. We don't care about your site or what it is that you sell, IN ANY WAY.
Our *only* concern is the code that is in our systems, being hosted by us, for free. That code is the *ONLY* code we care about.
Now, given that we don't care what you sell, then we are looking at what we are hosting for you, for free. What we see is that this code, on our site, being hosted by us, using our bandwidth, has arbitrary limitations placed in it and has some kind of licensing scheme in it that doesn't connect to our systems and doesn't need to be in the plugin that *we* are hosting.
Does this make any sense to you? Basically, what we see is that you are abusing our free hosting by artificially limiting the code in order to sell stuff elsewhere.
We don't allow that. It's just that simple. We don't allow our free hosting to be abused specifically for other people, like yourself, to make money.
And again, we don't care what you sell. If you want to sell extras and add-ons, good for you! A triumph of the free market.
What we do care about is you using our free hosting to put in *intentionally limited code* in order to sell things.
Does that make any more sense to you? It's one thing to advertise your add-ons within your free plugin, but it's *wholly another thing* to intentionally cripple your free plugin specifically in order to drive sales. That's not okay. We will not host that.
-Otto
Hi Otto,
My service doesn't just allow unlimited uploads. I have other features
in the premium plugin like Tracking that I mentioned before. The
tracking feature is worth thousands of dollars a month. Here's a similar
product to my completely separate Wordpress plugin:
http://www.saltbox.com/learning-record-store-pricing.html
I've invested 6 years of my time & thousands of dollars into this plugin.
Instead of holding back features like custom buttons, custom sizing, 13
custom designed lightbox themes, editing existing content, and much more,
I've chosen to include those features so that both Free and Premium
customers benefit. I have thousands of users that utilize the free
version of the plugin that will no longer have access to bug fixes and new
features if it's removed. I just cannot understand why I'm suddenly
being audited when I've kept the free plugin and the premium plugin
completely separate from each other. All I'm asking for is the playing
field to be even. Just because you think unlimited uploads is an
arbitrary limit, doesn't mean that it is. Have you seen the code that
handles the upload and extraction? I've had to update that numerous
times to get around all kinds of server limits. Until I finally found a
solution, I was answering multiple support cases a day on server upload
limits that had nothing to do with my plugin. That takes time & money to
develop. To say that's arbitrary is simply ignorance. There's no
difference between Wordfence requiring a license to remotely scan a server
and my completely separate plugin (again, that's not hosted on Wordpress)
requiring a license to remotely verify if the user can continue to upload
content.
Thanks,
Brian
B
Brian Batt replied a day ago (Wed, 29 Mar at 1:03 PM)
Replied to : plugins@wordpress.org
Hi Otto,
Thank you so much for the explanation. I feel like we're starting to make some progress. I completely get what you're saying. This is the exact reason why I have a separate plugin that I host and that handles the activation & the verification of the unlimited upload service. If I was like Wordfence, I would simply keep the License page inside of the plugin on Wordpress and sell only the activation code. But that's not what I'm doing. Do you see why I'm fighting this so hard?
In your guidelines, you mention these things:
"Our intent is to enforce these guidelines with as much fairness as humanly possible to ensure plugins’ quality and the safety of their users." - That's completely fair. After six years of updates & fixes, I feel like my plugin is extremely high quality. I hire developers through Codeable. I provide a quality plugin that most users can fully use for free. I provide equal support to everyone and keep my support forum in Wordpress as up to date as possible. However, my time has a price and it's only fair that I can benefit from my 6 years of work.
"Public facing pages, including readmes and translation files, may not be used to spam. Spammy behavior includes (but is not limited to) unnecessary affiliate links, tags to competitors plugins, use of over 12 tags total, blackhat SEO, and keyword stuffing." - See the many examples of other plugins in my previous replies that stuff their readme's with links to their Premium plugins. I make it very clear what my user is getting in the readme and have no intention of misguiding them whatsoever. It's very clear that unlimited uploads is a premium feature. Microthemer has been around for at least 3 years and is a "trial" plugin with arbitrary limits on their features: https://wordpress.org/plugins/microthemer/
Links to directly required products, such as themes or other plugins required for the plugin’s use, are permitted within moderation. Similarly, related products may be used in tags but not competitors." - "Other plugins required for the plugin's use" - That's a really strong term. In order to use the unlimited uploads feature, you must install the separate premium plugin that is hosted on my personal site. I believe my plugin falls within that category.
Regarding hosting & bandwidth, my plugin's trunk is 2.35MB in size. If this is really about hosting my plugin, I'll be more than happy to remove the older versions of the plugin that bloat the file size to a whopping 40+ MB. I'll even make a donation to the Wordpress org on an annual basis that more than covers the cost. I haven't heard anyone complain about file sizing and bandwidth in a really long time. Storage and bandwidth are super cheap these days. That's why I host my Premium plugin on my site & also keep my plugins in github. If there was a way to simply point your Wordpress Repo SVN to my Github releases, that would be awesome. That would solve the hosting/bandwidth complaint really quickly.
Also, there are a lot of instructional designers that use Wordpress because of my plugin. If the plugin doesn't exist, there's a chance they wouldn't use Wordpress at all to host their portfolios. My plugin being in the Wordpress repo is mutually beneficial. I have also been able to solve a lot of problems for not only my customers, but others as well that run into various Wordpress issues that are unrelated to my plugin. Here's a few examples:
Most people don't know how to properly setup SSL on their site. I have documentation & solutions on how to resolve that.
People in China have a hard time using plugins/themes that rely on the Google API's. I provide them with links to other plugins that help them solve this: https://wordpress.org/plugins/google-font-fix/
I often get asked for information on how to prevent direct access to the uploaded files and I provided them with links to other Wordpress plugins they can utilize for that.
I often get asked for information on how to sell access to their courses & I direct them to the WooCommerce plugin.
=======================================================================================
I have carried the Wordpress torch for a number of years. I have fixed issues for customers with other plugins & themes & notified those other authors when I encounter issues. In fact, I think the reason I got audited was because Motopress wasn't willing to admit they had a bug in their theme (even though they have contacted me since & said that they will resolve the issue).
I still don't think I'm doing anything that even the most popular plugins are doing. I think Wordfence is more blatantly using the Wordpress Repo to host their plugin.
Please reconsider. I'm not doing anything malicious. People that install the plugin know exactly what they're getting. I use a completely separate plugin hosted on my site that handles all of the activation & the unlimited uploads service.
The only alternative that I can think of would be to completely remove the ability to upload content & have that handled by the separate plugin. So, all of the code to Upload would be in the premium plugin. When you install the plugin from the Wordpress repo, I would require that they also install the plugin that handles the upload. That would definitely put me within this guideline: "other plugins required for the plugin’s use." That seems like a lot of work for something that "just works" now, but if it gets my plugin approved, I can do that. However, I don't think I'm "crippling" my plugin in any way. As mentioned before, it wouldn't be hard to modify the code to allow unlimited uploads. Honestly, it's amazing that anyone buys my premium plugin, but it does sell. I've found that people are just honest in general. They see value in the fact that I don't limit all of the functionality or features like many, many other plugins do. The main selling point is the Support that I provide to both free and premium customers, not the uploads.
Thanks,
Brian
P
Plugins replied a day ago (Wed, 29 Mar at 1:20 PM)
to : redacted@redactedemail.com
The problem between our understanding here is your use of the words "unlimited upload service". That's not a valid service, in our view.
Do these uploads go to your servers? Do you have any cost with storing or processing these uploads? What "service" is being provided here, exactly?
Services, in our view, incur costs. Do you host things for other people? Does their data pass through your systems and incur you costs?
Akismet is a service. Comment are sent to the akismet servers, scanned for spam, and then results are returned back.
VaultPress is a backup service. They download data from sites to their servers and store it, for a fee.
Simply flipping a switch with a license key mechanism, of any sort, is not a service. You can't limit uploads to some arbitrary number, and then make the unlimited version f that a service.
To put it another way, this is open-source code. If I can modify your plugin and thus enable unlimited uploads without paying you for it, then you're not providing a valid "service" by selling that functionality.
-Otto
Hi Otto,
Thank you so much for the explanation. I feel like we're starting to
make some progress. I completely get what you're saying. This is the
exact reason why I have a separate plugin that I host and that handles the
activation & the verification of the unlimited upload service. If I was
like Wordfence, I would simply keep the License page inside of the plugin
on Wordpress and sell only the activation code. But that's not what I'm
doing. Do you see why I'm fighting this so hard?
In your guidelines, you mention these things:
"Our intent is to enforce these guidelines with as much fairness as
humanly possible to ensure plugins’ quality and the safety of their
users."
- That's completely fair. After six years of updates & fixes, I feel
like my plugin is extremely high quality. I hire developers through
Codeable. I provide a quality plugin that most users can fully use for
free. I provide equal support to everyone and keep my support forum in
Wordpress as up to date as possible. However, my time has a price and
it's only fair that I can benefit from my 6 years of work.
"Public facing pages, including readmes and translation files, may not be
used to spam. Spammy behavior includes (but is not limited to) unnecessary
affiliate links, tags to competitors plugins, use of over 12 tags total,
blackhat SEO, and keyword stuffing." - See the many examples of other
plugins in my previous replies that stuff their readme's with links to
their Premium plugins. I make it very clear what my user is getting in
the readme and have no intention of misguiding them whatsoever. It's
very clear that unlimited uploads is a premium feature. Microthemer has
been around for at least 3 years and is a "trial" plugin with arbitrary
limits on their features: https://wordpress.org/plugins/microthemer/
Links to directly required products, such as themes or other plugins
required for the plugin’s use, are permitted within moderation.
Similarly, related products may be used in tags but not competitors." -
"Other plugins required for the plugin's use" - That's a really strong
term. In order to use the unlimited uploads feature, you must install
the separate premium plugin that is hosted on my personal site. I
believe my plugin falls within that category.
Regarding hosting & bandwidth, my plugin's trunk is 2.35MB in size. If
this is really about hosting my plugin, I'll be more than happy to remove
the older versions of the plugin that bloat the file size to a whopping
40+ MB. I'll even make a donation to the Wordpress org on an annual
basis that more than covers the cost. I haven't heard anyone complain
about file sizing and bandwidth in a really long time. Storage and
bandwidth are super cheap these days. That's why I host my Premium
plugin on my site & also keep my plugins in github. If there was a way
to simply point your Wordpress Repo SVN to my Github releases, that would
be awesome. That would solve the hosting/bandwidth complaint really
quickly.
Also, there are a lot of instructional designers that use Wordpress
because of my plugin. If the plugin doesn't exist, there's a chance they
wouldn't use Wordpress at all to host their portfolios. My plugin being
in the Wordpress repo is mutually beneficial. I have also been able to
solve a lot of problems for not only my customers, but others as well that
run into various Wordpress issues that are unrelated to my plugin.
Here's a few examples:
Most people don't know how to properly setup SSL on their site. I have
documentation & solutions on how to resolve that.
People in China have a hard time using plugins/themes that rely on the
Google API's. I provide them with links to other plugins that help them
solve this: https://wordpress.org/plugins/google-font-fix/
I often get asked for information on how to prevent direct access to the
uploaded files and I provided them with links to other Wordpress plugins
they can utilize for that.
I often get asked for information on how to sell access to their courses
& I direct them to the WooCommerce plugin.
======================================================================================
I have carried the Wordpress torch for a number of years. I have fixed
issues for customers with other plugins & themes & notified those other
authors when I encounter issues. In fact, I think the reason I got
audited was because Motopress wasn't willing to admit they had a bug in
their theme (even though they have contacted me since & said that they
will resolve the issue).
I still don't think I'm doing anything that even the most popular plugins
are doing. I think Wordfence is more blatantly using the Wordpress Repo
to host their plugin.
Please reconsider. I'm not doing anything malicious. People that
install the plugin know exactly what they're getting. I use a completely
separate plugin hosted on my site that handles all of the activation & the
unlimited uploads service.
The only alternative that I can think of would be to completely remove
the ability to upload content & have that handled by the separate plugin.
So, all of the code to Upload would be in the premium plugin. When you
install the plugin from the Wordpress repo, I would require that they also
install the plugin that handles the upload. That would definitely put me
within this guideline: "other plugins required for the plugin’s use."
That seems like a lot of work for something that "just works" now, but
if it gets my plugin approved, I can do that. However, I don't think I'm
"crippling" my plugin in any way. As mentioned before, it wouldn't be
hard to modify the code to allow unlimited uploads. Honestly, it's
amazing that anyone buys my premium plugin, but it does sell. I've found
that people are just honest in general. They see value in the fact that
I don't limit all of the functionality or features like many, many other
plugins do. The main selling point is the Support that I provide to both
free and premium customers, not the uploads.
Thanks,
Brian
--
Samuel Wood (Otto)
B
Brian Batt replied a day ago (Wed, 29 Mar at 1:45 PM)
Replied to : plugins@wordpress.org
Hi Otto,
So, even though I've given you examples of other plugins that do the same thing that I do, my plugin is not being held to the same set of guidelines. Even Wordfence holds back their non-service related features and all of that code is in their plugin. I think it would be easy to remove any sort of limits on any plugin available in the Wordpress Repo if you know what you're doing. I don't think that's a fair argument to make.
So, to stay within your guidelines, I can remove the upload functionality completely out of the version in Wordpress. That'll be handled by a separate plugin that's hosted on my site. Is that correct?
Thanks,
Brian
P
Plugins replied 21 hours ago (Wed, 29 Mar at 4:04 PM)
to : redacted@redactedemail.com
All plugins are held to the same set of guidelines and rules. As I stated, we will also investigate these violations you have pointed out to us and will take actions appropriately.
Those plugins are not your concern. Your plugin is. And I don't care how you fix the problem, just that it stop violating our guidelines. If you want to remove the upload functionality entirely, then that's acceptable too.
Although, realistically, I don't see why simply removing the artificial limitation is such a massive burden for you to do. It's literally just deleting the unnecessary check from the plugin. Nothing more than that.
-Otto
Hi Otto,
So, even though I've given you examples of other plugins that do the same
thing that I do, my plugin is not being held to the same set of
guidelines. Even Wordfence holds back their non-service related features
and all of that code is in their plugin. I think it would be easy to
remove any sort of limits on any plugin available in the Wordpress Repo if
you know what you're doing. I don't think that's a fair argument to
make.
So, to stay within your guidelines, I can remove the upload functionality
completely out of the version in Wordpress. That'll be handled by a
separate plugin that's hosted on my site. Is that correct?
Thanks,
Brian
B
Brian Batt replied 20 hours ago (Wed, 29 Mar at 4:38 PM)
Replied to : plugins@wordpress.org
Hi Otto,
"It's literally just deleting the unnecessary check from the plugin. Nothing more than that."
Not sure I follow. I still need a way to verify that my users are in the trial mode. That would be like telling the CleanTalk plugin author to remove the code that tracks how long it's been installed. I believe their trial lasts 7 days and then stops functioning after that. As you say: "The *plugin* continues to work just fine. The *service* is what has a trial period."
My plugin does continue to function after there has been 3 uploads. It's the service attached to "quiz_embeder_count" variable that determine whether or not to allow the user to upload more files.
Thanks,
Brian
P
Plugins replied 19 hours ago (Wed, 29 Mar at 6:05 PM)
to : redacted@redactedemail.com
That's where our fundamental disconnect is. The uploader code is entirely in the plugin. It is not part of your "service". Your "service" consists of simply disabling the code that disables the uploader.
We require all plugins in the directory to be fully functional. You have code to do the uploader stuff in the plugin, but you disable it after an arbitrary number of uses. To stop that process is not a "service".
Please correct me if I'm mistaken about how the code works.
-Otto
Hi Otto,
"It's literally just deleting the unnecessary check from the plugin.
Nothing more than that."
Not sure I follow. I still need a way to verify that my users are in the
trial mode. That would be like telling the CleanTalk plugin author to
remove the code that tracks how long it's been installed. I believe their
trial lasts 7 days and then stops functioning after that. As you say:
"The *plugin* continues to work just fine. The *service* is what has a
trial period."
My plugin does continue to function after there has been 3 uploads.
It's the service attached to "quiz_embeder_count" variable that
determine whether or not to allow the user to upload more files.
Thanks,
Brian
P
Plugins replied 18 hours ago (Wed, 29 Mar at 6:39 PM)
to : redacted@redactedemail.com
Also, you mentioned CleanTalk.
The CleanTalk plugin connects to an actual "service". They send possible spam to their API, scan it, and return results. Their API servers do the work here. It's not simply arbitrarily disabling the plugin after 7 days, they give a 7 day trial for their service which actually does something.
But your code appears to be functional already. You're not sending anything to your servers to do this "uploading" feature. It's all in the plugin, you just have extra code to turn it off after a bit. That's the difference between a service and trialware. A "service" is some other website on the internet that does something for you, and merely validating a keycode does not a service make.
That help any?
-Otto
That's where our fundamental disconnect is. The uploader code is entirely
in the plugin. It is not part of your "service". Your "service" consists
of simply disabling the code that disables the uploader.
We require all plugins in the directory to be fully functional. You have
code to do the uploader stuff in the plugin, but you disable it after an
arbitrary number of uses. To stop that process is not a "service".
Please correct me if I'm mistaken about how the code works.
-Otto
Hi Otto,
"It's literally just deleting the unnecessary check from the plugin.
Nothing more than that."
Not sure I follow. I still need a way to verify that my users are in
the
trial mode. That would be like telling the CleanTalk plugin author to
remove the code that tracks how long it's been installed. I believe
their
trial lasts 7 days and then stops functioning after that. As you say:
"The *plugin* continues to work just fine. The *service* is what has a
trial period."
My plugin does continue to function after there has been 3 uploads.
It's the service attached to "quiz_embeder_count" variable that
determine whether or not to allow the user to upload more files.
Thanks,
Brian
B
Brian Batt replied 3 hours ago (Thu, 30 Mar at 10:08 AM)
Replied to : plugins@wordpress.org
Hi Otto,
Yup, that helps. I think we can move the upload code to the other plugin. Unfortunately, due to the way that we check the count, I've got about 6 years of customers that will have a plugin that resets back into trial mode essentially.
Last month, we implemented Pippin's Software Licensing and Updating into the Premium plugin. So, not only do you need the Premium plugin installed to get unlimited uploads, you also need a valid license key. For the 6 years of customers before that, we had no way of checking for a valid license key. Thus, they could install the premium plugin on as many sites as they liked and never have to pay another annual premium. It was basically a perpetual license that could be installed on an unlimited number of sites with no way of actually updating it automatically. If the upload function is moved to the premium plugin, that means once a trial is upgraded, those paying customers will no longer be able to upload content. It'll be a huge mess to manage.
I have a few ideas and I want to run them by you to make sure I would stay within your guidelines as well as a quick question:
Option #1 - Move the upload code to the premium plugin. When the trial plugin is installed, we use TGM plugin activation to install the Premium plugin from my site that contains the upload code. I think this is probably the best way to handle it.
Option #2 - Move every piece of back-end functionality into the premium plugin. When you install the trial, we use TGM plugin activation to install the Premium plugin from my site that contains most of the back-end code. The misc pages like Custom Buttons & Lightbox Settings will still be in the trial plugin. This would allow the trial to still be a functional plugin, but 99% of the code will be in the Premium plugin. That would dramatically reduce my footprint on the Repo.
Option #3 - I could remove the plugin completely from the Repo. If this happens, what happens to existing users? Does the readme page stay active? Do I have some means of helping my current users install a trial that I host on my site & provide updates there? I know there's a ton of value staying in the Wordpress Repo & I'd love to stay. So, this would be my absolutely last option.
Thanks again for your help,
Brian
P
Plugins replied 2 hours ago (Thu, 30 Mar at 10:49 AM)
to : redacted@redactedemail.com
Why not just option: remove the check that disables the uploader code in the first place?
Because removing the plugin is the option we're going to go with if you don't fix this immediately.
Basically, what you're suggesting is to gut the plugin out of some kind of seeming spite or something. We're not interested in your tactics here. Fix the plugin, or we will take it away from you.
-Otto
Hi Otto,
Yup, that helps. I think we can move the upload code to the other
plugin. Unfortunately, due to the way that we check the count, I've got
about 6 years of customers that will have a plugin that resets back into
trial mode essentially.
Last month, we implemented Pippin's Software Licensing and Updating into
the Premium plugin. So, not only do you need the Premium plugin
installed to get unlimited uploads, you also need a valid license key.
For the 6 years of customers before that, we had no way of checking for
a valid license key. Thus, they could install the premium plugin on as
many sites as they liked and never have to pay another annual premium.
It was basically a perpetual license that could be installed on an
unlimited number of sites with no way of actually updating it
automatically. If the upload function is moved to the premium plugin,
that means once a trial is upgraded, those paying customers will no longer
be able to upload content. It'll be a huge mess to manage.
I have a few ideas and I want to run them by you to make sure I would
stay within your guidelines as well as a quick question:
Option #1 - Move the upload code to the premium plugin. When the trial
plugin is installed, we use TGM plugin activation to install the Premium
plugin from my site that contains the upload code. I think this is
probably the best way to handle it.
Option #2 - Move every piece of back-end functionality into the premium
plugin. When you install the trial, we use TGM plugin activation to
install the Premium plugin from my site that contains most of the back-end
code. The misc pages like Custom Buttons & Lightbox Settings will still
be in the trial plugin. This would allow the trial to still be a
functional plugin, but 99% of the code will be in the Premium plugin.
That would dramatically reduce my footprint on the Repo.
Option #3 - I could remove the plugin completely from the Repo. If this
happens, what happens to existing users? Does the readme page stay
active? Do I have some means of helping my current users install a trial
that I host on my site & provide updates there? I know there's a ton of
value staying in the Wordpress Repo & I'd love to stay. So, this would
be my absolutely last option.
Thanks again for your help,
Brian
B
Brian Batt replied an hour ago (Thu, 30 Mar at 11:28 AM)
Replied to : plugins@wordpress.org
Hi Otto,
Removing the check means I have no way of monetizing my plugin. It's as simple as that. I have other features on the roadmap that would qualify my plugin as a service, but those aren't ready. I've been working on them for a year and I still have about 3 months of dev work left. Unfortunately, dev work takes money. I know enough code to hack, but I can't build anything from scratch. All of the features that both the trial & premium users have is because I have users that are willing to pay money to have unlimited uploads and get 1 on 1 support in less than 24 hours. Both my free and premium plugin users benefit from that. I don't hold any of the additional features back that I've added in those 6 years. The upload limit has been there for 6 years and nothing has changed on that. When I first started, the plugin basically uploaded the content & displayed it in an iframe. Users were typically limited to a 25mb upload to due hosting servers back then. A few years ago, I implemented plupload and now I don't ever get support cases where the user has to do with their hosting company. The upload just works. I could easily change the code to use the old upload method that relies on the PHP server & make it a "premium feature" to use plupload, but I'm not an asshole. There's no reason why my free users can't benefit from the work and money that I've put into the premium version.
I'm not trying to gut the plugin out of spite and I'm not using any crazy tactics. You have a problem with hosting the upload code & I'm trying to find the most cost-effective way to keep my free users able to use the plugin, while also keeping the premium users in a manageable state. Regardless of which option I go with (including removing it from the Repo), it's going to cost me around $500 worth of work. Are you going to cover the cost? Your team already admitted that it was their mistake for allowing the plugin in the first place and this isn't the first time I've been audited. I haven't manipulated or changed my code in any way to circumvent the review process. I'm trying my best to understand the guidelines so that you're happy with a solution and I can continue to maintain & support this plugin. I have a family and don't have time to support a free plugin that already gets 15 support cases a week on top of the forums that I maintain in the repo. I can't imagine how many support cases I would get if I didn't limit the uploads.
This is the type of thing that drives plugin developers to other services like Codecanyon. Y'all have a literal monopoly on the market & could easily charge $5 a month for hosting any plugin that falls under your trialware guideline. But y'all do this out of the goodness of your hearts, right?
And you can monetize your plugin as long as you don't have an arbitrary limit on it, right? Cleartalk won't let you use their service unless you have a valid trial of 7 days or a license, but that's okay since ALL of their code is run on their server:
if(!get_option('cleantalk_sends_reports_till'));
add_option('cleantalk_sends_reports_till', time()+7*24*3600);
function cleantalk_send_daily_report(){
$timestamp_trial_ends = get_option('cleantalk_sends_reports_till');
// If 7 days is over
if($timestamp_trial_ends === false){
return;
===================================================
Not much different than mine:
if (count($dirs) quiz_embeder_count())
return apply_filters('quiz_embeder_count', $count);
My premium plugin tracks how many uploads you have done & keeps track of that on my server. Unllimited uploads is my service. You may not agree with me, but I have over a thousand paying customers that think it's a valuable feature.
Let me know what happens when my plugin is removed from the Repo so that I have some means of communicating with my free customers that they'll have to pay for my premium plugin.
Thanks,
Brian
P
Plugins replied an hour ago (Thu, 30 Mar at 11:30 AM)
to : redacted@redactedemail.com
Or rather, let me rephrase this. We've gone back and forth here for a couple days now. 23 emails or so.
As the original email stated, your plugin has been suspended from the directory. It's not listed in the directory and has not been for two days.
So, we're already at option 3 from our perspective. The plugin is not listed. It will not be relisted until you fix the problem. Now, how you fix that problem is no concern of ours, but essentially, your plugin is already "removed" from the directory.
Now, to get your plugin back into the directory again, you need to fix it. My suggestion, which is easy to implement and would take you only a few minutes of time, is to remove the check that we find objectionable, lift that artificial limitation, eliminate the licensing code, and voila. Problem solved. Problem that could have been solved 2 days ago.
All this discussion back and forth is simply distracting you from the truth of the matter, which is that the plugin is already gone from the directory and not coming back until we see and approve your changes to the plugin, and verify that it is not violating our guidelines any longer.
-Otto
Why not just option: remove the check that disables the uploader code in
the first place?
Because removing the plugin is the option we're going to go with if you
don't fix this immediately.
Basically, what you're suggesting is to gut the plugin out of some kind of
seeming spite or something. We're not interested in your tactics here. Fix
the plugin, or we will take it away from you.
-Otto
Hi Otto,
Yup, that helps. I think we can move the upload code to the other
plugin. Unfortunately, due to the way that we check the count, I've
got
about 6 years of customers that will have a plugin that resets back
into
trial mode essentially.
Last month, we implemented Pippin's Software Licensing and Updating
into
the Premium plugin. So, not only do you need the Premium plugin
installed to get unlimited uploads, you also need a valid license key.
For the 6 years of customers before that, we had no way of checking
for
a valid license key. Thus, they could install the premium plugin on
as
many sites as they liked and never have to pay another annual premium.
It was basically a perpetual license that could be installed on an
unlimited number of sites with no way of actually updating it
automatically. If the upload function is moved to the premium plugin,
that means once a trial is upgraded, those paying customers will no
longer
be able to upload content. It'll be a huge mess to manage.
I have a few ideas and I want to run them by you to make sure I would
stay within your guidelines as well as a quick question:
Option #1 - Move the upload code to the premium plugin. When the
trial
plugin is installed, we use TGM plugin activation to install the
Premium
plugin from my site that contains the upload code. I think this is
probably the best way to handle it.
Option #2 - Move every piece of back-end functionality into the
premium
plugin. When you install the trial, we use TGM plugin activation to
install the Premium plugin from my site that contains most of the
back-end
code. The misc pages like Custom Buttons & Lightbox Settings will
still
be in the trial plugin. This would allow the trial to still be a
functional plugin, but 99% of the code will be in the Premium plugin.
That would dramatically reduce my footprint on the Repo.
Option #3 - I could remove the plugin completely from the Repo. If
this
happens, what happens to existing users? Does the readme page stay
active? Do I have some means of helping my current users install a
trial
that I host on my site & provide updates there? I know there's a ton
of
value staying in the Wordpress Repo & I'd love to stay. So, this
would
be my absolutely last option.
Thanks again for your help,
Brian
P
Plugins replied an hour ago (Thu, 30 Mar at 11:42 AM)
to : redacted@redactedemail.com
Your plugin was "removed" from the repository 2 days ago, when you got the initial email. That has not changed in all this time.
"Plugins are closed immediately and the developer contacted when this happens, in part because we have an imperfect system of notifications. This means until your plugin is corrected to meet our guidelines, we will not reopen it."
As for what other plugins do or do not do, that is irrelevant. We will deal with those plugins and their authors directly.
But basically, until you fix the plugin, it is already removed and will only come back once the situation has been corrected.
-Otto
Hi Otto,
Removing the check means I have no way of monetizing my plugin. It's as
simple as that. I have other features on the roadmap that would qualify
my plugin as a service, but those aren't ready. I've been working on
them for a year and I still have about 3 months of dev work left.
Unfortunately, dev work takes money. I know enough code to hack, but I
can't build anything from scratch. All of the features that both the
trial & premium users have is because I have users that are willing to pay
money to have unlimited uploads and get 1 on 1 support in less than 24
hours. Both my free and premium plugin users benefit from that. I
don't hold any of the additional features back that I've added in those 6
years. The upload limit has been there for 6 years and nothing has
changed on that. When I first started, the plugin basically uploaded the
content & displayed it in an iframe. Users were typically limited to a
25mb upload to due hosting servers back then. A few years ago, I
implemented plupload and now I don't ever get support cases where the user
has to do with their hosting company. The upload just works. I could
easily change the code to use the old upload method that relies on the PHP
server & make it a "premium feature" to use plupload, but I'm not an
asshole. There's no reason why my free users can't benefit from the work
and money that I've put into the premium version.
I'm not trying to gut the plugin out of spite and I'm not using any crazy
tactics. You have a problem with hosting the upload code & I'm trying to
find the most cost-effective way to keep my free users able to use the
plugin, while also keeping the premium users in a manageable state.
Regardless of which option I go with (including removing it from the
Repo), it's going to cost me around $500 worth of work. Are you going to
cover the cost? Your team already admitted that it was their mistake for
allowing the plugin in the first place and this isn't the first time I've
been audited. I haven't manipulated or changed my code in any way to
circumvent the review process. I'm trying my best to understand the
guidelines so that you're happy with a solution and I can continue to
maintain & support this plugin. I have a family and don't have time to
support a free plugin that already gets 15 support cases a week on top of
the forums that I maintain in the repo. I can't imagine how many support
cases I would get if I didn't limit the uploads.
This is the type of thing that drives plugin developers to other services
like Codecanyon. Y'all have a literal monopoly on the market & could
easily charge $5 a month for hosting any plugin that falls under your
trialware guideline. But y'all do this out of the goodness of your
hearts, right?
And you can monetize your plugin as long as you don't have an arbitrary
limit on it, right? Cleartalk won't let you use their service unless
you have a valid trial of 7 days or a license, but that's okay since ALL
of their code is run on their server:
if(!get_option('cleantalk_sends_reports_till'));
add_option('cleantalk_sends_reports_till', time()+7*24*3600);
function cleantalk_send_daily_report(){
$timestamp_trial_ends = get_option('cleantalk_sends_reports_till');
// If 7 days is over
if($timestamp_trial_ends === false){
return;
==================================================
Not much different than mine:
if (count($dirs) quiz_embeder_count())
return apply_filters('quiz_embeder_count', $count);
My premium plugin tracks how many uploads you have done & keeps track of
that on my server. Unllimited uploads is my service. You may not agree
with me, but I have over a thousand paying customers that think it's a
valuable feature.
Let me know what happens when my plugin is removed from the Repo so that
I have some means of communicating with my free customers that they'll
have to pay for my premium plugin.
Thanks,
Brian
B
Brian Batt replied an hour ago (Thu, 30 Mar at 11:44 AM)
Replied to : plugins@wordpress.org
Problem solved! I'll be publishing an awesome postmortem on this experience on my site & teaching other Wordpress plugin developers on how to avoid the Repo. I'll be keeping an eye on the other plugins that I mentioned in hopes that they'll be promptly removed from the Repo as well.
Thanks,
Brian
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment