=== EasyPusher - Web Push Notifications ===
Contributors: easypusher, 14notout
Tags: push notifications, web push, browser notifications, notifications, marketing
Requires at least: 6.2
Tested up to: 7.0
Stable tag: 1.0.1
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Web push notifications for WordPress. Send browser push to Chrome, Firefox, Edge, Opera & Safari subscribers via the EasyPusher cloud.

== Description ==

Add **web push notifications** to your WordPress site with EasyPusher. Send **browser push notifications** to Chrome, Firefox, Edge, Opera, and Safari subscribers — re-engage visitors after they leave, announce new content, drive traffic back to your site, and grow your audience.

EasyPusher takes care of the parts of web push that usually slow you down: VAPID key generation, service-worker installation, cross-browser payload quirks, and subscriber storage. Install the plugin, paste your API Key, and you're live — the full push pipeline is managed for you in the EasyPusher cloud.

= What you can do =

* **Send web push notifications** to all subscribers or to targeted segments
* **Capture browser subscribers** with a customisable opt-in prompt — no coding required
* **Schedule push notifications** in advance, or send them instantly
* **Track delivery and engagement** — sent, delivered, clicked, dismissed, CTR
* **UTM tracking** on every link so push traffic shows up in your analytics
* **Cross-browser support** — Chrome, Firefox, Edge, Opera, and Safari, on both desktop and mobile
* **Multi-site ready** — manage push campaigns across several WordPress sites from one EasyPusher dashboard
* **Fast CDN delivery** — the JS SDK and service worker load from Cloudflare for minimal performance impact
* **Easy uninstall** — the plugin cleans up its WordPress options and removes the service-worker proxy file on uninstall

= Common use cases =

* **Content publishers and bloggers** — notify subscribers when new articles, podcasts, or videos are published
* **News sites** — push breaking-news alerts to your audience in real time
* **Online stores** — announce flash sales, new product launches, and restocks via browser push
* **Membership and education sites** — let learners know about new lessons, courses, or community activity
* **Marketing teams** — schedule re-engagement campaigns to bring lapsed visitors back to your site

= How it works =

1. Sign up for a free [EasyPusher](https://easypusher.com) account.
2. Add your WordPress site in the EasyPusher dashboard and copy the generated **API Key**.
3. Install this plugin, go to **EasyPusher → Settings**, and paste the API Key.
4. Configure your opt-in prompt in the EasyPusher dashboard (style, copy, trigger).
5. Visitors see the prompt, click Allow, and start receiving the push notifications you compose from your EasyPusher dashboard.

The plugin does three things on your WordPress site: it injects the EasyPusher JS loader snippet into `<head>` on public pages, writes a 2-line `ep-sw.js` service-worker proxy file to your site root on activation, and adds a Stats page to the WP admin that pulls live numbers from your EasyPusher account.

A free account at [easypusher.com](https://easypusher.com) is required.

= External Service: EasyPusher =

This plugin requires an account at [EasyPusher.com](https://easypusher.com) to function. EasyPusher is a web push notification service that provides the server-side infrastructure (VAPID keys, opt-in prompt rendering, push fanout, analytics).

**Service links:**

* Service homepage: [https://easypusher.com](https://easypusher.com)
* Terms of Service: [https://easypusher.com/terms](https://easypusher.com/terms)
* Privacy Policy: [https://easypusher.com/privacy](https://easypusher.com/privacy)

= Requirements =

* WordPress 6.2 or higher
* PHP 7.4 or higher
* HTTPS enabled on your site (required for push notifications)

== Installation ==

= From the WordPress admin (recommended) =

1. In your WordPress admin, go to **Plugins → Add New** and search for **EasyPusher**.
2. Click **Install Now**, then **Activate**.
3. Sign up for a free account at [app.easypusher.com](https://app.easypusher.com), add your site, and copy the API Key shown on the site's API Access page.
4. In your WordPress admin, go to **EasyPusher → Settings**, paste the API Key, and click Save.
5. If activation could not auto-write `ep-sw.js` to your site root, an admin notice will tell you what to upload manually.

== Frequently Asked Questions ==

= Which browsers support web push notifications? =

Web push notifications work in Chrome, Firefox, Edge, Opera, and Safari, on both desktop and mobile. The plugin handles the cross-browser differences for you — the same campaign reaches all of your subscribers regardless of which browser they use.

= Can I send push notifications to mobile users? =

Yes. Web push notifications work on Android browsers (Chrome, Firefox, Edge, Opera) and on iOS Safari 16.4 and later (when the visitor adds your site to their Home Screen). The plugin captures mobile subscribers the same way it captures desktop ones.

= Do I need an EasyPusher account? =

Yes — a free [EasyPusher](https://easypusher.com) account is required. The plugin is a thin wrapper around the EasyPusher cloud: subscribers, opt-in prompt configuration, campaigns, VAPID keys, and delivery all live in your EasyPusher dashboard.

= Is there a free plan? =

Yes. EasyPusher has a free tier that covers small sites, and paid plans for higher subscriber counts and notification volume. Pricing details are on [easypusher.com](https://easypusher.com).

= Where is subscriber data stored? =

In your EasyPusher cloud account. The plugin does not maintain a local subscriber database on your WordPress site, which keeps your database lean and avoids GDPR concerns around hosting browser-push tokens on shared WordPress hosting.

= Do I need to generate VAPID keys? =

No. EasyPusher generates and rotates VAPID keys for you. You don't have to copy keys into the plugin, regenerate them, or migrate subscribers when keys change.

= Will this plugin slow down my site? =

No. The JS SDK is loaded asynchronously from Cloudflare's CDN, so it never blocks page rendering. The plugin doesn't add database queries to your front-end pages — visitors only contact the EasyPusher API when they're interacting with the opt-in prompt or subscribing.

= Does it work with WordPress multisite? =

Yes. Each site connects to its own EasyPusher account (or to a separate site within one EasyPusher account), so subscribers, campaigns, and stats are kept properly isolated per WordPress site.

= How do I uninstall? =

Deactivate the plugin from the WordPress Plugins screen, then click Delete. The plugin removes its options and the `ep-sw.js` service-worker proxy file. Your EasyPusher cloud account and subscribers are preserved — you can reconnect any time by reinstalling the plugin and pasting your API Key.

= Is HTTPS required? =

Yes. Web push notifications require HTTPS — this is a browser security requirement that applies to every web push solution, not just EasyPusher.

== Screenshots ==

1. **Settings page** — paste the `epk_…` API Key from your EasyPusher dashboard to connect your WordPress site to your account.
2. **Stats page** — at-a-glance subscribers and last-30-days delivery stats pulled directly from the EasyPusher cloud (5-minute cache).

== Changelog ==

= 1.0.1 =
* Fix: admin notice on the Stats page was rendering inline with the heading because WordPress core JS moves notices next to the first H1 — added the `wp-header-end` marker so notices land below the styled header as intended.

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.0.1 =
Fixes a cosmetic bug on the Stats page where an admin notice rendered next to the heading instead of below it. No behaviour changes.

= 1.0.0 =
Initial release.
