{"id":355812,"date":"2026-08-25T18:29:18","date_gmt":"2026-08-25T18:29:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pushpro-web-push\/"},"modified":"2026-08-25T18:28:44","modified_gmt":"2026-08-25T18:28:44","slug":"debmedia-webpush","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/debmedia-webpush\/","author":23214163,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Debmedia WebPush","header_author":"Debasis Bhattacharjee","header_description":"Connects your WordPress site to your PushPro (pushpro.store) account so visitors can subscribe to browser push notifications, and automatically notifies them when you publish a new post.","assets_banners_color":"ffffff","last_updated":"2026-08-25 18:28:44","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/pushpro.store","header_author_uri":"https:\/\/debasisbhattacharjee.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":39,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"debmedia","date":"2026-08-25 18:28:44"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3665874,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3665874,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3665874,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3665874,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Settings page \u2014 connect your PushPro API key and choose a website."}},"plugin_section":[],"plugin_tags":[456,4906,1155,1016,37677],"plugin_category":[41,55],"plugin_contributors":[277464],"plugin_business_model":[],"class_list":["post-355812","plugin","type-plugin","status-publish","hentry","plugin_tags-marketing","plugin_tags-notifications","plugin_tags-push-notifications","plugin_tags-subscribers","plugin_tags-web-push","plugin_category-communication","plugin_category-seo-and-marketing","plugin_contributors-debmedia","plugin_committers-debmedia"],"banners":{"banner":"https:\/\/ps.w.org\/debmedia-webpush\/assets\/banner-772x250.png?rev=3665874","banner_2x":"https:\/\/ps.w.org\/debmedia-webpush\/assets\/banner-1544x500.png?rev=3665874","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/debmedia-webpush\/assets\/icon-128x128.png?rev=3665874","icon_2x":"https:\/\/ps.w.org\/debmedia-webpush\/assets\/icon-256x256.png?rev=3665874","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Debmedia WebPush connects your WordPress site to your <a href=\"https:\/\/pushpro.store\">PushPro<\/a> account so visitors can subscribe to real browser push notifications \u2014 no email address required, no app to install \u2014 and so every new post you publish can automatically trigger a notification to your subscriber list.<\/p>\n\n<p><strong>What the plugin does:<\/strong><\/p>\n\n<ul>\n<li>Loads the PushPro subscribe widget on your site so visitors can opt in to push notifications with one click.<\/li>\n<li>Registers a lightweight service worker at <code>\/pushpro-sw.js<\/code> so subscriptions work the way the browser Push API requires (same-origin).<\/li>\n<li>When you publish a new post, sends the title, excerpt, link, and featured image to PushPro, which delivers it as a push notification to your subscribers.<\/li>\n<\/ul>\n\n<p><strong>Requirements<\/strong><\/p>\n\n<p>This plugin requires a free <a href=\"https:\/\/pushpro.store\">PushPro<\/a> account and at least one website registered on that account. You'll need a PushPro API key (create a <strong>send-only<\/strong> key from your PushPro dashboard \u2014 never your full-access key) to connect this plugin.<\/p>\n\n<h4>External services<\/h4>\n\n<p>This plugin relies on the PushPro service (https:\/\/pushpro.store) to store subscribers and deliver notifications \u2014 it will not work without it. After you enter your API key in Settings \u2192 Debmedia WebPush, the plugin communicates with PushPro as follows:<\/p>\n\n<ul>\n<li><strong>On every page load<\/strong> (once configured), your site loads a subscribe script and a service worker from <code>pushpro.store<\/code> so visitors can subscribe to push notifications.<\/li>\n<li><strong>When a subscriber's browser subscribes<\/strong>, the subscription (a browser-issued push endpoint, not personal information) is sent from the visitor's browser directly to <code>pushpro.store<\/code>.<\/li>\n<li><strong>When you publish a post<\/strong>, this plugin sends the post title, excerpt, permalink, and featured image URL from your server to <code>https:\/\/pushpro.store\/api\/v1\/campaigns.php<\/code>, authenticated with the API key you provide, so PushPro can notify your subscribers.<\/li>\n<\/ul>\n\n<p>No data is sent anywhere until you enter an API key and connect a website. See PushPro's <a href=\"https:\/\/pushpro.store\">Terms of Service<\/a> and Privacy Policy on the PushPro site for how that data is handled.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin (via Plugins \u2192 Add New, or upload the zip via Plugins \u2192 Add New \u2192 Upload Plugin).<\/li>\n<li>Go to <strong>Settings \u2192 Debmedia WebPush<\/strong> in your WordPress admin.<\/li>\n<li>Sign in to your PushPro account (or create a free one at <a href=\"https:\/\/pushpro.store\">pushpro.store<\/a>), add your site as a website there, and create a <strong>send-only<\/strong> API key under API Keys.<\/li>\n<li>Paste that API key into the plugin's settings page and save.<\/li>\n<li>Select which PushPro website corresponds to this WordPress site, and save again.<\/li>\n<li>Visit your site \u2014 the subscribe prompt should now appear (or embed your own button using the PushPro SDK's <code>PushPro.subscribe()<\/code> call).<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20pushpro%20account%3F\"><h3>Do I need a PushPro account?<\/h3><\/dt>\n<dd><p>Yes. This plugin is a connector to the PushPro service \u2014 it doesn't send or store push notifications itself. A free plan is available.<\/p><\/dd>\n<dt id=\"is%20my%20api%20key%20safe%20to%20store%20here%3F\"><h3>Is my API key safe to store here?<\/h3><\/dt>\n<dd><p>Use a <strong>send-only<\/strong> API key (created on your PushPro dashboard), which can only trigger a notification send \u2014 it cannot read your subscriber list, billing, or other campaigns. This limits what's exposed if your WordPress site's database were ever compromised.<\/p><\/dd>\n<dt id=\"will%20this%20notify%20subscribers%20for%20every%20post%2C%20including%20old%20ones%20i%20edit%3F\"><h3>Will this notify subscribers for every post, including old ones I edit?<\/h3><\/dt>\n<dd><p>No. It only fires the first time a post transitions from draft (or any non-published status) to published, and is marked so it won't fire again on later edits.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20hit%20my%20plan%27s%20send%20limit%3F\"><h3>What happens if I hit my plan's send limit?<\/h3><\/dt>\n<dd><p>The post still publishes normally; the plugin simply won't be able to trigger the notification, and will show an admin notice saying so.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: subscribe widget, service worker, and publish-triggered notifications.<\/li>\n<\/ul>","raw_excerpt":"Collect browser push subscribers on your WordPress site and automatically notify them the moment you publish a new post.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/355812","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=355812"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/debmedia"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=355812"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=355812"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=355812"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=355812"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=355812"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=355812"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}