Title: NoticePilot – Remote Campaign Hub for WordPress Plugin &amp; Theme Authors
Author: Spider Themes
Published: <strong>12, Mayu de 2026</strong>
Last modified: 6, Agostu de 2026

---

Guetar plugins

![](https://ps.w.org/noticepilot/assets/banner-772x250.png?rev=3562957)

![](https://ps.w.org/noticepilot/assets/icon-256x256.png?rev=3549159)

# NoticePilot – Remote Campaign Hub for WordPress Plugin & Theme Authors

 By [Spider Themes](https://profiles.wordpress.org/spiderdevs/)

[Download](https://downloads.wordpress.org/plugin/noticepilot.1.5.0.zip)

 * [Details](https://ast.wordpress.org/plugins/noticepilot/#description)
 * [Reviews](https://ast.wordpress.org/plugins/noticepilot/#reviews)
 * [Development](https://ast.wordpress.org/plugins/noticepilot/#developers)

 [Support](https://wordpress.org/support/plugin/noticepilot/)

## Description

**NoticePilot is not another admin notice plugin.** It is a **self-hosted remote
campaign distribution platform** built specifically for WordPress plugin and theme
authors.

If you maintain a WordPress plugin or theme running on hundreds or thousands of 
remote sites, NoticePilot lets you push announcements, update prompts, sales banners,
or deprecation warnings centrally from your own site—without shipping new plugin
releases. It operates via a **hub-to-remote architecture**: manage your campaigns
centrally on your hub site, while a lightweight PHP SDK bundled in your plugin automatically
fetches and renders them.

#### Who Is This For?

NoticePilot is built for **WordPress plugin and theme developers** who need to manage
user communication across multiple remote installations from a single, self-hosted
dashboard. It is **not** a tool for suppressing or customizing notices on a single
site.

#### Key Features

 * **Hub-to-Remote Architecture** — Manage campaigns from a single dashboard and
   distribute them to unlimited remote WordPress sites via a REST API. Zero SaaS
   dependencies.
 * **Single-File PHP SDK** — Bundle a lightweight, self-contained PHP file in your
   plugin or theme. Initialize it with a single line of code.
 * **Privacy-First Analytics** — Track impressions, clicks, and dismissals. Site
   URLs are MD5-hashed; no IP addresses, usernames, or cookies are ever saved.
 * **Audience Targeting** — Target campaigns by plan type (free vs. pro), plugin/
   theme version (supporting `<`, `>`, `=`), and WordPress user roles.
 * **Campaign Scheduling** — Set start/end dates for campaigns. Expired campaigns
   are automatically deactivated via WP-Cron.
 * **Rich HTML & Styles** — Author custom layouts with standard HTML and CSS. Offers
   predefined styles (Info, Success, Warning, Error).
 * **Smart Dismissal & Snooze** — Limit notice clutter with automatic dismissal 
   periods (stored locally on remote sites using a FIFO queue) and optional snooze
   options.
 * **A/B Testing & Conversions (Pro)** — Test campaign variants, set metric-based
   smart triggers, track conversion goals, and collect deactivation feedback.

#### How It Works

 1. **Create a Product** — Add your plugin/theme in the hub to generate a unique API
    endpoint.
 2. **Add Campaigns** — Write the HTML notice content, define targeting and scheduling
    rules, and publish.
 3. **Integrate the SDK** — Download the single-file SDK, bundle it with your extension,
    and initialize it with one line of code.
 4. **Track Performance** — Monitor impressions, clicks, and conversion rates from 
    the dashboard.

### SDK Integration Guide

Integrating the NoticePilot SDK into your plugin or theme is simple. Follow these
steps to get started:

#### 1. Setup the Hub & Product

Install NoticePilot on your central management site. Navigate to **NoticePilot**,
click **+ Add New Product**, enter your plugin/theme name, and toggle **Enable this
site**. This generates your product’s API endpoint.

#### 2. Create a Campaign

On your product card, click **+ Add Content**. Enter your HTML notice content, configure
optional targeting or scheduling rules, toggle **Enable this offer**, and save.

#### 3. Bundle the SDK

Download `class-remote-notice-client.php` from the product card’s **How To Integrate**
tab (or copy it from the plugin’s `sdk/` folder) and place it in your extension (
e.g., in an `includes/` folder).

#### 4. Initialize the SDK

Add the following code to your plugin’s main file or theme’s `functions.php`:

    ```
    require_once __DIR__ . '/includes/class-remote-notice-client.php';

    add_action( 'plugins_loaded', function() {
        Noticepilot_Remote_Notice_Client::init( 'your-product-slug', [
            'api_url'          => 'https://your-hub-site.com/wp-json/noticepilot/v1/content/your-product-slug',
            'schedule'         => 'daily',
            'capability'       => 'manage_options',
            'dismiss_duration' => WEEK_IN_SECONDS,
        ] );
    } );
    ```

_Replace `your-product-slug` and the `api\_url` with the values from your product
card._

#### SDK Configuration Options

The `init()` method supports several optional parameters:
 * `schedule` — Polling
frequency: `hourly`, `twicedaily`, or `daily` (default). * `capability` — Required
user capability to see notices. Default is `manage_options`. * `dismiss_duration`—
Cooldown in seconds before a dismissed notice can reappear. Default is one week.*`
snooze_duration` — Cooldown for “Remind me later” links. Default is one week. * `
max_notices` — Maximum number of notices displayed at once. Default is `3`. * `screen_ids`—
Restrict notices to specific admin screen IDs. Default is `[]` (site-wide). * `require_consent`—
Set to `true` to block tracking until the user explicitly consents (highly recommended
for WordPress.org compliance). * `plugin_version` — Current version string to enable
version targeting on the hub. * `is_pro` — Set to `true` when Pro features/plans
are active to enable plan targeting.

#### Advanced SDK Features

 * **Analytics Consent (WordPress.org Guideline 7 Compliance):**
    If `require_consent`
   is set to `true`, control tracking dynamically using: Noticepilot_Remote_Notice_Client::
   grant_consent( ‘product-slug’ ); Noticepilot_Remote_Notice_Client::revoke_consent(‘
   product-slug’ );
 * **Conversion Goals (Pro):**
    Track high-value user conversions (e.g., upgrading
   to Pro): Noticepilot_Remote_Notice_Client::track_goal( ‘product-slug’, ‘goal_key’);
 * **Smart Triggers (Pro):**
    Report usage metrics (e.g., forms created) to trigger
   milestone campaigns: Noticepilot_Remote_Notice_Client::set_metric( ‘product-slug’,‘
   metric_key’, $count );
 * **Deactivation Feedback (Pro):**
    Collect deactivation surveys without blocking
   deactivation: Noticepilot_Remote_Notice_Client::init( ‘product-slug’, [ ‘api_url’
   => ‘…’, ‘deactivation_feedback’ => true, ‘plugin_file’ => ‘plugin-folder/plugin-
   file.php’, ] );

#### Verification & Testing

 1. **Force a Fetch:** Run `wp cron event run noticepilot_rnc_fetch_content_your-product-
    slug` via WP-CLI on your test site to fetch campaigns immediately.
 2. **Check Database:** Verify campaigns are cached in `wp_options` under the key `
    noticepilot_rnc_your-product-slug_contents`.
 3. **Verify Render:** Navigate to the admin dashboard on your test site to see the
    notice and test its dismissal.
 4. **Verify Analytics:** Check **NoticePilot  Analytics** on your hub site to see 
    impression and click tracking roll up (typically hourly).

## Screenshots

[⌊NoticePilot Dashboard – Centralized hub to manage products, launch campaigns, 
and configure SDK integrations.⌉⌊NoticePilot Dashboard – Centralized hub to manage
products, launch campaigns, and configure SDK integrations.⌉[

**NoticePilot Dashboard** – Centralized hub to manage products, launch campaigns,
and configure SDK integrations.

[⌊Campaign Analytics – Track performance, impressions, clicks, and conversion rates
across all remote installations.⌉⌊Campaign Analytics – Track performance, impressions,
clicks, and conversion rates across all remote installations.⌉[

**Campaign Analytics** – Track performance, impressions, clicks, and conversion 
rates across all remote installations.

[⌊SDK Integration – Simple, step-by-step guide to download and initialize the remote
notice client SDK.⌉⌊SDK Integration – Simple, step-by-step guide to download and
initialize the remote notice client SDK.⌉[

**SDK Integration** – Simple, step-by-step guide to download and initialize the 
remote notice client SDK.

[⌊Add Campaign – Create HTML campaigns with customized start dates, end dates, and
targeting rules.⌉⌊Add Campaign – Create HTML campaigns with customized start dates,
end dates, and targeting rules.⌉[

**Add Campaign** – Create HTML campaigns with customized start dates, end dates,
and targeting rules.

## FAQ

### How is NoticePilot different from other admin notice plugins?

Most admin-notice plugins manage, dismiss, or suppress notices on a single WordPress
installation. NoticePilot serves an entirely different purpose — it is a **remote
campaign distribution platform** for plugin and theme authors. You create and manage
campaigns on a central hub site, and a lightweight SDK embedded in your plugin automatically
fetches and displays those campaigns across hundreds or thousands of remote installations.
It also includes campaign analytics, audience targeting, and scheduling — capabilities
not found in typical notice-management plugins.

### Can I use custom HTML and CSS in my campaigns?

Yes. Campaign content supports full HTML, including inline styles, `<style>` blocks,
and custom layouts. Your content renders exactly as written on every remote site.

### Is it safe to store and serve raw HTML campaign content?

Yes, within its intended use case. Campaign content can only be created by administrators
who have the `manage_options` capability, and all form submissions are protected
by WordPress nonce verification. HTML is stored without additional sanitization 
intentionally, to preserve inline CSS and custom styling. NoticePilot is a developer
tool designed for trusted authors — not for end-user-generated content.

### Does the plugin collect personal data from remote sites?

No. Analytics events are recorded using fire-and-forget `navigator.sendBeacon()`
calls. Before any data is written to the database, remote site URLs are MD5-hashed
server-side. No IP addresses, usernames, cookies, user agents, or other personally
identifiable information is ever collected or stored.

### Can I target campaigns to specific users or plan types?

Yes. Each campaign supports three independent targeting dimensions:

 * **Plan type** — Show to all users, free-plan users only, or pro-plan users only.
 * **Plugin version** — Target by version number using comparison operators (`<`,`
   >`, `=`, `<=`, `>=`).
 * **WordPress user role** — Restrict visibility to specific roles such as Administrator,
   Editor, and others.

Leave all targeting fields blank to display the campaign to every eligible user.

### What happens when a user dismisses a notice?

The notice is hidden for the duration configured via the `dismiss_duration` SDK 
option. Dismissals are recorded locally on the remote site in `wp_options` using
a FIFO cleanup strategy that retains only the 20 most recent dismissed campaign 
IDs. During each fetch cycle, the SDK also automatically prunes stale IDs for campaigns
that no longer exist on the hub.

### Does installing NoticePilot add notices to my own site’s dashboard?

No. NoticePilot does not inject any admin notices into the WordPress dashboard of
the site where it is installed. It provides only a management interface under its
own admin menu page. Campaign notices are displayed exclusively on **remote sites**—
and only when a plugin or theme author explicitly integrates the SDK.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“NoticePilot – Remote Campaign Hub for WordPress Plugin & Theme Authors” is open
source software. The following people have contributed to this plugin.

Contributors

 *   [ Spider Themes ](https://profiles.wordpress.org/spiderdevs/)
 *   [ Muaz BK ](https://profiles.wordpress.org/muaz404/)

[Translate “NoticePilot – Remote Campaign Hub for WordPress Plugin & Theme Authors” into your language.](https://translate.wordpress.org/projects/wp-plugins/noticepilot)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/noticepilot/), check
out the [SVN repository](https://plugins.svn.wordpress.org/noticepilot/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/noticepilot/) by
[RSS](https://plugins.trac.wordpress.org/log/noticepilot/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.5.0

 * **Rebuilt:** The entire admin UI is now a **React + JSX** app (built with @wordpress/
   scripts) — hero, stats, product cards, and all dialogs are component-based, with
   modals and form fields as reusable components. Same look (reuses the existing
   styles); smoother, no full-page reloads.
 * **New:** Authenticated REST CRUD (`/noticepilot/v1/admin/…`) replaces the old
   form-POST handlers for every product/campaign action (create, edit, delete, duplicate,
   import).
 * **New:** Add-on extension point — the campaign modal exposes the `noticepilot.
   campaignFieldGroups` JS filter (@wordpress/hooks), so NoticePilot Pro injects
   its A/B, snooze, and trigger fields as React components. Server-side, add-ons
   still receive their data via the `noticepilot_campaign_data` filter.
 * **Removed:** The legacy jQuery admin script and PHP-rendered modals.
 * All existing features preserved: templates, live preview, targeting, scheduling,
   notice styles, placement, import/export, “See More”, and the SDK integration 
   guide + download.

#### 1.4.1

 * **Developer:** Added range-aware analytics query methods to the data layer — `
   Analytics::get_range_totals()`, `get_product_daily()`, and optional date bounds
   on `get_product_summary()` — powering the enhanced Pro analytics dashboard (date
   ranges, trend deltas, activity chart). Backward compatible; no schema change.

#### 1.4.0

 * **Change:** The Analytics screen has moved entirely to **NoticePilot Pro**, rebuilt
   as a modern React dashboard (charts, per-campaign detail, A/B variant comparison,
   conversions, CSV export). The free hub keeps the analytics data layer (event 
   recording + hourly rollup) and the product/campaign stat ribbon.
 * **New:** Opt-in geo (data layer) — a `country_code` column and a cached, filterable
   resolver (`noticepilot_geoip_lookup`, defaulting to ip-api.com, with CDN-header
   fast-path). Collected only when the hub owner enables it in Pro’s analytics settings
   and Pro is active (`noticepilot_geo_collection` filter). No per-visitor data.
 * **Improvement:** Analytics schema upgraded to 1.2.0 (adds `country_code`); migrates
   automatically on update.
 * **Removed:** The legacy jQuery analytics page, its script, and its CSS.

#### 1.3.0

 * **Change:** A/B testing, conversion goals, smart triggers, and per-campaign snooze
   are now **NoticePilot Pro** features. The free hub keeps campaign push, scheduling,
   targeting, templates, live preview, placement, and analytics.
 * **New (SDK 1.5.0):** `set_metric()` for usage-milestone smart triggers, plus 
   first-seen tracking for install-age triggers. The SDK runtime ships free; the
   rules that drive it are authored in Pro.
 * **Developer:** New `noticepilot_accept_goal_events` filter — the free hub ignores
   conversion (goal) events unless an add-on opts in, keeping conversion analytics
   gated. Snooze and trigger data are exposed to the SDK via the existing `noticepilot_api_content_item`
   filter.
 * The SDK continues to support `snooze_duration` and `max_notices` config options;
   a campaign only shows a “Remind me later” link when a Pro-authored snooze flag
   is delivered.

#### 1.2.1

 * **New (SDK 1.4.0):** `Noticepilot_Remote_Notice_Client::track_goal( 'slug', '
   goal_key' )` reports a conversion, attributed to the campaign/variant a site 
   last saw. The hub records goal events (and accepts them after a campaign ends).
   Per-variant CVR and conversion summaries surface in NoticePilot Pro.

#### 1.2.0

 * **New:** Freemius integration and a Free + Pro model. The free hub stays fully
   functional; the optional **NoticePilot Pro** add-on unlocks A/B testing, per-
   variant analytics, and deactivation feedback.
 * **New:** A/B testing groundwork — campaigns can carry weighted variants (authored
   in Pro); the SDK splits traffic deterministically and tracks events per variant.
 * **New (SDK 1.3.0):** Opt-in deactivation-feedback modal (`deactivation_feedback`
   + `plugin_file` options) — asks users why they deactivated your plugin (skippable,
   anonymous) and reports it to your hub.
 * **New:** Developer extension points are stable — `noticepilot_campaign_data`,`
   noticepilot_api_content_item`, `noticepilot_test_site_hashes` filters and the`
   noticepilot_campaign_modal_fields` action — so add-ons plug in without core changes.
 * **Improvement:** An A/B testing upsell appears in the campaign editor when Pro
   is not active.

#### 1.1.0

 * **New:** Campaign templates — one-click starting points for review requests, 
   BFCM sales, update prompts, deprecation warnings, and feature announcements.
 * **New:** Live notice preview — see exactly how a campaign renders as a WordPress
   admin notice before publishing.
 * **New:** Notice styles — choose Info, Success, Warning, or Error styling per 
   campaign.
 * **New:** Placement control — restrict a campaign to the integrating plugin’s 
   own admin screens (via the SDK `screen_ids` option) instead of site-wide, following
   WordPress.org guideline 11.
 * **New:** “Remind me later” snooze — an optional gentler alternative to permanent
   dismissal.
 * **New:** Import/export campaigns as JSON, and duplicate any campaign in one click.
 * **New:** Test sites — exclude your own development/staging URLs from analytics
   so test traffic never skews campaign numbers.
 * **New (SDK 1.2.0):** Analytics consent mode (`require_consent`) with `grant_consent()`/`
   revoke_consent()` helpers — keeps beacons off until the user opts in, for WordPress.
   org guideline 7 compliance.
 * **New (SDK 1.2.0):** Frequency cap (`max_notices`) and configurable `snooze_duration`.
 * **Fix (SDK 1.2.0):** `dismiss_duration` is now honored — dismissed notices reappear
   after the configured window (previously dismissals were effectively permanent).
 * **Improvement:** Analytics schema now records per-variant events and conversion
   goals, laying the groundwork for A/B testing (NoticePilot Pro). Existing data
   is migrated automatically on update.
 * **Developer:** New extension filters — `noticepilot_campaign_data`, `noticepilot_api_content_item`,`
   noticepilot_test_site_hashes` — and the `noticepilot_campaign_modal_fields` action
   for add-ons.

#### 1.0.1

 * **Security:** Sanitized nonce input in the admin form handler.
 * **Security:** Replaced inline `<style>` output in the SDK with the proper `wp_add_inline_style()`
   API.
 * **Security:** Replaced inline `<script>` output in the SDK with the proper `wp_add_inline_script()`
   API.
 * **Improvement:** Added an explicit `__return_true` permission callback to the
   public analytics REST API route to comply with WP REST API guidelines.
 * **Improvement:** Added plugin owner to the contributors list.
 * **Improvement:** Updated readme tags and short description to better reflect 
   the plugin’s developer-focused, remote-distribution use case.

#### 1.0.0

 * Initial public release.
 * Multi-product management with support for unlimited campaigns per product.
 * Rich HTML campaign editor with full CSS and custom layout support.
 * Campaign scheduling with automatic expiration handling via WP-Cron.
 * Built-in analytics tracking for impressions, clicks, and dismissals.
 * Analytics dashboard with both product-level and campaign-level breakdowns.
 * Lightweight single-file PHP SDK for remote site integration, with auto-fetch,
   transient caching, and dismissal handling.
 * Privacy-first analytics — remote site URLs are MD5-hashed before storage; no 
   personal data is collected.

## Meta

 *  Version **1.5.0**
 *  Last updated **4 hores ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.0.2**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/noticepilot/)
 * Tags
 * [a b testing](https://ast.wordpress.org/plugins/tags/a-b-testing/)[Admin notices](https://ast.wordpress.org/plugins/tags/admin-notices/)
   [announcements](https://ast.wordpress.org/plugins/tags/announcements/)[Notifications](https://ast.wordpress.org/plugins/tags/notifications/)
   [plugin analytics](https://ast.wordpress.org/plugins/tags/plugin-analytics/)
 *  [Advanced View](https://ast.wordpress.org/plugins/noticepilot/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/noticepilot/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/noticepilot/reviews/)

## Contributors

 *   [ Spider Themes ](https://profiles.wordpress.org/spiderdevs/)
 *   [ Muaz BK ](https://profiles.wordpress.org/muaz404/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/noticepilot/)