Simple Popup Block Editor
Campaign popups authored in the block editor, with server-side display conditions and campaign-scoped, cache-safe dismissal. Lean and leak-free — zero outbound HTTP, no admin notices, no telemetry.
by Headwall Hosting / Paul Faulkner · github.com/headwalluk/simple-popup-block-editor · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/headwalluk/simple-popup-block-editor/archive/refs/heads/main.zipReadme
Simple Popup Block Editor
A lean WordPress plugin for campaign popups authored in the block editor, shown on the front end when server-side display conditions match, and dismissed per visitor until you start a new campaign.
Built by Headwall Hosting. It is deliberately generic — no client-specific hardcoding — so it can be reused across the estate or published.
What it does
- Popups are a custom post type (
hw_popup), edited with the normal Gutenberg block editor. The post content is the popup body. - Multiple popups can be active at once, each with its own conditions. Per request the plugin renders at most one — the eligible popup with the highest post ID.
- Display conditions combine WHO (logged-in / out / by role) with WHERE (include/exclude rule sets: post type, specific content, taxonomy term, WooCommerce cart/checkout/account), with exclude always winning.
- Dismissal lives in
localStorage, keyed by popup + campaign term, so it is cache-safe; pointing a popup at a different campaign (a taxonomy term) makes every visitor see it again.
Who it's for
Site owners who want one thing done well — an easy-to-edit campaign popup, reliably excluded from checkout — without the bloat, telemetry, and upsell of a full popup/marketing suite. Its defining constraints: zero outbound HTTP, no admin notices or nags, and a front-end payload of a few KB loaded only where a popup will actually show.
Documentation
The docs/ directory is the entry point for developers and administrators:
- docs/admin-guide.md — creating a popup, setting conditions, activating, and switching campaigns
- docs/display-conditions.md — the WHO ∧ WHERE condition model, rule vocabulary, and worked examples
- docs/architecture.md — plugin structure, components, hook-wiring convention, and the editor build step
- docs/reference.md — the custom post type, post meta keys, options, enums, and defaults
- docs/hooks.md — WordPress hooks consumed, the public function API, and extension points
This plugin registers no shortcodes.
Project history and active milestones live in dev-notes/00-project-tracker.md; per-version release notes in CHANGELOG.md.
Status
Pre-release (0.3.1). The back end (custom post type, meta, campaign taxonomy,
editor sidebar panel, condition engine, active-popup selection) and the front end
(rendering, triggers, dismissal, accessibility) are complete and verified
headlessly. Being trialled on a live client site; uninstall handling and the
final acceptance pass are next. See the project tracker.
License
Licensed under GPLv2 or later. Maintained by Headwall Hosting.