Skip to content
Plugin PantryPlugins

Plugins / Pantry Subscribe

Collect subscribers properly and keep them yourself. A sign-up block or shortcode, a confirmation email with a signed link, a list of confirmed subscribers in the dashboard, and a CSV export. It builds the list and stops there; sending is a different job.

The Pantry Subscribe settings screen in the WordPress admin, at Plugin Pantry > Subscribe (and Subscribers).

What it does

  • Sign-up form as a block and a shortcode: email, optional name, optional consent checkbox with your wording
  • Double opt-in: a confirmation email with a signed link that expires, and the subscriber only counts once confirmed
  • Subscribers kept as a private post type with status pending, confirmed or unsubscribed, listed under the Plugin Pantry menu with search and a status filter
  • Signed unsubscribe link handling, so any email you send later can carry one
  • Honeypot, timing check and per-address rate limit, the same approach as Pantry Contact
  • CSV export of confirmed subscribers, and deletion from the list
  • Optional notification to you when someone confirms

What it does not do

  • No newsletter sending, campaigns or templates
  • No integrations with email services
  • No segments, tags or automation
  • No tracking pixels or open rates
  • No CAPTCHA

Measured footprint

Zip size
37 KB
Lines of PHP
2,750
Options
pantry_subscribe_settings, pantry_subscribe_version
Post meta
_pantry_subscribe_status, _pantry_subscribe_name, _pantry_subscribe_source, _pantry_subscribe_ip, _pantry_subscribe_consent (only when the consent box is in use), _pantry_subscribe_confirmed (only once the address is confirmed)
Custom tables
none
Post types
pantry_subscriber
Cron events
none
Transients
pantry_subscribe_rl_<hashed address>, one hour, pantry_subscribe_resend_<subscriber id>, one hour
Admin assets
includes/core/assets/pantry-admin.css on the settings screen only, includes/core/assets/pantry-admin.js on the settings screen only, src/block/editor.js in the block editor only, assets/form.css in the block editor only, so the block preview matches the front end
Front-end assets
assets/form.css on pages that render the form, when the stylesheet setting is on
External requests
none
Measured on
2026-09-12

Compatibility

WordPress
6.4 or newer, tested to 7.1
PHP
8.1 or newer
Where it lives
Plugin Pantry > Subscribe (and Subscribers)
Licence
GPLv2 or later

Every setting on the Pantry Subscribe screen and what each one does, with the hooks it publishes: the same text that ships in the plugin README.

Pro add-on (planned)

See Pantry Pro pricing
  • Hand-off of confirmed subscribers to Mailchimp, Kit, MailerLite or Resend audiences
  • Plain-text campaigns sent in batches through Pantry Mail with an unsubscribe link

None of this is in the free plugin, and none of it is switched off inside it. Pro would be a separate plugin.

Changelog

All notable changes to Pantry Subscribe are recorded here. The format follows Keep a Changelog, and the project uses Semantic Versioning.

1.0.0 - 2026-09-12

Added
  • Sign-up form as the shortcode [pantry_subscribe_form] and a server-rendered Sign-up form block, with an address field, an optional name field and an optional consent box with your own wording.
  • Double opt-in: a plain-text confirmation email carrying a signed link that expires after seven days, and a subscriber who only counts once confirmed.
  • Signed unsubscribe links that never expire, published on each subscriber's screen and in the CSV export, so any email you send later can carry one.
  • Subscribers kept as a private pantry_subscriber post type with the status pending, confirmed or unsubscribed, listed under the Plugin Pantry menu with search and a status filter.
  • CSV export of confirmed subscribers, nonced and capability checked, with the unsubscribe link on every row.
  • Optional email to you when somebody confirms.
  • Honeypot field, signed minimum-time check, nonce and a per address rate limit, the same approach as Pantry Contact. A pending address is sent at most one confirmation an hour.
  • The same answer whether an address is new, pending or already confirmed, so the form never says who is on the list.
  • Works without JavaScript: the form posts and redirects with the message. No front-end script at all, and about thirty lines of CSS that inherit the theme, loaded only on pages that show the form.