{"id":364623,"date":"2026-09-09T13:15:17","date_gmt":"2026-09-09T13:15:17","guid":{"rendered":"https:\/\/tr.wordpress.org\/plugins\/ggpush-web-push\/"},"modified":"2026-09-09T13:15:06","modified_gmt":"2026-09-09T13:15:06","slug":"ggpush-web-push","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/ggpush-web-push\/","author":23561369,"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":"8.0","requires_plugins":null,"header_name":"GGPush Web Push","header_author":"Emre \u00dcnal","header_description":"Self-hosted Web Push notifications for WordPress with a modern subscription panel, automatic VAPID keys, delivery statistics, CTR tracking, manual and automatic notifications, and hardened security controls.","assets_banners_color":"b1b7be","last_updated":"2026-09-09 13:15:06","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.gaziantepgundem.net\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":35,"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":"swelltr","date":"2026-09-09 13:15:06","revision":3688344}},"upgrade_notice":{"1.0.0":"<p>Initial public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3688358,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3688358,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3688358,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3688358,"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":3688358,"resolution":"1","location":"assets","locale":"","width":772,"height":500},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3688358,"resolution":"2","location":"assets","locale":"","width":772,"height":500},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3688358,"resolution":"3","location":"assets","locale":"","width":772,"height":500}},"screenshots":[]},"plugin_section":[],"plugin_tags":[1110,51717,4906,1155,37677],"plugin_category":[],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-364623","plugin","type-plugin","status-publish","hentry","plugin_tags-alerts","plugin_tags-browser-notifications","plugin_tags-notifications","plugin_tags-push-notifications","plugin_tags-web-push","plugin_committers-swelltr"],"banners":{"banner":"https:\/\/ps.w.org\/ggpush-web-push\/assets\/banner-772x250.png?rev=3688358","banner_2x":"https:\/\/ps.w.org\/ggpush-web-push\/assets\/banner-1544x500.png?rev=3688358","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ggpush-web-push\/assets\/icon-128x128.png?rev=3688358","icon_2x":"https:\/\/ps.w.org\/ggpush-web-push\/assets\/icon-256x256.png?rev=3688358","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ggpush-web-push\/assets\/screenshot-1.png?rev=3688358","caption":""},{"src":"https:\/\/ps.w.org\/ggpush-web-push\/assets\/screenshot-2.png?rev=3688358","caption":""},{"src":"https:\/\/ps.w.org\/ggpush-web-push\/assets\/screenshot-3.png?rev=3688358","caption":""}],"raw_content":"<!--section=description-->\n<p>GGPush Web Push adds browser push notifications to WordPress without requiring a separate push-notification SaaS account.<\/p>\n\n<p>The plugin generates VAPID keys on your server, stores browser subscriptions in your WordPress database, and sends encrypted Web Push messages directly from your WordPress server to each subscriber's browser push service.<\/p>\n\n<p>Features include:<\/p>\n\n<ul>\n<li>Modern non-modal subscription panel and animated notification launcher.<\/li>\n<li>Mobile-friendly compact subscription experience.<\/li>\n<li>The launcher is hidden for users who already have an active push subscription.<\/li>\n<li>Automatic VAPID key generation.<\/li>\n<li>Manual push notifications from the WordPress admin area.<\/li>\n<li>Optional automatic notifications when a new post is published.<\/li>\n<li>Push button in the post editor for published posts.<\/li>\n<li>Optional notification image from the WordPress Media Library.<\/li>\n<li>Active subscriber, campaign, successful delivery, failure, click and CTR statistics.<\/li>\n<li>Unique click counting per subscription and campaign.<\/li>\n<li>Automatic removal of expired push endpoints after 404\/410 responses.<\/li>\n<li>HTTPS-only endpoint validation, SSRF protection and REST rate limiting.<\/li>\n<li>VAPID private-key encryption at rest using AES-256-GCM when supported by the server.<\/li>\n<li>No bundled third-party JavaScript or PHP framework.<\/li>\n<\/ul>\n\n<h4>External services and privacy<\/h4>\n\n<p>Web Push requires communication with the push service selected by the visitor's browser. Depending on the browser and operating system, this may be a service operated by Google, Mozilla, Apple, Microsoft, or another browser\/platform provider.<\/p>\n\n<p>The plugin does not contact these services merely because it is installed. A visitor must explicitly click the notification opt-in control and grant browser notification permission before a push subscription is stored. When a site administrator sends a notification, the WordPress server sends the encrypted notification payload to the push endpoint supplied by that visitor's browser.<\/p>\n\n<p>Data involved in Web Push can include the browser-provided push endpoint, public subscription encryption keys, encrypted notification content, and VAPID authentication data. The plugin stores subscriptions and campaign\/click statistics in the site's own WordPress database. It does not send analytics or telemetry to the plugin author.<\/p>\n\n<p>Browser push services are third-party services and are governed by the terms and privacy policies of the visitor's browser\/platform provider. Site owners should describe their use of browser notifications in their own privacy policy where required by applicable law.<\/p>\n\n<h4>Security<\/h4>\n\n<p>GGPush Web Push includes request-size limits, REST rate limits, same-origin checks, strict Web Push key validation, HTTPS-only endpoint validation, public-IP\/DNS validation for outbound push endpoints, <code>wp_safe_remote_post()<\/code> for push delivery, dedicated notification capabilities, signed click tokens and scheduled stale-data cleanup.<\/p>\n\n<p>No software can be guaranteed vulnerability-free. Keep WordPress, PHP and server packages updated and maintain tested backups.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin ZIP through <strong>Plugins &gt; Add New &gt; Upload Plugin<\/strong>, or install it from the WordPress Plugin Directory after approval.<\/li>\n<li>Activate <strong>GGPush Web Push<\/strong>.<\/li>\n<li>Make sure the site is served over HTTPS.<\/li>\n<li>Open <strong>Web Push<\/strong> in the WordPress admin menu.<\/li>\n<li>Confirm that HTTPS, OpenSSL and the automatically generated VAPID key show as ready.<\/li>\n<li>Configure the subscription panel delay and optional automatic notifications.<\/li>\n<li>Test subscription and delivery in a supported browser.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20require%20an%20external%20push-notification%20account%3F\"><h3>Does this require an external push-notification account?<\/h3><\/dt>\n<dd><p>No. The plugin does not require a separate SaaS account. Browser push delivery still uses the push service associated with each visitor's browser, which is part of the Web Push architecture.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20require%20https%3F\"><h3>Does the plugin require HTTPS?<\/h3><\/dt>\n<dd><p>Yes. Browsers require secure contexts for Web Push, with limited development exceptions such as localhost.<\/p><\/dd>\n<dt id=\"does%20it%20use%20composer%20on%20my%20production%20site%3F\"><h3>Does it use Composer on my production site?<\/h3><\/dt>\n<dd><p>No. The distributed plugin does not require a Composer install or an external PHP package at runtime.<\/p><\/dd>\n<dt id=\"what%20does%20%E2%80%9Csuccessful%20delivery%E2%80%9D%20mean%3F\"><h3>What does \u201csuccessful delivery\u201d mean?<\/h3><\/dt>\n<dd><p>It means the browser push service accepted the request. It does not guarantee that the device ultimately displayed the notification to the user.<\/p><\/dd>\n<dt id=\"are%20clicks%20counted%20more%20than%20once%3F\"><h3>Are clicks counted more than once?<\/h3><\/dt>\n<dd><p>Click statistics are deduplicated per subscription and campaign by a signed token and a unique database record.<\/p><\/dd>\n<dt id=\"why%20can%20an%20active%20subscriber%20disappear%3F\"><h3>Why can an active subscriber disappear?<\/h3><\/dt>\n<dd><p>If a push service reports an endpoint as expired or gone with HTTP 404\/410, the plugin removes that invalid subscription automatically.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20telemetry%20to%20the%20author%3F\"><h3>Does the plugin send telemetry to the author?<\/h3><\/dt>\n<dd><p>No. The plugin does not send usage analytics, subscriber data or telemetry to the plugin author.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release based on the hardened, production-tested GGPush codebase.<\/li>\n<li>Self-hosted Web Push delivery with automatic VAPID keys.<\/li>\n<li>Modern non-modal subscription panel and animated launcher.<\/li>\n<li>Manual, automatic and post-editor notification sending.<\/li>\n<li>Delivery, failure, unique click and CTR statistics.<\/li>\n<li>Hardened endpoint validation, rate limiting, signed click tracking and encrypted VAPID private-key storage.<\/li>\n<\/ul>","raw_excerpt":"Self-hosted Web Push notifications for WordPress with a modern subscription panel, automatic VAPID keys, delivery statistics and click tracking.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/364623","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=364623"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/swelltr"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=364623"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=364623"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=364623"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=364623"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=364623"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=364623"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}