All Projects → perfectyorg → perfecty-push-wp

perfectyorg / perfecty-push-wp

Licence: GPL-2.0 license
WordPress plugin for self-hosted Web Push Notifications ⚡️

Programming Languages

PHP
23972 projects - #3 most used programming language
CSS
56736 projects
shell
77523 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to perfecty-push-wp

acf-swatch
ACF Color Swatch Field
Stars: ✭ 67 (+109.38%)
Mutual labels:  wordpress-plugin
aioapns
An efficient APNs Client Library for Python/asyncio
Stars: ✭ 60 (+87.5%)
Mutual labels:  push-notifications
spoken-word
Spoken Word
Stars: ✭ 46 (+43.75%)
Mutual labels:  wordpress-plugin
wp-better-emails
Adds a customizable good looking HTML template to all WP default plain/text emails and lets you set a custom sender name and email address.
Stars: ✭ 41 (+28.13%)
Mutual labels:  wordpress-plugin
wp-video-embed-privacy
Wordpress plugin for making ebedding videos GDPR compliant
Stars: ✭ 33 (+3.13%)
Mutual labels:  wordpress-plugin
book-review-library
A book cataloguing and review system designed with bookophiles and librarians in mind.
Stars: ✭ 13 (-59.37%)
Mutual labels:  wordpress-plugin
wordpress-ostatus
An OStatus plugin for WordPress
Stars: ✭ 21 (-34.37%)
Mutual labels:  wordpress-plugin
wp-dispensary
🌿 WP Dispensary - online menu management for dispensaries
Stars: ✭ 60 (+87.5%)
Mutual labels:  wordpress-plugin
wp-useronline
Enable you to display how many users are online on your WordPress blog with detailed statistics.
Stars: ✭ 37 (+15.63%)
Mutual labels:  wordpress-plugin
host-webfonts-locally
OMGF automagically caches the Google Fonts used by your theme/plugins locally. No configuration (or brains) required!
Stars: ✭ 13 (-59.37%)
Mutual labels:  wordpress-plugin
SEPA
Get notifications about changes in your SPARQL endpoint.
Stars: ✭ 21 (-34.37%)
Mutual labels:  push-notifications
Inactive-Logout
Development copy from the WordPress repository. Will release here first.
Stars: ✭ 19 (-40.62%)
Mutual labels:  wordpress-plugin
wp-block-description-list
A wordpress gutenberg block plugin for description lists.
Stars: ✭ 17 (-46.87%)
Mutual labels:  wordpress-plugin
sign-in-with-apple
A WordPress plugin for Sign In with Apple
Stars: ✭ 47 (+46.88%)
Mutual labels:  wordpress-plugin
wp-rest-blocks
Add gutenberg blocks data into post / page / widget REST API endpoints.
Stars: ✭ 86 (+168.75%)
Mutual labels:  wordpress-plugin
apiservices
.NET API services - Managed Push Notifications, Email Engine (Templates, loading, & sending), & Localization Abstractions
Stars: ✭ 25 (-21.87%)
Mutual labels:  push-notifications
woocommerce-dadata
WooCommerce DaData
Stars: ✭ 22 (-31.25%)
Mutual labels:  wordpress-plugin
WP-Stash
Bridge between WordPress and StashPHP, providing a PSR6-compliant caching system for WordPress
Stars: ✭ 31 (-3.12%)
Mutual labels:  wordpress-plugin
advanced-responsive-video-embedder
Probably the the best WP plugin for embedding videos.
Stars: ✭ 32 (+0%)
Mutual labels:  wordpress-plugin
webpush-example
A basic push notifications app built on Laravel and Vanilla Javascript.
Stars: ✭ 26 (-18.75%)
Mutual labels:  push-notifications

Perfecty Push WP Plugin ⚡️

tests deployment License PHP compatibility WP compatibility

Self-hosted Push Notifications from your Wordpress server for free! 🥳

Perfecty Push for Wordpress

