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.
This guide describes how Pantry Pro works, from buying a key to what happens when one lapses. The pricing page carries the three tiers and the buy buttons.
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 Stripe is the merchant of record, so it adds and remits sales tax, VAT or GST where that applies. The key is on screen the moment the payment goes through, and in your inbox with the Pro plugin download a moment later.
The key
A key looks like PANTRY-XXXX-XXXX-XXXX-XXXX-XXXX. This site issues it the moment Stripe confirms the payment, shows it on the page you land on, and emails it with the download link. There is no account to make here and no password to keep: the key is the only credential, and it is what the Pro screen asks for.
Lost the email? Have your keys sent again. Put in the address you bought with and every key on it is emailed back, with its tier, how many sites it is on and when it renews.
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.
What is in Pro today
Modules ship plugin by plugin. These are in Pantry Pro now, each documented on its free plugin’s own page:
- Pantry Redirects: Automatic redirects, Pattern rules.
- Pantry Mail: Mail: Failure alerts, Mail: Fallback account, Mail: Full log.
- Pantry Cleanup: Script and style manager.
- Pantry Login: Pantry Pro: Login, IP allow and deny lists, Pantry Pro: Login, two-factor authentication.
- Pantry Contact: Contact: Multiple forms, Contact: File uploads.
Planned, and covered by any licence the day they ship: Pantry SEO, Pantry Maintenance, Pantry Code, Pantry Handover, Pantry Analytics, Pantry Consent, Pantry Subscribe, Pantry Images, Pantry Headers. Each plugin page lists what its module will add.
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 the licence service 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, all on this site, and no others. Pro counts nothing, reports nothing and sends nothing anywhere else.
- thepluginpantry.com/api/licences/activate Once, when you activate the key on a site. It sends the key and the site’s host name.
- thepluginpantry.com/api/licences/validate Once a day from a scheduled event, and when you press Check now. It sends the key and this site’s activation id.
- thepluginpantry.com/api/licences/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.
Renewals and cancellation
The licence renews once a year on the date you bought it. Everything to do with the money lives on Stripe’s own pages, reached from the link in the purchase email or from the find my key page with your key and the address you bought with, together: change the card, see the invoices, or cancel. The key alone opens the plugin; it takes both to touch the billing. Cancelling leaves the licence running to the end of the year you have paid for, and after that the modules keep running while updates and support stop.
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.