{"id":333659,"date":"2026-07-01T11:17:56","date_gmt":"2026-07-01T11:17:56","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pushai-self-hosted-web-push-notifications\/"},"modified":"2026-07-02T06:49:41","modified_gmt":"2026-07-02T06:49:41","slug":"pushai","status":"publish","type":"plugin","link":"https:\/\/sr.wordpress.org\/plugins\/pushai\/","author":23467174,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"6.4","requires_php":"8.1","requires_plugins":null,"header_name":"PushAI \u2013 Self-Hosted Web Push Notifications","header_author":"PushAI","header_description":"Self-hosted web push for WordPress & WooCommerce. Unlimited subscribers, no per-subscriber fees, you own your data. Auto-notify on new posts and send manual campaigns for free \u2014 add AI post digests, WooCommerce order & stock alerts, and click analytics with PushAI Pro.","assets_banners_color":"ded7fc","last_updated":"2026-07-02 06:49:41","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wpushai.com","header_author_uri":"https:\/\/codezenic.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":42,"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":"cagriuckan","date":"2026-07-02 06:49:41"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3593472,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3592572,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3593472,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3592572,"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":3592572,"resolution":"1","location":"assets","locale":"","width":2620,"height":2044},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3592572,"resolution":"2","location":"assets","locale":"","width":2912,"height":2044},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3592572,"resolution":"3","location":"assets","locale":"","width":2912,"height":2044},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3592572,"resolution":"4","location":"assets","locale":"","width":2912,"height":2044},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3592572,"resolution":"5","location":"assets","locale":"","width":2912,"height":2044},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3592572,"resolution":"6","location":"assets","locale":"","width":2912,"height":2044},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3592572,"resolution":"7","location":"assets","locale":"","width":2912,"height":2044},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3592572,"resolution":"8","location":"assets","locale":"","width":2912,"height":2044}},"screenshots":{"1":"Dashboard \u2014 subscriber counts, recent campaigns, delivery activity, and live Web Push service health at a glance.","2":"Settings \u2014 enable the push service, automatic new-post notifications, guest subscriptions, email fallback, and the notification icon.","3":"AI digests (Pro) \u2014 schedule summarized post digests with delivery times, lookback window, and a choice of AI providers.","4":"Statistics (Pro) \u2014 subscriber growth, link clicks, most-clicked links, daily deliveries, and AI digest conversion over 7\/30\/90 days.","5":"Notification templates (Pro) \u2014 customize the title and message for new-post, AI digest, and comment notifications with placeholders.","6":"Progressive Web App (Pro) \u2014 make your site installable with a managed manifest: app name, theme color, display mode, and icon.","7":"Subscribers \u2014 browse registered users and guests with their browser, device, subscription date, and status.","8":"Notifications \u2014 delivery history plus the composer to send a campaign to all subscribers or target specific users."}},"plugin_section":[],"plugin_tags":[2353,1155,77057,37677,286],"plugin_category":[45],"plugin_contributors":[269723],"plugin_business_model":[],"class_list":["post-333659","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-push-notifications","plugin_tags-pwa","plugin_tags-web-push","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-cagriuckan","plugin_committers-cagriuckan"],"banners":{"banner":"https:\/\/ps.w.org\/pushai\/assets\/banner-772x250.png?rev=3592572","banner_2x":"https:\/\/ps.w.org\/pushai\/assets\/banner-1544x500.png?rev=3593472","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/pushai\/assets\/icon-128x128.png?rev=3593472","icon_2x":"https:\/\/ps.w.org\/pushai\/assets\/icon-256x256.png?rev=3592572","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/pushai\/assets\/screenshot-1.png?rev=3592572","caption":"Dashboard \u2014 subscriber counts, recent campaigns, delivery activity, and live Web Push service health at a glance."},{"src":"https:\/\/ps.w.org\/pushai\/assets\/screenshot-2.png?rev=3592572","caption":"Settings \u2014 enable the push service, automatic new-post notifications, guest subscriptions, email fallback, and the notification icon."},{"src":"https:\/\/ps.w.org\/pushai\/assets\/screenshot-3.png?rev=3592572","caption":"AI digests (Pro) \u2014 schedule summarized post digests with delivery times, lookback window, and a choice of AI providers."},{"src":"https:\/\/ps.w.org\/pushai\/assets\/screenshot-4.png?rev=3592572","caption":"Statistics (Pro) \u2014 subscriber growth, link clicks, most-clicked links, daily deliveries, and AI digest conversion over 7\/30\/90 days."},{"src":"https:\/\/ps.w.org\/pushai\/assets\/screenshot-5.png?rev=3592572","caption":"Notification templates (Pro) \u2014 customize the title and message for new-post, AI digest, and comment notifications with placeholders."},{"src":"https:\/\/ps.w.org\/pushai\/assets\/screenshot-6.png?rev=3592572","caption":"Progressive Web App (Pro) \u2014 make your site installable with a managed manifest: app name, theme color, display mode, and icon."},{"src":"https:\/\/ps.w.org\/pushai\/assets\/screenshot-7.png?rev=3592572","caption":"Subscribers \u2014 browse registered users and guests with their browser, device, subscription date, and status."},{"src":"https:\/\/ps.w.org\/pushai\/assets\/screenshot-8.png?rev=3592572","caption":"Notifications \u2014 delivery history plus the composer to send a campaign to all subscribers or target specific users."}],"raw_content":"<!--section=description-->\n<p>\ud83d\ude80 <strong><a href=\"https:\/\/demo.wpushai.com\/\">Try the live demo<\/a><\/strong> \u2014 explore the PushAI admin panel without installing anything. | \ud83d\udc8e <strong><a href=\"https:\/\/wpushai.com\">Upgrade to PushAI Pro<\/a><\/strong> \u2014 AI digests, WooCommerce automation, and more.<\/p>\n\n<p><strong>PushAI<\/strong> turns your WordPress site into a re-engagement channel. Visitors subscribe with a single click, and you reach them directly in their browser \u2014 even when your site is closed \u2014 using the native Web Push standard. There is no third-party SDK, no per-subscriber pricing, and no external delivery service: notifications are sent straight from your own server using your own <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc8292\">VAPID<\/a> credentials, which PushAI generates automatically.<\/p>\n\n<p>Everything lives on your site. Subscribers are stored in your own database, delivery runs through a background queue so large sends never block your site, and every push link is automatically tagged with UTM parameters so the traffic shows up correctly in Google Analytics and your other reporting tools. The free plugin already covers the full lifecycle \u2014 subscribe button, automatic new-post notifications, a manual composer, per-user targeting, delivery history, and GDPR export\/erasure. And no one is left out: with the optional <strong>email fallback<\/strong>, registered users who haven't subscribed to browser push receive the same notification in their inbox as a clean HTML email instead.<\/p>\n\n<p>PushAI is <strong>device-aware<\/strong>. When a logged-in visitor subscribes, PushAI keeps one active subscription per device type \u2014 one for mobile and one for desktop \u2014 so the same person can opt in independently on their phone and on their computer and receive each notification on whichever devices they enabled. Stale and duplicate subscriptions are pruned automatically.<\/p>\n\n<p><strong>PushAI Pro<\/strong> builds on this foundation with the three features self-hosted push plugins almost never offer out of the box: <strong>AI-summarized post digests<\/strong> (powered by OpenAI, Google Gemini, xAI Grok, DeepSeek, or any OpenRouter model \u2014 with a template fallback so digests always work), <strong>deep WooCommerce automation<\/strong> (order and stock alerts, order-status updates, abandoned-cart reminders, cross-sell follow-ups, and trending-product pushes), and a <strong>built-in Progressive Web App (PWA)<\/strong> that adds an installable web-app manifest and service worker so visitors can install your site to their home screen.<\/p>\n\n<blockquote>\n  <p><strong>Actively developed.<\/strong> PushAI is under continuous, active development. New automations, AI providers, and WooCommerce flows ship regularly, and every release is documented in the changelog below. Feature requests and feedback directly shape the roadmap \u2014 this is a living plugin, not a frozen one.<\/p>\n<\/blockquote>\n\n<h4>Why choose PushAI?<\/h4>\n\n<p>PushAI keeps your push notifications self-hosted, so the parts that usually cost you money and control stay on your side:<\/p>\n\n<ul>\n<li><strong>You own your subscriber list.<\/strong> Subscriptions live in your WordPress database, never on a third-party platform.<\/li>\n<li><strong>Unlimited subscribers and notifications \u2014 on Free and Pro.<\/strong> No per-subscriber pricing, no monthly send caps.<\/li>\n<li><strong>No third-party SDK or external delivery service.<\/strong> Native Web Push + your own VAPID keys, straight from your server.<\/li>\n<li><strong>Transparent, flat pricing.<\/strong> The free plugin stays free forever; Pro is one flat price no matter how big your audience gets.<\/li>\n<li><strong>AI digests built in (Pro).<\/strong> Automatically summarize your latest posts and send them on a schedule \u2014 across multiple AI providers, with a template fallback.<\/li>\n<li><strong>WooCommerce automation (Pro).<\/strong> Order, stock, status, abandoned-cart, cross-sell, and trending-product pushes \u2014 from your own store.<\/li>\n<li><strong>Built-in PWA (Pro).<\/strong> Make your site installable with a managed manifest and service worker \u2014 no separate PWA plugin required.<\/li>\n<\/ul>\n\n<h4>Standout features<\/h4>\n\n<ul>\n<li><strong>AI post digests (Pro)<\/strong> \u2014 collect your recent posts and send a summarized push digest on a schedule, written by OpenAI, Gemini, Grok, DeepSeek, or OpenRouter, with a built-in template fallback.<\/li>\n<li><strong>WooCommerce automation (Pro)<\/strong> \u2014 admin alerts for new\/cancelled\/refunded orders and low\/out-of-stock products; customer order-status and order-note updates; abandoned-cart reminders; post-purchase cross-sell follow-ups; and \"Trending Now\" product pushes.<\/li>\n<li><strong>Built-in PWA (Pro)<\/strong> \u2014 an installable web-app manifest and service worker, with configurable app name, icon, and theme color, so visitors can add your site to their home screen.<\/li>\n<li><strong>Email fallback<\/strong> \u2014 registered users without an active push subscription automatically receive the same notification as a responsive HTML email, so your message reaches everyone. Targeting is honoured, and users can opt out of these emails from their profile.<\/li>\n<li><strong>Separate mobile &amp; desktop subscriptions<\/strong> \u2014 one active subscription per device type per account, so a user can opt in independently on phone and desktop.<\/li>\n<li><strong>Automatic UTM tagging<\/strong> \u2014 every push link is tagged with <code>utm_source<\/code>, <code>utm_medium<\/code>, and a source-aware <code>utm_campaign<\/code> so clicks are attributed in your analytics. Filterable, and can be disabled.<\/li>\n<\/ul>\n\n<h4>Free vs Pro<\/h4>\n\n<p>Both plans include unlimited subscribers and unlimited notifications, the self-hosted setup, and the developer API. Pro adds automation, AI digests, WooCommerce, the built-in PWA, and analytics on top of the free feature set. The full breakdown is below; you only pay for the automation and AI features.<\/p>\n\n<h4>Free Features<\/h4>\n\n<ul>\n<li>\u2705 One-click subscribe button (shortcode)<\/li>\n<li>\u2705 Automatic new-post notifications<\/li>\n<li>\u2705 Manual notification composer<\/li>\n<li>\u2705 Per-user \/ specific-subscriber targeting<\/li>\n<li>\u2705 Separate mobile &amp; desktop subscriptions<\/li>\n<li>\u2705 Guest subscriptions<\/li>\n<li>\u2705 Email fallback for users without a push subscription<\/li>\n<li>\u2705 Automatic VAPID key generation<\/li>\n<li>\u2705 Background delivery queue with retries<\/li>\n<li>\u2705 Automatic UTM link tagging<\/li>\n<li>\u2705 Delivery history &amp; status<\/li>\n<li>\u2705 Privacy \/ GDPR export &amp; erasure<\/li>\n<li>\u2705 Developer API (function + action hooks)<\/li>\n<li>\u2705 Unlimited subscribers &amp; notifications<\/li>\n<li>\u2705 Self-hosted \u2014 you own your data<\/li>\n<li><strong>Pricing:<\/strong> $0 forever<\/li>\n<\/ul>\n\n<h4>Pro Features<\/h4>\n\n<ul>\n<li>\ud83d\ude80 <strong>Everything in Free, plus:<\/strong><\/li>\n<li>\u2705 <strong>Scheduled AI digests<\/strong> (OpenAI, Gemini, Grok, DeepSeek, OpenRouter + template fallback)<\/li>\n<li>\u2705 <strong>WooCommerce order &amp; stock alerts<\/strong><\/li>\n<li>\u2705 <strong>WooCommerce order-status &amp; customer notes<\/strong><\/li>\n<li>\u2705 <strong>Abandoned-cart reminders<\/strong><\/li>\n<li>\u2705 <strong>Cross-sell follow-ups<\/strong><\/li>\n<li>\u2705 <strong>Trending Today<\/strong> (post &amp; product daily-view alerts)<\/li>\n<li>\u2705 <strong>Built-in PWA<\/strong> (installable manifest + service worker)<\/li>\n<li>\u2705 <strong>Statistics &amp; analytics<\/strong> (7\/30\/90-day, CTR, conversion)<\/li>\n<li>\u2705 <strong>Signed click tracking<\/strong><\/li>\n<li>\u2705 <strong>Custom post type automation<\/strong><\/li>\n<li>\u2705 <strong>Site-management admin alerts<\/strong> (pending comments, posts awaiting review, published posts, new subscribers)<\/li>\n<li>\u2705 <strong>Comment notifications<\/strong> (authors &amp; replies)<\/li>\n<li>\u2705 <strong>On-site permission prompt<\/strong> (customizable opt-in popup)<\/li>\n<li><strong>Pricing:<\/strong> $39\/year<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/wpushai.com\">Upgrade to PushAI Pro<\/a><\/p>\n\n<p>PushAI is developed and maintained by <a href=\"https:\/\/wpushai.com\">PushAI<\/a>.<\/p>\n\n<h3>Shortcode<\/h3>\n\n<p>Place a subscribe button anywhere with:<\/p>\n\n<pre><code>[pushai_button]\n<\/code><\/pre>\n\n<p>Optional attributes:<\/p>\n\n<ul>\n<li><code>label<\/code> \u2014 default button text.<\/li>\n<li><code>on<\/code> \u2014 text shown after notifications are enabled.<\/li>\n<li><code>blocked<\/code> \u2014 text shown when the visitor has blocked notifications.<\/li>\n<li><code>align<\/code> \u2014 <code>left<\/code>, <code>center<\/code>, or <code>right<\/code>.<\/li>\n<li><code>class<\/code> \u2014 extra CSS classes.<\/li>\n<\/ul>\n\n<p>Example:<\/p>\n\n<pre><code>[pushai_button label=\"Enable browser notifications\" align=\"center\"]\n<\/code><\/pre>\n\n<p>In PHP templates:<\/p>\n\n<pre><code>&lt;?php echo do_shortcode( '[pushai_button]' ); ?&gt;\n<\/code><\/pre>\n\n<p>The shortcode is also shown on the <strong>PushAI \u2192 Settings<\/strong> screen with a copy button.<\/p>\n\n<h3>Developer API<\/h3>\n\n<p>Queue a notification from a theme or plugin:<\/p>\n\n<pre><code>pushai_trigger_notification( array(\n    'title' =&gt; 'Title',\n    'body'  =&gt; 'Message',\n    'url'   =&gt; home_url( '\/' ),\n    'image' =&gt; '',\n) );\n<\/code><\/pre>\n\n<p>The same notification can be triggered with a WordPress action:<\/p>\n\n<pre><code>do_action( 'pushai_send_notification', array(\n    'title' =&gt; 'Title',\n    'body'  =&gt; 'Message',\n    'url'   =&gt; home_url( '\/' ),\n) );\n<\/code><\/pre>\n\n<h4>Targeting specific users<\/h4>\n\n<p>By default a notification is delivered to every active subscription. To send it to specific WordPress users instead, pass <code>target_user_id<\/code> (a single user) or <code>target_user_ids<\/code> (an array of users). Only subscriptions tied to those user accounts receive the message.<\/p>\n\n<p>Send to one user:<\/p>\n\n<pre><code>pushai_trigger_notification( array(\n    'title'          =&gt; 'Your order shipped',\n    'body'           =&gt; 'Track it from your account.',\n    'url'            =&gt; home_url( '\/my-account\/' ),\n    'target_user_id' =&gt; 123,\n) );\n<\/code><\/pre>\n\n<p>Send to several users:<\/p>\n\n<pre><code>pushai_trigger_notification( array(\n    'title'           =&gt; 'Members-only update',\n    'body'            =&gt; 'A new perk is available.',\n    'target_user_ids' =&gt; array( 12, 45, 78 ),\n) );\n<\/code><\/pre>\n\n<p>Notes on targeting:<\/p>\n\n<ul>\n<li>Only users who subscribed <strong>while logged in<\/strong> can be targeted; guest subscriptions are stored without a user account and are never matched.<\/li>\n<li>A user with several browsers or devices receives the notification on each of their active subscriptions (mobile and desktop are tracked separately).<\/li>\n<li>If targeting arguments are supplied but none resolve to a valid user, the notification is rejected with a <code>WP_Error<\/code> instead of being broadcast to everyone.<\/li>\n<\/ul>\n\n<h4>Supported arguments<\/h4>\n\n<ul>\n<li><code>title<\/code> <em>(required)<\/em> \u2014 notification heading.<\/li>\n<li><code>body<\/code> <em>(required)<\/em> \u2014 notification message.<\/li>\n<li><code>url<\/code> \u2014 link opened when the notification is clicked. Defaults to the site home URL. UTM parameters are appended automatically.<\/li>\n<li><code>image<\/code> \u2014 image URL shown in the notification.<\/li>\n<li><code>target_user_id<\/code> \u2014 a single WordPress user ID to deliver to.<\/li>\n<li><code>target_user_ids<\/code> \u2014 an array of WordPress user IDs to deliver to.<\/li>\n<li><code>source_type<\/code> \u2014 a short label describing what triggered the notification (for example <code>post<\/code>, <code>manual<\/code>, or <code>developer<\/code>). Metadata only: it is stored with the record, shown in the admin history, used by the <code>source<\/code> index, and used to build the <code>utm_campaign<\/code> value \u2014 it does not affect who receives the message. Defaults to <code>developer<\/code>.<\/li>\n<li><code>source_id<\/code> \u2014 the ID of the object that triggered the notification, paired with <code>source_type<\/code> (for example the post ID for a <code>post<\/code> source). Also metadata only and <strong>not<\/strong> a recipient \u2014 use <code>target_user_id<\/code>\/<code>target_user_ids<\/code> to choose recipients. Defaults to <code>0<\/code>.<\/li>\n<\/ul>\n\n<p>Available hooks:<\/p>\n\n<ul>\n<li><code>pushai_should_create_post_notification<\/code> \u2014 filter whether a published post creates a notification.<\/li>\n<li><code>pushai_should_send_to_subscription<\/code> \u2014 filter, per subscription, whether it should receive a given notification.<\/li>\n<li><code>pushai_notification_payload<\/code> \u2014 filter the payload sent to the browser.<\/li>\n<li><code>pushai_utm_parameters<\/code> \u2014 filter (or disable) the UTM parameters appended to push links.<\/li>\n<li><code>pushai_notification_queued<\/code> \u2014 fires after a notification is queued.<\/li>\n<li><code>pushai_notification_failed<\/code> \u2014 fires when a notification fails to send.<\/li>\n<li><code>pushai_notification_delivery_completed<\/code> \u2014 fires after a delivery batch finishes, with success\/failed\/expired counts.<\/li>\n<li><code>pushai_loaded<\/code> \u2014 fires once PushAI has initialized its services.<\/li>\n<\/ul>\n\n<h3>Bundled Libraries<\/h3>\n\n<p>PushAI bundles the following open-source libraries in its <code>vendor\/<\/code> directory. All are MIT-licensed and GPL-compatible.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/github.com\/web-push-libs\/web-push-php\">minishlink\/web-push<\/a> \u2014 Web Push delivery (MIT)<\/li>\n<li><a href=\"https:\/\/github.com\/guzzle\/guzzle\">guzzlehttp\/guzzle<\/a> \u2014 HTTP client used by web-push (MIT)<\/li>\n<li><a href=\"https:\/\/github.com\/web-token\/jwt-framework\">web-token\/jwt-library<\/a> \u2014 JWT signing for VAPID (MIT)<\/li>\n<li><a href=\"https:\/\/github.com\/Spomky-Labs\/base64url\">spomky-labs\/base64url<\/a> \u2014 Base64url encoding (MIT)<\/li>\n<li><a href=\"https:\/\/github.com\/Spomky-Labs\/pki-framework\">spomky-labs\/pki-framework<\/a> \u2014 PKI utilities (MIT)<\/li>\n<li><a href=\"https:\/\/github.com\/brick\/math\">brick\/math<\/a> \u2014 Arbitrary-precision math (MIT)<\/li>\n<li>Various PSR interfaces and Symfony polyfills (MIT)<\/li>\n<\/ul>\n\n<h3>Third-Party Services<\/h3>\n\n<p>PushAI communicates with two categories of external services. No personal data is sent without user action.<\/p>\n\n<h4>Browser push services<\/h4>\n\n<p>When a visitor subscribes and a notification is delivered, the encrypted push payload is sent directly from your server to the browser's native push service:<\/p>\n\n<ul>\n<li><strong>Google Chrome \/ Edge<\/strong> \u2014 Google's Firebase Cloud Messaging (FCM): <a href=\"https:\/\/policies.google.com\/privacy\">Privacy Policy<\/a><\/li>\n<li><strong>Mozilla Firefox<\/strong> \u2014 Mozilla's Autopush service: <a href=\"https:\/\/www.mozilla.org\/en-US\/privacy\/\">Privacy Policy<\/a><\/li>\n<li><strong>Apple Safari<\/strong> \u2014 Apple Push Notification service (APNs): <a href=\"https:\/\/www.apple.com\/legal\/privacy\/\">Privacy Policy<\/a><\/li>\n<\/ul>\n\n<p>This is the Web Push standard (RFC 8030). Only the encrypted notification payload (title, body, URL, optional image) is transmitted; the subscriber's email address or identity is never sent. You control the VAPID keys used to sign each push.<\/p>\n\n<h4>PushAI license API (Pro only)<\/h4>\n\n<p>Sites with a PushAI Pro license send license key verification requests to the PushAI license server at <code>wpushai.com<\/code>. This happens:<\/p>\n\n<ul>\n<li>When the license is first activated.<\/li>\n<li>On a periodic background check (at most once per day) to confirm the license remains valid.<\/li>\n<li>When the admin manually refreshes the license status.<\/li>\n<li>When WordPress checks for Pro plugin updates.<\/li>\n<\/ul>\n\n<p>The request includes your site URL (so the license can be validated against the registered domain) and the license key. No personal data beyond these two values is transmitted. <a href=\"https:\/\/wpushai.com\/en\/privacy-policy\">PushAI Privacy Policy<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/pushai<\/code>, or install it from your WordPress admin, then activate it.<\/li>\n<li>Open <strong>PushAI<\/strong> in the WordPress admin menu.<\/li>\n<li>On the <strong>Settings<\/strong> page, turn on the push service. VAPID credentials are generated automatically.<\/li>\n<li>Add the <code>[pushai_button]<\/code> shortcode to a page, post, or widget so visitors can subscribe.<\/li>\n<li>(Optional) Install <strong>PushAI Pro<\/strong> and activate your license to unlock AI digests, WooCommerce automation, and the built-in PWA.<\/li>\n<\/ol>\n\n<p><strong>Note:<\/strong> Web Push requires HTTPS in production. Browsers also allow <code>localhost<\/code> during development.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20pushai%20need%20a%20third-party%20push%20service%3F\"><h3>Does PushAI need a third-party push service?<\/h3><\/dt>\n<dd><p>No. Notifications are delivered directly from your server using the native Web Push protocol and your own VAPID keys. There is no per-subscriber cost and no external SDK.<\/p><\/dd>\n<dt id=\"where%20are%20subscribers%20stored%3F\"><h3>Where are subscribers stored?<\/h3><\/dt>\n<dd><p>In your own WordPress database. You own your subscriber list.<\/p><\/dd>\n<dt id=\"can%20the%20same%20person%20subscribe%20on%20both%20their%20phone%20and%20their%20computer%3F\"><h3>Can the same person subscribe on both their phone and their computer?<\/h3><\/dt>\n<dd><p>Yes. PushAI keeps one active subscription per device type for each logged-in account \u2014 one mobile and one desktop \u2014 so a visitor can opt in independently on each device and receive notifications on whichever ones they enabled.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20user%20hasn%27t%20subscribed%20to%20browser%20push%3F\"><h3>What happens if a user hasn't subscribed to browser push?<\/h3><\/dt>\n<dd><p>Enable the <strong>email fallback<\/strong> in Settings and registered users without an active push subscription receive the same notification as a responsive HTML email instead. Per-user targeting and exclusions are honoured, users can opt out of these emails from their profile, and guests are never emailed.<\/p><\/dd>\n<dt id=\"does%20it%20add%20tracking%20parameters%20to%20links%3F\"><h3>Does it add tracking parameters to links?<\/h3><\/dt>\n<dd><p>Yes. Every push link is automatically tagged with <code>utm_source<\/code>, <code>utm_medium<\/code>, and a source-aware <code>utm_campaign<\/code> (for example <code>post-42<\/code> or <code>ai-digest<\/code>) so clicks are attributed in Google Analytics and similar tools. You can customize or disable this with the <code>pushai_utm_parameters<\/code> filter.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%3F\"><h3>Does it work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes, with PushAI Pro. Pro can alert admins about new, cancelled, and refunded orders and about low\/out-of-stock products, send order-status changes and order notes to customers, remind customers about abandoned carts, follow up with cross-sell suggestions after a purchase, and push trending products. Customer-facing notifications require the customer to have a WordPress account with an active push subscription.<\/p><\/dd>\n<dt id=\"does%20pushai%20include%20a%20pwa%3F\"><h3>Does PushAI include a PWA?<\/h3><\/dt>\n<dd><p>Yes, with PushAI Pro. Pro can output an installable web-app manifest and register a service worker so visitors can add your site to their home screen, with a configurable app name, icon, and theme color. The free plugin focuses on push delivery.<\/p><\/dd>\n<dt id=\"which%20ai%20providers%20power%20the%20digests%3F\"><h3>Which AI providers power the digests?<\/h3><\/dt>\n<dd><p>PushAI Pro supports OpenAI, Google Gemini, xAI Grok, DeepSeek, and any model available through OpenRouter. Connect an API key for AI-written summaries, or run without one and Pro falls back to a built-in template so digests always send.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20every%20browser%3F\"><h3>Does it work on every browser?<\/h3><\/dt>\n<dd><p>Web Push is supported in modern versions of Chrome, Firefox, Edge, and Safari (including iOS 16.4+ when the site is added to the Home Screen). PushAI only shows the subscribe control where Web Push can be used.<\/p><\/dd>\n<dt id=\"is%20https%20required%3F\"><h3>Is HTTPS required?<\/h3><\/dt>\n<dd><p>Yes, in production. Browsers also allow <code>localhost<\/code> for local development.<\/p><\/dd>\n<dt id=\"how%20many%20subscribers%20and%20notifications%20can%20i%20send%3F\"><h3>How many subscribers and notifications can I send?<\/h3><\/dt>\n<dd><p>Subscribers and notifications are unlimited on both the Free and Pro plans. There is no per-subscriber pricing and no monthly send cap.<\/p><\/dd>\n<dt id=\"does%20it%20cost%20more%20as%20my%20subscriber%20list%20grows%3F\"><h3>Does it cost more as my subscriber list grows?<\/h3><\/dt>\n<dd><p>No. The free plugin is free forever, and Pro is a single flat price ($39\/year) regardless of how many subscribers you have. You only pay for automation and AI features, not for audience size.<\/p><\/dd>\n<dt id=\"is%20pushai%20still%20being%20developed%3F\"><h3>Is PushAI still being developed?<\/h3><\/dt>\n<dd><p>Yes \u2014 actively. PushAI is under continuous development, with new automations, AI providers, and WooCommerce flows shipping regularly. Every release is documented in the changelog, and user feedback shapes the roadmap.<\/p><\/dd>\n<dt id=\"do%20i%20have%20to%20show%20%22powered%20by%22%20branding%3F\"><h3>Do I have to show \"powered by\" branding?<\/h3><\/dt>\n<dd><p>No. PushAI does not add vendor branding to your subscribe control or to the notifications you send.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Self-hosted web push for WordPress &amp; WooCommerce. Unlimited subscribers, no per-subscriber fees. AI digests &amp; Woo automation with Pro.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/333659","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=333659"}],"author":[{"embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/cagriuckan"}],"wp:attachment":[{"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=333659"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=333659"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=333659"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=333659"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=333659"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=333659"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}