Perfecty Push WP is an Open Source plugin for WordPress that allows you to send web Push Notifications directly from your server: No hidden fees, no third-party dependencies and you own your data. 👏

Install it now: https://wordpress.org/plugins/perfecty-push-notifications/

More information about the project: https://perfecty.org/

Features

  • Open Source, send Push Notifications from your server for free!
  • 10.000 notifications/minute in a 2 GB, 1vCPU host. Can achieve better performance with better specs.
  • PWA compatible / AMP (Transitional)
  • Can be called by other plugins using the Perfecty_Push_Integration class
  • No third-party dependencies
  • Migrate users from other push services like OneSignal
  • Send push notifications on posts publishing
  • Customize the public widget
  • The user authorization tokens stay in your server
  • Offline browser notifications through Push API (Safari is not supported yet)
  • Built-in Push Server based on web-push-php

Requirements 🧩

  • PHP >= 7.2
  • gmp extension for message encryption (optional)

Note: The gmp extension is optional and recommended for better performance.

Documentation

https://docs.perfecty.org/

External integrations 🛸

You can use and extend Perfecty Push Notifications from third party plugins or your own code.

Send notifications through Perfecty Push

You can use the Perfecty_Push_Integration class to send Push Notifications from other plugins:

  • Perfecty_Push_Integration::notify( $wp_user_id, $message, $title = '', $image_url = '', $url_to_open = '' ) Send a notification to a registered WordPress user. If the user has multiple devices, it will send the notification to all the devices the user has subscribed.

  • Perfecty_Push_Integration::broadcast( $message, $title = '', $image_url = '', $url_to_open = '' ) Schedule a broadcast notification that will be sent to all the Push Notifications users.

Hooks

  • perfecty_push_broadcast_scheduled($payload) executed when a broadcast notification has been scheduled. You have access to the provided payload.

  • perfecty_push_wp_user_notified($payload, $wp_user_id) executed when a notification has been sent to a WordPress user. You have access to the provided payload and WP User ID.

Filters

  • perfecty_push_custom_payload($payload) use this filter to customize the $payload array content. More information about the payload array here.

Local development 👨🏻‍💻

To see it in action in your local development environment, you need a set of services which Wordpress relies on. You start off by creating the docker image:

docker build -t custom-wordpress:5.6-php7.2-apache .

Then start all the services and run the setup:

make up
make setup

You can now go to https://localhost/wp-login.php > Plugins > Activate the Perfecty Push plugin.

Available commands 👾

# start the service containers
make up

# stop de service containers
make down

# remote console
make console

# run the unit tests
make test

# run the formatter
make format

# setup all: make wordpress, make composer, make phpunit and make sdk
make setup

# setup wordpress and plugins
make wordpress

# install all the composer dependencies
make deps

# setup wordpress as a testing environment for phpunit
make phpunit

# generates the redistributable bundle in dist/perfecty-push-notifications.zip
make bundle

Demo 🎭

Admin Dashboard

Dashboard

Public view

Screenshot preview

Testing

This project relies on automated tests as in the Wordpress Core guidelines.

Run all the test suites:

make test

Run a single test:

make console
cd wp-contents/plugins/perfecty-push/
phpunit --filter test_schedule_broadcast_async

Troubleshooting 🛠

Not intended for production: In case the plugins cannot be installed on your local installation do:

make console
chown -R www-data wp-content

License 👓

The WordPress Plugin is an Open Source project licensed under GPL v2.

The bell icon SVG code is a Font Awesome icon, a MIT License.

Banner photo by NASA on Unsplash

Contributing 🚀

If you're interesting on contributing to this project, feel free to submit your suggestions as a PR or an issue directly to any of the projects repos. Remember to read the Code of Conduct and the license information of each project, which in general use the MIT license, except the WordPress plugin (GPL v2).

Open Source contributors 🔥

Rowinson Gallego MocioF

Special Thanks

Jetbrains

Thanks to Jetbrains for supporting this Open Source project with their magnificent tools.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].