[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fhEkqnaES-yJV2fGnCe_1xKCUatff3ewIxwCXZLq2B-o":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":36,"analysis":132,"fingerprints":354},"topic-based-push-notifications-for-firebase","Topic-Based Push Notifications for Firebase","1.0.0","Rizwan Abbasi","https:\u002F\u002Fprofiles.wordpress.org\u002Frizwanabbasi\u002F","\u003Cp>Topic-Based Push Notifications for Firebase enables you to send push notifications from your WordPress admin panel directly to Android mobile applications using Firebase Cloud Messaging (FCM). Perfect for apps that need to notify users about new content, updates, or important announcements.\u003C\u002Fp>\n\u003Ch3>Key Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Topic-Based Targeting\u003C\u002Fstrong>: Send notifications to specific user groups by topic subscription\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Rich Notifications\u003C\u002Fstrong>: Support for images, custom links, and detailed messaging\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Complete Analytics\u003C\u002Fstrong>: Track delivery rates, engagement, and notification performance\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Engagement Tracking\u003C\u002Fstrong>: Monitor when users open notifications with detailed metrics\u003C\u002Fli>\n\u003Cli>\u003Cstrong>History Management\u003C\u002Fstrong>: View all sent notifications with filtering and search capabilities\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Modern Interface\u003C\u002Fstrong>: Clean, responsive admin interface that works on all devices\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Secure Implementation\u003C\u002Fstrong>: Built with WordPress security best practices\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How It Works\u003C\u002Fh3>\n\u003Col>\n\u003Cli>\u003Cstrong>Setup\u003C\u002Fstrong>: Upload your Firebase service account JSON file and configure topics\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Create\u003C\u002Fstrong>: Compose notifications with title, message, optional image, and link\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Target\u003C\u002Fstrong>: Select which topics (user groups) should receive the notification\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Send\u003C\u002Fstrong>: Deliver notifications instantly to all subscribed Android devices\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Track\u003C\u002Fstrong>: Monitor delivery success rates and user engagement in real-time\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Perfect For\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>News and blog websites with mobile apps\u003C\u002Fli>\n\u003Cli>E-commerce stores with Android applications\u003C\u002Fli>\n\u003Cli>Educational platforms with student mobile apps\u003C\u002Fli>\n\u003Cli>Community websites with member applications\u003C\u002Fli>\n\u003Cli>Any WordPress site with an Android companion app\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>What You Need\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Firebase project with FCM enabled\u003C\u002Fli>\n\u003Cli>Service account JSON file from Firebase Console\u003C\u002Fli>\n\u003Cli>Android app configured to receive FCM notifications (topic based). This version doesn’t handle token based notifications.\u003C\u002Fli>\n\u003Cli>WordPress 5.0+ and PHP 7.4+\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>This plugin connects to Google’s Firebase services to send push notifications to mobile applications. External service connections are required for the plugin’s core functionality.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Google OAuth API (oauth2.googleapis.com)\u003C\u002Fstrong>\u003Cbr \u002F>\n* Purpose: Authentication with Firebase Cloud Messaging service\u003Cbr \u002F>\n* Data sent: Service account credentials (from your uploaded JSON file), authentication tokens\u003Cbr \u002F>\n* When: Every time notifications are sent (to obtain access tokens)\u003Cbr \u002F>\n* Terms of Service: https:\u002F\u002Fdevelopers.google.com\u002Fterms\u003Cbr \u002F>\n* Privacy Policy: https:\u002F\u002Fpolicies.google.com\u002Fprivacy\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Firebase Cloud Messaging API (fcm.googleapis.com)\u003C\u002Fstrong>\u003Cbr \u002F>\n* Purpose: Sending push notifications to Android mobile applications\u003Cbr \u002F>\n* Data sent: Notification content (title, message, image URLs, links), target topics, FCM project ID\u003Cbr \u002F>\n* When: When you send notifications through the plugin interface\u003Cbr \u002F>\n* Terms of Service: https:\u002F\u002Ffirebase.google.com\u002Fterms\u003Cbr \u002F>\n* Privacy Policy: https:\u002F\u002Fpolicies.google.com\u002Fprivacy\u003C\u002Fp>\n\u003Ch3>Privacy & Data\u003C\u002Fh3>\n\u003Cp>This plugin processes notification data locally on your WordPress installation. Notifications are sent directly to Google’s Firebase Cloud Messaging service.\u003C\u002Fp>\n\u003Cp>No user data is collected or sent to services other than Google\u002FFirebase for notification delivery. Your Firebase service account credentials are stored securely on your server.\u003C\u002Fp>\n\u003Ch3>Developers\u003C\u002Fh3>\n\u003Cp>The plugin includes hooks and filters for developers to extend functionality:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>tbpn_before_send_notification\u003C\u002Fcode> – Filter notification data before sending\u003C\u002Fli>\n\u003Cli>\u003Ccode>tbpn_after_send_notification\u003C\u002Fcode> – Action after notification is sent\u003C\u002Fli>\n\u003Cli>\u003Ccode>tbpn_notification_response\u003C\u002Fcode> – Filter FCM response data\u003C\u002Fli>\n\u003Cli>REST API endpoint for mobile apps to report engagement\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Technical Details\u003C\u002Fh3>\n\u003Ch3>System Requirements\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>WordPress 5.0 or higher\u003C\u002Fli>\n\u003Cli>PHP 7.4 or higher\u003C\u002Fli>\n\u003Cli>MySQL 5.6 or MariaDB 10.0\u003C\u002Fli>\n\u003Cli>SSL certificate (recommended for production)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>File Permissions\u003C\u002Fh3>\n\u003Cp>The plugin creates a secure upload directory for Firebase service account files. Ensure your WordPress uploads directory is writable.\u003C\u002Fp>\n\u003Ch3>Database Tables\u003C\u002Fh3>\n\u003Cp>The plugin creates two tables:\u003Cbr \u002F>\n* \u003Ccode>wp_tbpn_notifications\u003C\u002Fcode> – Stores notification history and analytics\u003Cbr \u002F>\n* \u003Ccode>wp_tbpn_engagements\u003C\u002Fcode> – Tracks user engagement with notifications\u003C\u002Fp>\n\u003Ch3>REST API Endpoints\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ccode>POST \u002Fwp-json\u002Fmn\u002Fv1\u002Fengage\u003C\u002Fcode> – Report notification engagement (for mobile apps)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Hooks for Developers\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Actions:\u003C\u002Fstrong>\u003Cbr \u002F>\n* \u003Ccode>tbpn_notification_sent\u003C\u002Fcode> – Triggered after notification is sent\u003Cbr \u002F>\n* \u003Ccode>tbpn_notification_failed\u003C\u002Fcode> – Triggered when notification sending fails\u003Cbr \u002F>\n* \u003Ccode>tbpn_engagement_recorded\u003C\u002Fcode> – Triggered when engagement is recorded\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Filters:\u003C\u002Fstrong>\u003Cbr \u002F>\n* \u003Ccode>tbpn_notification_data\u003C\u002Fcode> – Filter notification data before sending\u003Cbr \u002F>\n* \u003Ccode>tbpn_topics_list\u003C\u002Fcode> – Filter available topics\u003Cbr \u002F>\n* \u003Ccode>tbpn_max_notifications_per_hour\u003C\u002Fcode> – Filter rate limiting\u003C\u002Fp>\n\u003Ch3>Security Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Nonce verification for all forms\u003C\u002Fli>\n\u003Cli>Capability checks for admin actions\u003C\u002Fli>\n\u003Cli>SQL injection prevention with prepared statements\u003C\u002Fli>\n\u003Cli>XSS prevention with proper output escaping\u003C\u002Fli>\n\u003Cli>Secure file upload handling\u003C\u002Fli>\n\u003Cli>Rate limiting for notification sending\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For support, feature requests, or bug reports, please use the WordPress.org support forums.\u003C\u002Fp>\n\u003Cp>For documentation and updates, visit the plugin homepage.\u003C\u002Fp>\n\u003Ch3>Contributing\u003C\u002Fh3>\n\u003Cp>This plugin is open source. Contributions, bug reports, and feature requests are welcome on the plugin’s development repository.\u003C\u002Fp>\n","Professional WordPress plugin for sending Firebase Cloud Messaging (FCM) push notifications to Android apps with advanced targeting and analytics.",0,218,"2025-09-23T05:00:00.000Z","6.8.5","5.0","7.4",[18,19,20,21,22],"android","fcm","firebase","mobile","push-notifications","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ftopic-based-push-notifications-for-firebase\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftopic-based-push-notifications-for-firebase.1.0.0.zip",100,null,"2026-03-15T15:16:48.613Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":32,"avg_security_score":25,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},"rizwanabbasi",2,10,30,94,"2026-04-04T10:37:01.551Z",[37,59,80,97,110],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":45,"downloaded":46,"rating":47,"num_ratings":48,"last_updated":49,"tested_up_to":50,"requires_at_least":51,"requires_php":52,"tags":53,"homepage":56,"download_link":57,"security_score":58,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"fcm-push-notification-from-wp","FCM Push Notification from WP","1.9.1","Paulo Miranda","https:\u002F\u002Fprofiles.wordpress.org\u002Fdprogrammer\u002F","\u003Cp>Notifications for posts, pages and custom post types.\u003C\u002Fp>\n\u003Cp>Works with scheduled posts.\u003C\u002Fp>\n\u003Cp>Send notifications to users of your app from your website using Google’s service, Firebase Push Notification.\u003C\u002Fp>\n\u003Cp>The notification sent includes the block with the data message to be handled by the application, even when it is in the background.\u003C\u002Fp>\n\u003Cp>Configure the plugin to start sending notifications.\u003C\u002Fp>\n\u003Cp>Send custom field values ​​in the notification, in the data option.\u003C\u002Fp>\n\u003Cp>Send a notification when you post news or update your content. When editing, the option is deselected to send you to accidentally send a new notification. Check if you want to send a new notification when editing.\u003C\u002Fp>\n\u003Cp>Compatible with apps developed with the SDK Flutter.\u003C\u002Fp>\n\u003Cp>You need to register users on the same topic (fcm) that was informed in the plugin configuration. This plugin is not intended for sending notifications to websites.\u003C\u002Fp>\n\u003Cp>Support my work\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwww.buymeacoffee.com\u002Fdprogrammer\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.buymeacoffee.com\u002Fdprogrammer\u003C\u002Fa>\u003C\u002Fp>\n","Notify your users using Firebase Cloud Messaging (FCM) when content is published or updated.",600,14357,86,6,"2024-06-23T18:34:00.000Z","6.5.8","4.6","5.6.20",[18,19,20,54,55],"notification","push","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffcm-push-notification-from-wp.zip",92,{"slug":60,"name":61,"version":62,"author":63,"author_profile":64,"description":65,"short_description":66,"active_installs":67,"downloaded":68,"rating":25,"num_ratings":31,"last_updated":56,"tested_up_to":69,"requires_at_least":70,"requires_php":71,"tags":72,"homepage":77,"download_link":78,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":79},"pd-android-fcm","pd Android FCM Push Notification","1.1.8","Proficient Designers","https:\u002F\u002Fprofiles.wordpress.org\u002Fproficientdesigners\u002F","\u003Cp>pd Android FCM Push Notification is a plugin through which you can send push notifications directly from your WordPress site to android devices via \u003Ca href='https:\u002F\u002Ffirebase.google.com\u002F' rel=\"nofollow ugc\">Firebase Cloud Messaging\u003C\u002Fa> service. When a new blog is posted or existing blog is updated, a push notification sent to android device.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features Included:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Can send push notification for each blog post.\u003C\u002Fli>\n\u003Cli>Even can send custom notifications to the registered devices.\u003C\u002Fli>\n\u003Cli>Devices are subscribed in category wise, so that the notifications can also be sent based on the category.\u003C\u002Fli>\n\u003Cli>Featured image support is available (above android version 4.4).\u003C\u002Fli>\n\u003Cli>Push notifications can be scheduled.\u003C\u002Fli>\n\u003Cli>A checkbox is available at the right side to choose whether to send push notification in post publish or update.\u003C\u002Fli>\n\u003Cli>For more documentation and screenshots, please visit \u003Ca href=\"https:\u002F\u002Fproficientdesigners.in\u002Fcreations\u002Fpd-android-fcm-push-notification\u002F\" rel=\"nofollow ugc\">proficientdesigners.in\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Demo:\u003C\u002Fstrong>\u003Cbr \u002F>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F_fffaw9fFwY?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Using 3rd party service:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Please note that this plugin is relying on a 3rd party service, which is the Google Firebase Cloud Messaging service (FCM) and your data is being sent through their servers via HTTP API \u003Cem>(https:\u002F\u002Ffcm.googleapis.com\u002Ffcm\u002Fsend)\u003C\u002Fem>. This is very legal to use the  Google Firebase Cloud Messaging service (FCM), based on their terms and conditions \u003Ca href='https:\u002F\u002Ffirebase.google.com\u002Fterms\u002F' rel=\"nofollow ugc\">https:\u002F\u002Ffirebase.google.com\u002Fterms\u002F\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Demo Android App:\u003C\u002Fstrong>\u003Cbr \u002F>\nWe have a demo android app in the Google Play Store for this plugin’s testing purpose. You can get the link from our official documentation page.\u003C\u002Fp>\n","pd Android FCM Push Notification is a plugin through which you can send push notifications directly from your WordPress site to android devices via Fi &hellip;",20,73124,"5.5.18","4.0","5.6",[73,19,74,75,76],"android-push-notification","google-firebase-cloud-messaging-service","push-notification","send-push-notification-from-wordpress-site-to-android-devices","https:\u002F\u002Fproficientdesigners.in\u002Fcreations\u002Fpd-android-fcm-push-notification\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpd-android-fcm.1.1.8.zip","2026-03-15T10:48:56.248Z",{"slug":81,"name":82,"version":83,"author":84,"author_profile":85,"description":86,"short_description":87,"active_installs":32,"downloaded":88,"rating":25,"num_ratings":31,"last_updated":89,"tested_up_to":90,"requires_at_least":91,"requires_php":56,"tags":92,"homepage":56,"download_link":95,"security_score":96,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"pushbullet-notification","Pushbullet Notifications for WordPress","1.3.6","ploufs","https:\u002F\u002Fprofiles.wordpress.org\u002Fploufs\u002F","\u003Cp>Using the Pushbullet Notifications application on your Android device in conjunction with your WordPress blog and this plugin, you can be notified of events happening on your blog as Push Notifications on your mobile device.\u003C\u002Fp>\n\u003Cp>Currently supports notifications for new users, comments, pingback\u002Ftrackbacks, user specific password reset notifications, plugin and theme upgrades, core upgrades.\u003C\u002Fp>\n","Pushbullet Notifications allows your WordPress site to send push notifications straight to your Android and iOS device.",3022,"2014-05-19T20:12:00.000Z","3.9.40","3.0",[18,93,21,22,94],"ios","pushbullet-notifications","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpushbullet-notification.1.3.6.zip",85,{"slug":98,"name":99,"version":6,"author":100,"author_profile":101,"description":102,"short_description":103,"active_installs":11,"downloaded":104,"rating":11,"num_ratings":11,"last_updated":56,"tested_up_to":105,"requires_at_least":106,"requires_php":107,"tags":108,"homepage":56,"download_link":109,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":79},"pusher-pushing-mobile-notifications-with-fcm","Pusher – Pushing mobile notification with FCM","Kemal YAZICI","https:\u002F\u002Fprofiles.wordpress.org\u002Fkyazici\u002F","\u003Cp>Has your wordpress website a mobile application? Do you want to push notifications from wordpress website to your application?\u003Cbr \u002F>\nPusher plugin can achieve this job if you use Firebase Cloud Messaging in your application.\u003Cbr \u002F>\nIf you make the settings in the mobile application correctly, the plugin will push a notification in every new post.\u003C\u002Fp>\n\u003Cp>You can find all Firebase Cloud Messaging related information at \u003Ca href=\"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fcloud-messaging\" rel=\"nofollow ugc\">this address.\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>How to push notification to mobile app\u003C\u002Fh3>\n\u003Cp>You can send a notification to all users who have subscribed to the topic you set from within your application.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fcloud-messaging\u002Fios\u002Ftopic-messaging\" rel=\"nofollow ugc\">Send messages to topics on iOS\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fcloud-messaging\u002Fandroid\u002Ftopic-messaging\" rel=\"nofollow ugc\">Topic messaging on Android\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","If your wordpress site has a mobile application, you can push a notification to the users of your mobile application via this plugin.",1153,"5.7.15","4.7","5.2",[18,20,93,21,54],"https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpusher-pushing-mobile-notifications-with-fcm.1.0.0.zip",{"slug":111,"name":112,"version":113,"author":114,"author_profile":115,"description":116,"short_description":117,"active_installs":118,"downloaded":119,"rating":47,"num_ratings":120,"last_updated":121,"tested_up_to":122,"requires_at_least":123,"requires_php":56,"tags":124,"homepage":128,"download_link":129,"security_score":130,"vuln_count":31,"unpatched_count":11,"last_vuln_date":131,"fetched_at":27},"onesignal-free-web-push-notifications","OneSignal – Web Push Notifications","3.8.0","OneSignal Push Notifications","https:\u002F\u002Fprofiles.wordpress.org\u002Fonesignal\u002F","\u003Cp>\u003Ca href=\"https:\u002F\u002Fonesignal.com\" rel=\"nofollow ugc\">OneSignal\u003C\u002Fa> is an easy way to increase user engagement. Use OneSignal to send visitors targeted push notifications so they keep coming back. It takes just a few minutes to install.\u003C\u002Fp>\n\u003Cp>As a WordPress VIP Gold Partner, OneSignal has been rigorously tested to handle even the highest volume use cases with reliability and ease of use.\u003C\u002Fp>\n\u003Cp>After setup, your visitors opt-in to receive push notifications when you publish a new post. Visitors receive these notifications even after they’ve left your website, thus driving re-engagement.\u003C\u002Fp>\n\u003Cp>You can configure notification delivery at preset intervals, create user segments, and customize the opt-in process for visitors.\u003C\u002Fp>\n\u003Cp>OneSignal’s free plan allows targeting up to 10,000 subscribers with push notifications. Contact support@onesignal.com if you have any questions. We’d love to hear from you!\u003C\u002Fp>\n\u003Ch4>Company\u003C\u002Fh4>\n\u003Cp>OneSignal is trusted by over 1.8M+ developers and marketing strategists. We power push notifications for everyone from early stage startups to Fortune 500 Companies, sending over 6 billion notifications per day. It is the most popular push notification plugin on WordPress with 100,000+ installations.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>Supports Chrome\u003C\u002Fstrong> (Desktop & Android), \u003Cstrong>Safari\u003C\u002Fstrong> (Mac OS X), \u003Cstrong>Microsoft Edge\u003C\u002Fstrong> (Desktop & Android), \u003Cstrong>Opera\u003C\u002Fstrong> (Desktop & Android) and \u003Cstrong>Firefox\u003C\u002Fstrong> (Desktop & Android) on both HTTP and HTTPS sites.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Automatic Notifications\u003C\u002Fstrong> – Send notifications to followers every time you publish a new post. Or set up a reminder that gets automatically sent to them if they haven’t visited for a few days.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Targeting Segments\u003C\u002Fstrong> – Send notifications to specific visitors based on language, number of times they’ve visited your blog, or even set up your own user attributes that you can target.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Opt-In Customization\u003C\u002Fstrong> – Choose when and how to ask your visitors to opt-in to browser notifications. Customize the prompt they first see.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Real Time Analytics\u003C\u002Fstrong> – See your notifications being delivered in real time, and watch them as they convert into visitors.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>A\u002FB Testing\u003C\u002Fstrong> – Try out different messages to a smaller set of your visitors to figure out which messages are more effective and then send the more effective message to the rest of your visitors!\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Scheduled Notifications\u003C\u002Fstrong> – Schedule notifications to be delivered in the future, based on a user’s time zone, or even based on the same time of day they last visited your website.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n","Increase engagement and drive more repeat traffic to your WordPress site with push notifications. Now a WordPress VIP Gold Partner.",70000,5069120,361,"2026-01-22T23:02:00.000Z","6.9.4","3.8",[125,126,127,75,22],"chrome-push","desktop-notifications","mobile-notifications","https:\u002F\u002Fonesignal.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fonesignal-free-web-push-notifications.3.8.0.zip",98,"2025-12-15 02:15:21",{"attackSurface":133,"codeSignals":214,"taintFlows":281,"riskAssessment":348,"analyzedAt":353},{"hooks":134,"ajaxHandlers":193,"restRoutes":200,"shortcodes":209,"cronEvents":210,"entryPointCount":31,"unprotectedCount":11},[135,141,145,149,153,157,161,165,169,173,177,179,183,185,190],{"type":136,"name":137,"callback":138,"file":139,"line":140},"action","plugins_loaded","load_textdomain","topic-based-push-notifications-for-firebase.php",241,{"type":136,"name":142,"callback":143,"file":139,"line":144},"init","init_hooks",242,{"type":136,"name":146,"callback":147,"file":139,"line":148},"rest_api_init","register_rest_routes",257,{"type":136,"name":150,"callback":151,"file":139,"line":152},"admin_menu","admin_menus",261,{"type":136,"name":154,"callback":155,"file":139,"line":156},"admin_enqueue_scripts","enqueue_admin_assets",262,{"type":136,"name":158,"callback":159,"file":139,"line":160},"admin_post_tbpn_send","handle_send",263,{"type":136,"name":162,"callback":163,"file":139,"line":164},"admin_post_tbpn_delete","handle_delete",264,{"type":136,"name":166,"callback":167,"file":139,"line":168},"admin_post_tbpn_save_settings","handle_save_settings",265,{"type":136,"name":170,"callback":171,"file":139,"line":172},"admin_post_tbpn_test_fcm","handle_test_fcm",266,{"type":136,"name":174,"callback":175,"file":139,"line":176},"admin_post_tbpn_recreate_tables","handle_recreate_tables",267,{"type":136,"name":146,"callback":147,"file":139,"line":178},268,{"type":136,"name":180,"callback":181,"file":139,"line":182},"admin_notices","closure",365,{"type":136,"name":180,"callback":181,"file":139,"line":184},374,{"type":186,"name":187,"callback":188,"file":139,"line":189},"filter","upload_mimes","allow_json_uploads",1350,{"type":136,"name":137,"callback":191,"file":139,"line":192},"tbpn_init",1958,[194],{"action":195,"nopriv":196,"callback":197,"hasNonce":198,"hasCapCheck":198,"file":139,"line":199},"tbpn_get_notification_details",false,"ajax_get_notification_details",true,269,[201],{"namespace":202,"route":203,"methods":204,"callback":206,"permissionCallback":207,"file":139,"line":208},"tbpn\u002Fv1","\u002Fengage",[205],"POST","handle_engagement","verify_engagement_permission",1871,[],[211],{"hook":212,"callback":212,"file":139,"line":213},"tbpn_cleanup_old_notifications",302,{"dangerousFunctions":215,"sqlUsage":216,"outputEscaping":270,"fileOperations":278,"externalRequests":31,"nonceChecks":48,"capabilityChecks":279,"bundledLibraries":280},[],{"prepared":217,"raw":218,"locations":219},8,23,[220,223,225,228,231,233,235,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268],{"file":139,"line":221,"context":222},339,"$wpdb->query() with variable interpolation",{"file":139,"line":224,"context":222},340,{"file":139,"line":226,"context":227},708,"$wpdb->get_results() with variable interpolation",{"file":139,"line":229,"context":230},748,"$wpdb->get_var() with variable interpolation",{"file":139,"line":232,"context":230},753,{"file":139,"line":234,"context":230},757,{"file":139,"line":236,"context":237},765,"$wpdb->get_row() with variable interpolation",{"file":139,"line":239,"context":227},780,{"file":139,"line":241,"context":237},809,{"file":139,"line":243,"context":230},824,{"file":139,"line":245,"context":227},860,{"file":139,"line":247,"context":227},882,{"file":139,"line":249,"context":237},933,{"file":139,"line":251,"context":227},949,{"file":139,"line":253,"context":230},1106,{"file":139,"line":255,"context":230},1110,{"file":139,"line":257,"context":230},1113,{"file":139,"line":259,"context":230},1147,{"file":139,"line":261,"context":227},1518,{"file":139,"line":263,"context":222},1521,{"file":139,"line":265,"context":222},1522,{"file":267,"line":67,"context":222},"uninstall.php",{"file":267,"line":269,"context":222},21,{"escaped":271,"rawEcho":31,"locations":272},161,[273,276],{"file":139,"line":274,"context":275},366,"raw output",{"file":139,"line":277,"context":275},375,3,11,[],[282,301,322,332],{"entryPoint":283,"graph":284,"unsanitizedCount":11,"severity":300},"\u003Cdashboard> (templates\\dashboard.php:0)",{"nodes":285,"edges":298},[286,292],{"id":287,"type":288,"label":289,"file":290,"line":291},"n0","source","$_GET","templates\\dashboard.php",187,{"id":293,"type":294,"label":295,"file":290,"line":296,"wp_function":297},"n1","sink","echo() [XSS]",189,"echo",[299],{"from":287,"to":293,"sanitized":198},"low",{"entryPoint":302,"graph":303,"unsanitizedCount":11,"severity":300},"ajax_get_notification_details (topic-based-push-notifications-for-firebase.php:1028)",{"nodes":304,"edges":319},[305,308,312,314],{"id":287,"type":288,"label":306,"file":139,"line":307},"$_POST",1039,{"id":293,"type":294,"label":309,"file":139,"line":310,"wp_function":311},"get_row() [SQLi]",1048,"get_row",{"id":313,"type":288,"label":306,"file":139,"line":307},"n2",{"id":315,"type":294,"label":316,"file":139,"line":317,"wp_function":318},"n3","get_results() [SQLi]",1058,"get_results",[320,321],{"from":287,"to":293,"sanitized":198},{"from":313,"to":315,"sanitized":198},{"entryPoint":323,"graph":324,"unsanitizedCount":11,"severity":300},"render_history_page (topic-based-push-notifications-for-firebase.php:1134)",{"nodes":325,"edges":330},[326,328],{"id":287,"type":288,"label":289,"file":139,"line":327},1143,{"id":293,"type":294,"label":316,"file":139,"line":329,"wp_function":318},1151,[331],{"from":287,"to":293,"sanitized":198},{"entryPoint":333,"graph":334,"unsanitizedCount":11,"severity":300},"\u003Ctopic-based-push-notifications-for-firebase> (topic-based-push-notifications-for-firebase.php:0)",{"nodes":335,"edges":344},[336,337,338,339,340,342],{"id":287,"type":288,"label":306,"file":139,"line":307},{"id":293,"type":294,"label":309,"file":139,"line":310,"wp_function":311},{"id":313,"type":288,"label":306,"file":139,"line":307},{"id":315,"type":294,"label":316,"file":139,"line":317,"wp_function":318},{"id":341,"type":288,"label":289,"file":139,"line":327},"n4",{"id":343,"type":294,"label":316,"file":139,"line":329,"wp_function":318},"n5",[345,346,347],{"from":287,"to":293,"sanitized":198},{"from":313,"to":315,"sanitized":198},{"from":341,"to":343,"sanitized":198},{"summary":349,"deductions":350},"The 'topic-based-push-notifications-for-firebase' plugin v1.0.0 exhibits a generally strong security posture based on the provided static analysis and vulnerability history.  The plugin demonstrates good adherence to WordPress security best practices, with all identified entry points (AJAX handlers and REST API routes) appearing to have proper authentication and permission checks in place.  The code analysis reveals a high percentage of properly escaped output and a good use of prepared statements for SQL queries, minimizing risks related to cross-site scripting (XSS) and SQL injection. The absence of critical or high-severity taint flows further strengthens this positive assessment.\n\nDespite the positive findings, there are a few minor areas that could be improved. The plugin uses raw SQL in 26% of its queries, which, while not critically flawed given the presence of other security measures, represents a potential area for future vulnerabilities if not carefully managed. The presence of file operations and external HTTP requests, though not flagged as problematic in this analysis, warrants ongoing vigilance as these can sometimes be vectors for attack. The plugin's vulnerability history is clean, with no known CVEs, which suggests a well-maintained codebase or a short history.  Overall, this plugin appears to be built with security in mind, offering a good level of protection with minimal identified risks.",[351],{"reason":352,"points":217},"SQL queries not using prepared statements","2026-03-17T06:11:17.861Z",{"wat":355,"direct":374},{"assetPaths":356,"generatorPatterns":369,"scriptPaths":370,"versionParams":371},[357,358,359,360,361,362,363,364,365,366,367,368],"\u002Fwp-content\u002Fplugins\u002Ftopic-based-push-notifications-for-firebase\u002Fassets\u002Fcss\u002Fbootstrap.min.css","\u002Fwp-content\u002Fplugins\u002Ftopic-based-push-notifications-for-firebase\u002Fassets\u002Fcss\u002Fbootstrap-icons.css","\u002Fwp-content\u002Fplugins\u002Ftopic-based-push-notifications-for-firebase\u002Fassets\u002Fcss\u002Ffontawesome.min.css","\u002Fwp-content\u002Fplugins\u002Ftopic-based-push-notifications-for-firebase\u002Fassets\u002Fcss\u002Fjquery-confirm.min.css","\u002Fwp-content\u002Fplugins\u002Ftopic-based-push-notifications-for-firebase\u002Fassets\u002Fcss\u002Fselect2.min.css","\u002Fwp-content\u002Fplugins\u002Ftopic-based-push-notifications-for-firebase\u002Fassets\u002Fcss\u002Fstyle.css","\u002Fwp-content\u002Fplugins\u002Ftopic-based-push-notifications-for-firebase\u002Fassets\u002Fjs\u002Fbootstrap.bundle.min.js","\u002Fwp-content\u002Fplugins\u002Ftopic-based-push-notifications-for-firebase\u002Fassets\u002Fjs\u002Fjquery-confirm.min.js","\u002Fwp-content\u002Fplugins\u002Ftopic-based-push-notifications-for-firebase\u002Fassets\u002Fjs\u002Fselect2.min.js","\u002Fwp-content\u002Fplugins\u002Ftopic-based-push-notifications-for-firebase\u002Fassets\u002Fjs\u002Ftinymce.min.js","\u002Fwp-content\u002Fplugins\u002Ftopic-based-push-notifications-for-firebase\u002Fassets\u002Fjs\u002Ftopic-based-push-notifications-for-firebase.js","\u002Fwp-content\u002Fplugins\u002Ftopic-based-push-notifications-for-firebase\u002Fassets\u002Fjs\u002Fscript.js",[],[363,364,365,366,367,368],[372,373],"\u002Fwp-content\u002Fplugins\u002Ftopic-based-push-notifications-for-firebase\u002Fassets\u002Fcss\u002Fstyle.css?ver=","\u002Fwp-content\u002Fplugins\u002Ftopic-based-push-notifications-for-firebase\u002Fassets\u002Fjs\u002Ftopic-based-push-notifications-for-firebase.js?ver=",{"cssClasses":375,"htmlComments":406,"htmlAttributes":419,"restEndpoints":424,"jsGlobals":431,"shortcodeOutput":438},[376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405],"tbpn-admin-wrap","tbpn-notification-settings","tbpn-notification-preview","tbpn-form-group","tbpn-control-label","tbpn-notification-content","tbpn-topics-list","tbpn-topic-item","tbpn-topic-name","tbpn-topic-actions","tbpn-add-topic-form","tbpn-topic-input","tbpn-add-topic-button","tbpn-push-log-table","tbpn-log-entry","tbpn-log-details","tbpn-log-timestamp","tbpn-log-message","tbpn-log-status","tbpn-analytics-dashboard","tbpn-stat-card","tbpn-stat-value","tbpn-stat-label","tbpn-notification-sending-form","tbpn-fcm-config-section","tbpn-api-key-input","tbpn-service-account-textarea","tbpn-save-settings-button","tbpn-test-notification-button","tbpn-ajax-response-message",[407,408,409,410,411,412,413,414,415,416,417,418],"\u003C!-- TBPN Admin Wrap Start -->","\u003C!-- TBPN Notification Settings Form -->","\u003C!-- TBPN Notification Preview Area -->","\u003C!-- TBPN Topics Management Section -->","\u003C!-- TBPN Add New Topic Form -->","\u003C!-- TBPN Push Notification Log -->","\u003C!-- TBPN Analytics Dashboard -->","\u003C!-- TBPN FCM Configuration Section -->","\u003C!-- TBPN API Key Input -->","\u003C!-- TBPN Service Account JSON Input -->","\u003C!-- TBPN Save Settings Button -->","\u003C!-- TBPN Test Notification Button -->",[420,421,422,423],"data-tbpn-nonce","data-tbpn-action","data-topic-id","data-tbpn-delete-topic-nonce",[425,426,427,428,429,430],"\u002Fwp-json\u002Ftbpn\u002Fv1\u002Fsend-notification","\u002Fwp-json\u002Ftbpn\u002Fv1\u002Fget-topics","\u002Fwp-json\u002Ftbpn\u002Fv1\u002Fadd-topic","\u002Fwp-json\u002Ftbpn\u002Fv1\u002Fdelete-topic","\u002Fwp-json\u002Ftbpn\u002Fv1\u002Fget-logs","\u002Fwp-json\u002Ftbpn\u002Fv1\u002Fget-analytics",[432,433,434,435,436,437],"TBPN_Admin","TBPN_Ajax","TBPN_NotificationSender","TBPN_TopicManager","TBPN_Logger","TBPN_Analytics",[]]