Documentation

Everything you need to go from install to your first notification. If something doesn't work, the troubleshooting page covers every problem we've hit.

Requirements

  • WordPress 5.8 or newer
  • PHP 7.4 or newer, with the OpenSSL extension (nearly every host has it on)
  • A site that runs on HTTPS. Browsers don't allow push notifications on plain HTTP, on any site.

You don't need Composer, an outside service, or an API key. The plugin creates its own encryption keys when you activate it.

Install and activate

Get the free plugin from the download page. If you bought Premium, use the download link in your Freemius purchase email.

  1. In WordPress, go to Plugins, Add New Plugin, Upload Plugin.
  2. Choose the zip file you downloaded, click Install Now, then Activate.
  3. If you bought Premium, enter your license key when the activation screen asks for it.
  4. Open Push Notifications in the left-hand admin menu.

Free and Premium are separate downloads. When you activate Premium, the Free version is switched off automatically, so you never run both.

Ask visitors to subscribe

Under Subscription prompt, pick a Prompt style:

StyleWhat visitors see
AutomaticA popup shows itself to first-time visitors. No button needed.
ButtonNothing appears until a visitor clicks a [wppn_subscribe_button] shortcode that you place on a page.
Floating bellA small bell sits in the corner of every page. Clicking it opens the popup.
Automatic popup + Floating bellThe popup shows once, and the bell stays so anyone who dismissed it can opt in later.

You can also set the bell size and position, the popup size and position (eight positions each), the delay before the popup appears (5 seconds by default), and whether to ask again visitors who chose Later, how long to wait, and how many times.

Every piece of text is editable: the popup headline and description, the Allow and Later buttons, the thank-you card, and the three status messages (while connecting, if permission wasn't granted, and on an unexpected error).

The bell changes color with the visitor's state: blue when not subscribed, green with a check when subscribed, and grey when notifications are blocked in their browser. When the bell opens the popup, the popup appears on the opposite side so it never covers the bell.

Test your setup

  1. Open your site in a normal browser window (not Incognito) on the exact address visitors use, with https://.
  2. Wait for the popup, or click the bell, and choose Allow.
  3. You should see the thank-you card, and the bell turns green. The subscriber count in the admin goes up by one.
  4. Send yourself a test notification (next section).

If the popup doesn't appear, or nothing arrives, go to Troubleshooting. Caching plugins are the usual cause.

Send a notification

On the Push Notifications page, fill in Title, Message, and Link URL (where a click should take the visitor), then send.

The same page shows subscriber growth, a history of your sends, and your subscriber list. Small lists send at once. Larger lists are sent in the background in batches, so your site stays fast.

On the Free plan, each notification reaches up to 200 subscribers. Premium removes that limit.

Notify on new posts

Tick Automatically notify subscribers when a new post is published under Subscription prompt. Each new post is then sent using its title and excerpt. Password-protected posts are skipped so nothing private goes out. Custom post types are off by default; a developer can turn them on with the filter below.

WooCommerce

When WooCommerce is active, a WooCommerce section appears. All four triggers are off until you switch them on, and each has an editable title and message.

TriggerWho receives itDetails
New order placedAll subscribersSent once when payment is confirmed (Processing or Completed). Never includes the buyer's name or any personal detail.
Back in stockAll subscribersSent when a product goes from out of stock to in stock.
Price dropAll subscribersSent when a price falls by at least your minimum (5% by default), so tiny price syncs stay quiet.
Abandoned cartOnly the shopper who left the cartSent after a wait you choose (60 minutes by default). Works for logged-out shoppers. Cart contents are read on your server from WooCommerce.

Templates accept these placeholders: {product}, {total}, {old_price}, {new_price}, and {items}.

Sending speed

Under Advanced, Server Performance & Delivery Speed, leave Auto-detect (recommended) on. The plugin reads your server's memory and time limits every time it sends and picks a speed to match. If your server comes under strain mid-send, each batch shrinks and slows down on its own.

LevelPer batchPauseAt once, per push service
Shared505 s10
Business / managed2003 s25
Cloud4002 s40
VPS6001 s60
Dedicated1,0001 s100

Auto-detect chooses from Shared up to VPS. Dedicated is never picked automatically, because a large VPS looks identical to a dedicated server from inside PHP. Choose it yourself only if you know it's true.

Import and export subscribers

In the Subscribers section you can export your list as a CSV, or import one to move subscriptions from another push provider or another site. The columns are endpoint, p256dh, and auth, with user_agent and created_at optional.

Very large files are imported in passes. If your server's time limit stops one early, the plugin tells you. Upload the same file again and it carries on, without creating duplicates.

Custom and headless sites

To let a separate, non-WordPress site subscribe visitors to your WordPress site's push feed, open Custom site integration. It shows your REST address and your public VAPID key. Then add that site under Advanced, Allowed external domains, entered exactly as the browser sends it: https://example.com, with no trailing slash.

POST /wp-json/wppn/v1/subscribe
POST /wp-json/wppn/v1/unsubscribe

Uninstall

By default, deleting the plugin keeps your data, so an accidental deactivate never loses subscribers. To remove everything (subscribers, send history, encryption keys, and settings), tick the delete-on-uninstall option under Advanced before you delete the plugin. Under Advanced you'll also find buttons to delete send history older than 90 days, and to delete all subscribers. Both act immediately and can't be undone.

For developers

Send a notification from your own code

do_action( 'wppn_send_notification', 'Title', 'Message', 'https://example.com/page' );

Filters

FilterWhat it changes
wppn_modal_title, wppn_modal_body, wppn_modal_allow_label, wppn_modal_later_labelThe popup text
wppn_autosend_post_typesPost types that send automatically on publish. Default is array( 'post' ).
wppn_max_subscribers_per_sendThe safety ceiling on how many subscribers one send can reach (1,000,000 by default)
wppn_detected_hosting_presetOverride the auto-detected hosting level. Lets a host add-on select dedicated.
wppn_rate_limit_window_seconds, wppn_rate_limit_max_requestsThe subscribe route's per-visitor rate limit (20 requests per 600 seconds by default)
wppn_trust_x_forwarded_forTrust the forwarded IP header when rate limiting behind a proxy. Off by default.
wppn_allowed_endpoint_host_suffixesExtra push-service host names to allow, on top of Google, Mozilla, Microsoft, and Apple