Skip to content
Plugin PantryPlugins

Documentation / Pantry Pro

Pantry Pro

One paid add-on, one licence, every module. How it is bought, activated and updated, and what it does when the licence lapses.

Pantry Pro is built and its first release is ready. It is not on sale yet: the store that issues the keys opens shortly. This guide describes how it works, so that nothing about it is a surprise later. The pricing page carries the prices and a form that tells you the day it goes on sale.

Buying it

Pro is sold on the pricing page in three tiers, which differ only in how many sites one key activates on: Single at $49 a year for one site, Studio at $99 for five, Agency at $199 for twenty-five. Every tier gets every module for every plugin. Prices are in US dollars, and Lemon Squeezy is the merchant of record, so it adds and remits VAT or GST where that applies. Everyone on the notify form gets the founding price when the store opens, which is 30 percent off the first year.

The key

Lemon Squeezy issues the key and emails it when the order completes. There is no licence server of ours between you and it, and no account to make on this site. If the email is lost, the key is in your Lemon Squeezy order, and the Pro screen links straight to it.

Activating it on a site

Install pantry-pro.zip the way you installed the free plugins, through Plugins, then Add New Plugin, then Upload Plugin. Its screen is Plugin Pantry > Pro, directly under the overview. Paste the key into the one field there and press Activate.

Activation calls the licence API once, with this site’s host name as the name of the activation, and stores the activation id it gets back. From then on the screen shows the status, the key with only its last four characters visible, the renewal date, when it was last checked, and two buttons: Check now, which re-validates immediately, and Release this site.

Setting the key in wp-config.php

A site that is deployed rather than clicked through can carry its key in configuration instead:

define( 'PANTRY_PRO_LICENCE_KEY', 'your-key-here' );

With that constant set, the key activates itself on the next admin page load by a user who can manage options, and the Pro screen marks it as set in wp-config.php. An attempt that fails is retried once a day rather than on every request, and the reason is printed on the screen. The constant is the key, not a bypass: the activation is still made and still counted against your tier.

How modules switch on

Pro is one plugin holding one module per feature, and each module belongs to a free plugin. A module registers only when its free plugin is active, which it checks by looking for that plugin’s version constant: Pro loads one step after the free plugins do, so the answer is always current. A module never runs without its free plugin, and never duplicates what the free plugin already does. It reaches in only through hooks the free plugin publishes and documents.

The Modules table on the Pro screen lists every module with the plugin it adds to and its state: running, waiting for a licence, or waiting for the free plugin to be activated. A module’s own settings appear on the free plugin’s screen, beside the settings it extends, rather than on a screen of their own. Nothing inside a free plugin is unlocked by any of this. The free plugins are complete without Pro, and Pro only ever adds scope.

Updates

Pro is not on WordPress.org, so this site serves its updates. The plugin asks thepluginpantry.com/api/pro/version for the current version and changelog and caches the answer for twelve hours, and the licence itself is re-checked once a day by a scheduled event. When there is a newer version, it appears on the Plugins screen like any other update.

The licence gates the download and nothing else. While the key is valid, the update installs from the private download route, which checks the key and the activation server-side before it streams the zip; the Pro zip is never on a public address. While the key is not valid, the new version is still listed but carries no package, so there is nothing to install until the licence is renewed.

When a licence lapses

A key that has expired or been cancelled leaves every module running. This is a rule in the standard, and the code honours it: the licence state gates the update check, never a module.

  • Active. Modules run, updates arrive.
  • Expired, or cancelled. Modules keep running exactly as they did. Updates stop and support stops until the licence is renewed. Nothing switches off and nothing is deleted.
  • The licence server could not be reached. The last known state stands for fourteen days, so a network fault or an outage does not interrupt anything. After that the site is no longer treated as valid for updates, and the modules still run.
  • No key on the site at all. No module runs. This is the only state in which Pro does nothing, and it is the state a site is in before a key is activated or after it is released.

Releasing a site

Release this site, on the Pro screen, hands the activation back so the key can be used somewhere else. It tells Lemon Squeezy to release it, then forgets the key on this site whether or not the server answered, and cancels the daily check. The modules stop running, because no key is present any more, and everything they stored stays where it is: activate a key again and the same data is there. Deleting the Pro plugin goes further and removes what Pro created, as the standard requires of every plugin here.

Every request Pro makes

Five addresses, on two hosts, and no others. Pro counts nothing, reports nothing and sends nothing anywhere else.

  • api.lemonsqueezy.com/v1/licenses/activate Once, when you activate the key on a site. It sends the key and the site’s host name.
  • api.lemonsqueezy.com/v1/licenses/validate Once a day from a scheduled event, and when you press Check now. It sends the key and this site’s activation id.
  • api.lemonsqueezy.com/v1/licenses/deactivate Once, when you release the site.
  • thepluginpantry.com/api/pro/version The update check: the current version number and changelog, cached for twelve hours. It sends nothing about your site.
  • thepluginpantry.com/api/pro/download Only while an update is being installed. It carries the key and the activation id so the zip can be checked against the licence before it is sent.

Pro declares three exceptions to the standard and this is the first of them: the licence and update requests above. The second is that it may hold more than one settings screen, because it spans every plugin, at most one per module. The third is that its line budget is counted per module rather than per plugin.

Refunds

Ask within fourteen days of buying and the money goes back, no questions. Write to team@thepluginpantry.com or use the contact form. There is no lifetime licence and no monthly plan: the licence is annual, charged once on the date you bought it, and renewing buys updates and support rather than the right to keep using what you have.