

<strong>NoticePilot Dashboard</strong> – Centralized hub to manage products, launch campaigns, and configure SDK integrations.
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.
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.
<, >, =), and WordPress user roles.Integrating the NoticePilot SDK into your plugin or theme is simple. Follow these steps to get started:
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.
On your product card, click + Add Content. Enter your HTML notice content, configure optional targeting or scheduling rules, toggle Enable this offer, and save.
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).
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.
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.
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’,
] );
wp cron event run noticepilot_rnc_fetch_content_your-product-slug via WP-CLI on your test site to fetch campaigns immediately.wp_options under the key noticepilot_rnc_your-product-slug_contents.