{"id":361892,"date":"2026-09-05T13:28:48","date_gmt":"2026-09-05T13:28:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/devdiggers-pwa\/"},"modified":"2026-09-05T13:28:23","modified_gmt":"2026-09-05T13:28:23","slug":"devdiggers-pwa","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/devdiggers-pwa\/","author":20777317,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"DevDiggers PWA","header_author":"DevDiggers","header_description":"Turn your WordPress or WooCommerce site into an installable app with offline browsing and web push notifications.","assets_banners_color":"fefefe","last_updated":"2026-09-05 13:28:23","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/devdiggers.com\/product\/progressive-web-app-for-wordpress\/","header_author_uri":"https:\/\/devdiggers.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":31,"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":"devdiggers","date":"2026-09-05 13:28:23","revision":3682483}},"upgrade_notice":{"1.0.0":"<p>First release. After activating, run the Setup Wizard so the manifest and service worker are generated.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3682482,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3682482,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500-rtl.png":{"filename":"banner-1544x500-rtl.png","revision":3682482,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3682482,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250-rtl.png":{"filename":"banner-772x250-rtl.png","revision":3682482,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3682482,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3682482,"resolution":"1","location":"assets","locale":"","width":600,"height":1300},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3682482,"resolution":"10","location":"assets","locale":"","width":1600,"height":1000},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3682482,"resolution":"11","location":"assets","locale":"","width":1600,"height":1000},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3682482,"resolution":"2","location":"assets","locale":"","width":600,"height":1300},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3682482,"resolution":"3","location":"assets","locale":"","width":1600,"height":1000},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3682482,"resolution":"4","location":"assets","locale":"","width":1600,"height":1000},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3682482,"resolution":"5","location":"assets","locale":"","width":1600,"height":1000},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3682482,"resolution":"6","location":"assets","locale":"","width":1600,"height":1000},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3682482,"resolution":"7","location":"assets","locale":"","width":1600,"height":1000},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3682482,"resolution":"8","location":"assets","locale":"","width":1600,"height":1000},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3682482,"resolution":"9","location":"assets","locale":"","width":1600,"height":1000}},"screenshots":{"1":"Dashboard with installs, subscribers, notifications sent, charts and the setup checklist.","2":"Delivery Log with the type, status and audience of every push.","3":"The notification list and the add notification screen.","4":"Automations: auto push on publish and the welcome notification.","5":"Configuration tabs for the manifest, app icons and offline behaviour.","6":"Status tab with the setup checks and the browser support list.","7":"The install prompt and a push notification on the storefront."}},"plugin_section":[],"plugin_tags":[227279,77056,1155,77057,37677],"plugin_category":[],"plugin_contributors":[220149],"plugin_business_model":[],"class_list":["post-361892","plugin","type-plugin","status-publish","hentry","plugin_tags-add-to-home-screen","plugin_tags-progressive-web-apps","plugin_tags-push-notifications","plugin_tags-pwa","plugin_tags-web-push","plugin_contributors-devdiggers","plugin_committers-devdiggers"],"banners":{"banner":"https:\/\/ps.w.org\/devdiggers-pwa\/assets\/banner-772x250.png?rev=3682482","banner_2x":"https:\/\/ps.w.org\/devdiggers-pwa\/assets\/banner-1544x500.png?rev=3682482","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/devdiggers-pwa\/assets\/icon-128x128.gif?rev=3682482","icon_2x":"https:\/\/ps.w.org\/devdiggers-pwa\/assets\/icon-256x256.gif?rev=3682482","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/devdiggers-pwa\/assets\/screenshot-1.png?rev=3682482","caption":"Dashboard with installs, subscribers, notifications sent, charts and the setup checklist."},{"src":"https:\/\/ps.w.org\/devdiggers-pwa\/assets\/screenshot-2.png?rev=3682482","caption":"Delivery Log with the type, status and audience of every push."},{"src":"https:\/\/ps.w.org\/devdiggers-pwa\/assets\/screenshot-3.png?rev=3682482","caption":"The notification list and the add notification screen."},{"src":"https:\/\/ps.w.org\/devdiggers-pwa\/assets\/screenshot-4.png?rev=3682482","caption":"Automations: auto push on publish and the welcome notification."},{"src":"https:\/\/ps.w.org\/devdiggers-pwa\/assets\/screenshot-5.png?rev=3682482","caption":"Configuration tabs for the manifest, app icons and offline behaviour."},{"src":"https:\/\/ps.w.org\/devdiggers-pwa\/assets\/screenshot-6.png?rev=3682482","caption":"Status tab with the setup checks and the browser support list."},{"src":"https:\/\/ps.w.org\/devdiggers-pwa\/assets\/screenshot-7.png?rev=3682482","caption":"The install prompt and a push notification on the storefront."},{"src":"https:\/\/ps.w.org\/devdiggers-pwa\/assets\/screenshot-8.png?rev=3682482","caption":""},{"src":"https:\/\/ps.w.org\/devdiggers-pwa\/assets\/screenshot-9.png?rev=3682482","caption":""},{"src":"https:\/\/ps.w.org\/devdiggers-pwa\/assets\/screenshot-10.png?rev=3682482","caption":""},{"src":"https:\/\/ps.w.org\/devdiggers-pwa\/assets\/screenshot-11.png?rev=3682482","caption":""}],"raw_content":"<!--section=description-->\n<p>This plugin turns your WordPress or WooCommerce site into a progressive web app: an app people can install on their phone from the browser, with your icon on their home screen, your splash screen when it opens, pages that still load when the signal drops, and web push notifications that bring them back.<\/p>\n\n<p>You get the three things a <a href=\"https:\/\/devdiggers.com\/product\/progressive-web-app-for-wordpress\/\">WordPress PWA Plugin<\/a> is made of, all configurable from one menu. A web app manifest, so browsers offer to install your site. A service worker, so visited pages stay readable offline. And web push notifications through Firebase Cloud Messaging, so you can reach people on Android, Windows, macOS and iOS after they leave.<\/p>\n\n<h4>Push notifications without a monthly bill<\/h4>\n\n<p>Most push notification plugins are the front end of a paid service. You connect an account, and once you pass a few thousand subscribers you start paying every month to message people who already opted in on your site. Your list lives on their servers.<\/p>\n\n<p>This one works differently. You create a free Firebase project, paste three values into the settings, and notifications go out from your own project. There is no subscriber limit, no per message price and no trial period. The subscriber list sits in your own database tables, on your own server, and you can export or delete it whenever you want.<\/p>\n\n<h4>Quick links<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/demo.devdiggers.com\/progressive-web-app-for-wordpress\/\">View Demo<\/a><\/li>\n<li><a href=\"https:\/\/docs.devdiggers.com\/progressive-web-app-for-wordpress\/\">Documentation<\/a><\/li>\n<li><a href=\"https:\/\/devdiggers.com\/contact\/\">Support<\/a><\/li>\n<\/ul>\n\n<h4>Turn your website into an installable app<\/h4>\n\n<p>Visitors get an install prompt on Android and desktop Chrome, and Add to Home Screen on iOS. Once installed, your site opens in its own window with no browser bar, its own app icon and its own splash screen.<\/p>\n\n<ul>\n<li>Full web app manifest control: name, short name, theme and background colour, display mode, orientation, scope, start URL, description and categories.<\/li>\n<li>Upload your own app icon set, including a maskable icon so Android does not crop your logo into a circle.<\/li>\n<li>Store screenshots for the richer, app store style install dialog Chrome shows when both a wide and a narrow screenshot are supplied.<\/li>\n<li>iOS splash screens, so the installed app does not open on a blank white screen, plus an iOS status bar style.<\/li>\n<li>An install banner with your own title, message, button label and colours, plus a [ddwppwa_install_button] shortcode for putting an install button in a page, post or widget.<\/li>\n<li>Optional campaign parameters on the start URL, so app launches can be told apart from ordinary visits in your analytics.<\/li>\n<\/ul>\n\n<h4>Offline browsing with a service worker<\/h4>\n\n<p>A service worker caches the pages people visit, so a dropped signal on a train or in a lift does not end the visit.<\/p>\n\n<ul>\n<li>Network first caching. A visitor with a connection always sees your current content, and the cache is only reached for when the network is not there.<\/li>\n<li>Set how long a cached page stays usable.<\/li>\n<li>Point the offline fallback at any page you have written, or use the built in offline screen.<\/li>\n<li>Keep pages out of the cache with a never cache list. Your cart, checkout and account pages are filled in for you, because a cached cart is a support ticket.<\/li>\n<\/ul>\n\n<h4>Web push notifications on Android, desktop and iOS<\/h4>\n\n<p>Notifications are delivered by Firebase Cloud Messaging using your own project, so there is no cap on subscribers and no per message pricing from us.<\/p>\n\n<ul>\n<li>Write a push notification with a title, message, image and click URL, then send it to everyone who subscribed.<\/li>\n<li>Send a quick push straight from any post with the Send Push box in the editor.<\/li>\n<li>Send a push automatically when you publish a new post, with a per post switch for the ones that should stay quiet, and placeholders for the title, URL, excerpt and site name.<\/li>\n<li>Welcome new subscribers with a one time notification.<\/li>\n<li>Style the permission prompt with your own wording and colours, delay it by a number of seconds or page views, and exclude the pages where asking would be rude.<\/li>\n<li>A Test Notification button, so you find out your setup is wrong before your subscribers do.<\/li>\n<li>A [ddwppwa_subscribe_button] shortcode for asking permission from inside your content.<\/li>\n<\/ul>\n\n<h4>See who subscribed and what you sent<\/h4>\n\n<ul>\n<li>A dashboard with total installs, active installs, subscribers and notifications sent.<\/li>\n<li>An app readiness score out of 100, worked out from the same checks as the Status tab, with whatever is holding it back listed underneath.<\/li>\n<li>Charts for app performance over time, notifications sent, notifications by type and which browsers your visitors are on.<\/li>\n<li>A Delivery Log with a row for every push: type, status, how many devices it reached, and the reason when a send fails.<\/li>\n<li>A Subscribers screen listing every known device with its platform, browser, status, signed in user, when it was installed and when it was last seen.<\/li>\n<li>A setup checklist, and a Status tab that checks HTTPS, OpenSSL, your generated files, your icons and your Firebase credentials, then shows what each browser lets your app do.<\/li>\n<\/ul>\n\n<h4>Works with AMP, multisite, WPML and WooCommerce<\/h4>\n\n<ul>\n<li>AMP. On an AMP page no script is enqueued, so the page stays valid and keeps its AMP cache listing. The manifest and the app meta tags are valid AMP and are still added, so the page is still installable. Works with the official AMP plugin and with AMP for WP.<\/li>\n<li>Multisite. Every site in the network gets its own manifest, its own settings and its own subscriber list. Nothing is shared between them.<\/li>\n<li>WPML and Polylang. The app name, short name, description, install banner and permission prompt are registered for translation under the DevDiggers PWA string group, and the manifest is served in the language the visitor is reading, so a French visitor installs an app named in French.<\/li>\n<li>WooCommerce. HPOS compatible, and the cart, checkout and account pages are kept out of the offline cache by default.<\/li>\n<\/ul>\n\n<h4>Turn off what you do not need<\/h4>\n\n<p>The installable app, offline support, push notifications and analytics tracking each have their own switch, at the top of the tab where that feature is configured. Switching one off unregisters its hooks completely, which also makes it the quickest way to find out whether another plugin is conflicting.<\/p>\n\n<h4>Free vs Pro<\/h4>\n\n<p>Everything above is in this free plugin, with no subscriber cap, no sending fees and no trial period.<\/p>\n\n<p><a href=\"https:\/\/devdiggers.com\/product\/progressive-web-app-for-wordpress\/\">DevDiggers PWA Pro<\/a> adds:<\/p>\n\n<ul>\n<li>Click tracking and click through rate. See how many people opened each notification, per send and across the site, with an engagement chart on the dashboard.<\/li>\n<li>Audience targeting. Send to logged in users, guests, installed app users or WooCommerce customers instead of everyone.<\/li>\n<li>Scheduled sends. Pick a future date and time and the notification sends itself.<\/li>\n<li>Action buttons and badges. Up to two buttons on a notification, each opening its own URL, plus a badge icon for the Android status bar.<\/li>\n<li>WooCommerce push notifications. New product and on sale pushes, back in stock alerts for the shoppers who asked, order status updates to the buyer's own devices, and abandoned cart reminders.<\/li>\n<li>Recurring digest. A daily or weekly broadcast on the day and time you choose.<\/li>\n<li>App shortcuts and a QR code. Quick links in the menu that opens when someone long presses your app icon, plus a printable QR code for the app start URL.<\/li>\n<li>Cache first strategy. Serve the stored copy of a page immediately for a noticeably faster repeat visit. Free is always network first.<\/li>\n<li>App Experience. A bottom tab bar built from a WordPress menu, pull to refresh, page transitions, a loading bar, a dark mode toggle, the device share sheet, haptic feedback, a screen wake lock and saved form entries.<\/li>\n<li>Android app for the Play Store. Store readiness checks, the packaging file for PWABuilder or Bubblewrap, and the asset links file served from your own site so the installed app opens with no browser bar. You keep your own signing key. The iOS project is generated the same way.<\/li>\n<li>Send when back online. A comment or contact form submitted with no signal is queued on the device and sent as soon as the connection returns, instead of being lost to a browser error page.<\/li>\n<li>Save for offline. A button that keeps a page on the device for reading later, listed in the browser's own downloads area.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin uses the following external services. Each is described here so you know what is sent, why, and when.<\/p>\n\n<p><strong>1. Firebase Cloud Messaging (server side)<\/strong><\/p>\n\n<ul>\n<li>What it is: Firebase Cloud Messaging, a Google service, delivers web push notifications to browsers that subscribed on your site. It runs under the Firebase project you create yourself and connect under Configuration &gt; Push Setup.<\/li>\n<li>What it is used for: Sending your push notifications, and managing the topics a device is subscribed to.<\/li>\n<li>When data is sent: Only when a notification is sent, whether you sent it by hand, the Test Notification button sent it, or an automation such as Auto Push on Publish or the welcome notification triggered it. Also when a device subscribes or unsubscribes, so its token can be added to or removed from a topic. Nothing is sent on a page load or on a schedule.<\/li>\n<li>What data is sent: The notification title, message, image URL and click URL, together with the browser push tokens of the devices it is going to. Your service account credentials are exchanged for a short lived access token first. No visitor name, email or order data is sent.<\/li>\n<li>Endpoints: https:\/\/oauth2.googleapis.com\/token, https:\/\/fcm.googleapis.com\/v1\/projects\/{your-project-id}\/messages:send, https:\/\/iid.googleapis.com\/iid\/v1:batchAdd and https:\/\/iid.googleapis.com\/iid\/v1:batchRemove<\/li>\n<li>Terms of Service: https:\/\/firebase.google.com\/terms<\/li>\n<li>Privacy Policy: https:\/\/policies.google.com\/privacy<\/li>\n<\/ul>\n\n<p><strong>2. Firebase installations and registration (visitor's browser)<\/strong><\/p>\n\n<ul>\n<li>What it is: The same Firebase project, contacted by the Firebase JavaScript SDK running in the visitor's browser rather than by your server.<\/li>\n<li>What it is used for: Issuing the push token that identifies that browser, so notifications can reach it. Without this step no device can receive a notification.<\/li>\n<li>When data is sent: Only after a visitor allows notifications in the browser permission prompt, and afterwards when the browser refreshes an expiring token. Visitors who never allow notifications never contact these endpoints.<\/li>\n<li>What data is sent: The public Firebase config you entered, the VAPID public key, the browser's own push endpoint and keys, and the usual request data such as IP address and user agent. The token that comes back is stored in your database so you can send to that device.<\/li>\n<li>Endpoints: https:\/\/firebaseinstallations.googleapis.com\/v1 and https:\/\/fcmregistrations.googleapis.com\/v1<\/li>\n<li>Terms of Service: https:\/\/firebase.google.com\/terms<\/li>\n<li>Privacy Policy: https:\/\/policies.google.com\/privacy<\/li>\n<\/ul>\n\n<p>The Firebase JavaScript SDK itself ships inside this plugin and is served from your own domain, so no script is loaded from a third party. Only the requests described above leave the browser.<\/p>\n\n<p><strong>3. DevDiggers extensions directory<\/strong><\/p>\n\n<ul>\n<li>What it is: A read only API on devdiggers.com that returns the public list of DevDiggers extensions.<\/li>\n<li>What it is used for: Showing available DevDiggers extensions on the Extensions admin page.<\/li>\n<li>When data is sent: Only when a logged in administrator opens the Extensions admin page. The response is cached for 24 hours, so the request does not repeat on every page load.<\/li>\n<li>What data is sent: A standard outbound HTTP request only, meaning your server's IP address and a plugin user agent string, as with any web request. No personal data and no site data are sent.<\/li>\n<li>Endpoint: https:\/\/devdiggers.com\/wp-json\/ddwcs\/v1\/plugins<\/li>\n<\/ul>\n\n<p><strong>4. Newsletter subscription (optional)<\/strong><\/p>\n\n<ul>\n<li>What it is: A contact and newsletter endpoint on devdiggers.com.<\/li>\n<li>What it is used for: Adding your email address to the DevDiggers newsletter, only if you choose to subscribe.<\/li>\n<li>When data is sent: Only when an administrator submits the optional newsletter form in the plugin dashboard. Nothing is sent automatically.<\/li>\n<li>What data is sent: The email address you enter and your site URL.<\/li>\n<li>Endpoint: https:\/\/devdiggers.com\/<\/li>\n<\/ul>\n\n<p><strong>5. Gravatar (avatar images)<\/strong><\/p>\n\n<ul>\n<li>What it is: Gravatar, the globally recognised avatar service operated by Automattic.<\/li>\n<li>What it is used for: WordPress core's <code>get_avatar_url()<\/code> is used to show the logged in administrator's avatar in the plugin dashboard header. This is standard WordPress behaviour and is not specific to this plugin.<\/li>\n<li>When data is sent: Only when a logged in administrator opens the plugin dashboard and WordPress avatars are enabled in Settings &gt; Discussion. Disabling avatars there stops the request completely.<\/li>\n<li>What data is sent: An MD5 hash of the administrator's email address, inside the image URL requested by the browser, plus the usual request data such as IP address and user agent.<\/li>\n<li>Endpoint: https:\/\/secure.gravatar.com\/avatar\/<\/li>\n<li>Terms of Service: https:\/\/automattic.com\/terms\/<\/li>\n<li>Privacy Policy: https:\/\/automattic.com\/privacy\/<\/li>\n<\/ul>\n\n<p>The DevDiggers services above (3 and 4) are provided by DevDiggers. By using them you agree to the DevDiggers Terms and Conditions (https:\/\/devdiggers.com\/terms-and-conditions\/) and Privacy Policy (https:\/\/devdiggers.com\/privacy-policy\/).<\/p>\n\n<p>This plugin contains no licensing checks, no update checks and no telemetry.<\/p>\n\n<h3>Source code and build tools<\/h3>\n\n<p>The admin and frontend JavaScript and CSS are compiled from the <code>src\/<\/code> folder with webpack and Babel. The complete, human readable source code, including all build configuration, is published in our public GitHub repository:<\/p>\n\n<p>https:\/\/github.com\/DevDiggers-Technologies\/pwa<\/p>\n\n<p>To build the assets from source:<\/p>\n\n<ol>\n<li>Run <code>npm install<\/code> to install the build dependencies listed in <code>package.json<\/code>.<\/li>\n<li>Run <code>npm run build<\/code> to compile the production assets into <code>assets\/js<\/code> and <code>assets\/css<\/code>.<\/li>\n<\/ol>\n\n<p>The build configuration is in <code>webpack.config.js<\/code> and <code>babel.config.js<\/code>. The shared DevDiggers framework in <code>devdiggers-framework\/<\/code> builds the same way from its own <code>src\/<\/code> folder and its own <code>package.json<\/code>.<\/p>\n\n<p>Three third-party libraries ship unmodified, exactly as their projects release them, all under the MIT licence: Chart.js 4.5.1 (https:\/\/www.chartjs.org), Select2 4.1.0 (https:\/\/select2.org) and the Firebase JavaScript SDK 10.12.3 (https:\/\/firebase.google.com\/docs\/web\/setup), in <code>assets\/js\/vendor\/<\/code>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the devdiggers-pwa folder to \/wp-content\/plugins\/, or install the zip from Plugins &gt; Add New.<\/li>\n<li>Activate the plugin through the Plugins menu.<\/li>\n<li>Open the Progressive Web App menu and run the Setup Wizard.<\/li>\n<li>For push notifications, create a free Firebase project, then paste the Firebase config, the VAPID key and the service account JSON into Configuration &gt; Push Setup.<\/li>\n<\/ol>\n\n<p>Push notifications and offline browsing need a secure context, so serve your site over HTTPS. Localhost is fine while you are developing. The plugin warns you in the admin if it is not.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20turn%20my%20wordpress%20site%20into%20an%20app%3F\"><h3>How do I turn my WordPress site into an app?<\/h3><\/dt>\n<dd><p>Activate the plugin and run the Setup Wizard. It writes the web app manifest and the service worker for you, and asks for an app name, an icon and a theme colour. After that, browsers on Android and desktop offer an install prompt, and iPhone users can add your site to the home screen from the Safari share sheet.<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20ssl%20certificate%3F\"><h3>Do I need an SSL certificate?<\/h3><\/dt>\n<dd><p>Yes. Browsers only allow service workers and web push over HTTPS, or on localhost during development. Without it the app cannot be installed and no notification can be delivered.<\/p><\/dd>\n<dt id=\"is%20there%20a%20limit%20on%20subscribers%20or%20notifications%3F\"><h3>Is there a limit on subscribers or notifications?<\/h3><\/dt>\n<dd><p>No. Notifications are delivered by Firebase Cloud Messaging using a Firebase project you create yourself, so the sending limits are Google's rather than ours. There is no subscriber cap in the plugin, no per message price and nothing to pay us for the free version.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20firebase%20account%3F\"><h3>Do I need a Firebase account?<\/h3><\/dt>\n<dd><p>Yes, for push notifications. It is free to create. Add the Firebase config, the VAPID key and the service account JSON under Push Setup, then use the Test Notification button to confirm it works. The installable app and offline browsing need no Firebase account at all.<\/p><\/dd>\n<dt id=\"do%20web%20push%20notifications%20work%20on%20iphone%3F\"><h3>Do web push notifications work on iPhone?<\/h3><\/dt>\n<dd><p>Yes, within the limits Apple sets. iOS delivers web push only after the visitor has added your site to the home screen from the Safari share sheet. Once it is added, the installed app gets your icon and splash screen and can receive notifications like any other device.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%3F\"><h3>Does it work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. It is HPOS compatible, and the cart, checkout and account pages are kept out of the offline cache by default so nobody is shown a stale basket. Store event pushes, such as order status updates, back in stock alerts and abandoned cart reminders, are part of the Pro version.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20amp%3F\"><h3>Does it work with AMP?<\/h3><\/dt>\n<dd><p>Yes. On an AMP page no script is enqueued, so the page stays valid, but the manifest and app meta tags are still added and the page is still installable. Both the official AMP plugin and AMP for WP are detected.<\/p><\/dd>\n<dt id=\"can%20i%20send%20a%20push%20automatically%20when%20i%20publish%20a%20post%3F\"><h3>Can I send a push automatically when I publish a post?<\/h3><\/dt>\n<dd><p>Yes. Turn on Auto Push on Publish under Automations and every published post broadcasts to your subscribers, using a title template with placeholders for the post title, URL, excerpt and site name. Any single post can opt out from the Send Push box in the editor.<\/p><\/dd>\n<dt id=\"can%20i%20see%20what%20i%20have%20sent%3F\"><h3>Can I see what I have sent?<\/h3><\/dt>\n<dd><p>Yes. Every push is recorded in the Delivery Log with its type, delivery status, the number of devices it reached and the reason when a send fails. Knowing how many people opened each notification, as a click count and a click through rate, is part of the Pro version.<\/p><\/dd>\n<dt id=\"can%20i%20use%20it%20on%20a%20multisite%20network%20or%20a%20translated%20site%3F\"><h3>Can I use it on a multisite network or a translated site?<\/h3><\/dt>\n<dd><p>Yes. Each site in a network keeps its own manifest, settings and subscriber list. With WPML or Polylang, the app name, description, install banner and permission prompt are registered for translation and the manifest is served in the visitor's language.<\/p><\/dd>\n<dt id=\"will%20this%20slow%20my%20site%20down%3F\"><h3>Will this slow my site down?<\/h3><\/dt>\n<dd><p>The front end adds a small script and a service worker. Caching usually makes repeat visits faster rather than slower, and if you do not want a particular feature, each one has its own switch.<\/p><\/dd>\n<dt id=\"can%20i%20publish%20the%20app%20on%20google%20play%3F\"><h3>Can I publish the app on Google Play?<\/h3><\/dt>\n<dd><p>Not from the free version. Free gives you the installable web app that Android and iOS both accept from the browser. The packaging file for PWABuilder or Bubblewrap, the store readiness checks and the asset links file needed for a Play Store listing are part of the Pro version.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20subscribers%20if%20i%20delete%20the%20plugin%3F\"><h3>What happens to my subscribers if I delete the plugin?<\/h3><\/dt>\n<dd><p>They are kept. Deleting the plugin removes the generated service worker and manifest, because a stale service worker would keep serving cached pages, but your notifications, subscribers and delivery log stay in the database unless you tick the setting that asks for them to be removed.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release of the free version.<\/li>\n<\/ul>","raw_excerpt":"Turn your site into an installable app with offline browsing and unlimited web push notifications sent from your own Firebase project.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/361892","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=361892"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/devdiggers"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=361892"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=361892"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=361892"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=361892"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=361892"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=361892"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}