OneSignal Notify API Custom
A WordPress plugin that extends OneSignal functionality with a custom REST API to send notifications and manage user notification history within a local WordPress database.
Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/srivastava-abhigyan/onesignal-custom-notify-api/archive/refs/heads/main.zipOneSignal Custom Notify API (WordPress Plugin)
A professional WordPress plugin that provides a custom REST API to send OneSignal notifications and manage user notification history within a local database.
🚀 Overview
This plugin bridges the gap between WordPress and OneSignal by allowing you to send push notifications via a custom REST API endpoint and store those notifications in your WordPress database. This allows users to view their notification history even if they missed the push message.
✨ Features
- Custom REST API Endpoints:
POST /wp-json/osna/v1/notify: Send notifications to users.GET /wp-json/osna/v1/notifications: Fetch notification history for the logged-in user.POST /wp-json/osna/v1/notifications/{id}/read: Mark notifications as read.
- Local History Tracking: Automatically saves sent notifications to a custom database table (
wp_user_notifications). - User-Specific Filtering: Supports fetching notifications based on the logged-in user's ID.
- OneSignal Integration: Seamlessly connects with the OneSignal API for mobile and web push.
📋 Prerequisites
To use this plugin, ensure you have the following installed and configured:
🛠️ Installation
- Download the repository as a ZIP file.
- Upload the plugin to your WordPress site via Plugins > Add New > Upload Plugin.
- Activate the plugin.
- The plugin will automatically create the required database table upon activation.
⚙️ Configuration
Open onesignal_custom_notify.php and update the following lines with your OneSignal credentials:
$app_id = 'YOUR_ONESIGNAL_APP_ID';
$api_key = 'YOUR_ONESIGNAL_REST_API_KEY';
📡 API Usage
1. Send a Notification
Endpoint: POST /wp-json/osna/v1/notify
Authentication: Required (JWT or Session)
Request Body (JSON):
{
"title": "New Update",
"message": "Check out our latest post!",
"link": "https://example.com/post-url",
"user_id": 123
}
2. Fetch User Notifications
Endpoint: GET /wp-json/osna/v1/notifications
Authentication: Required
Response:
[
{
"ID": "1",
"user_id": "123",
"title": "New Update",
"message": "Check out our latest post!",
"link": "https://example.com/post-url",
"read_status": "0",
"created_at": "2023-10-27 10:00:00"
}
]
3. Mark as Read
Endpoint: POST /wp-json/osna/v1/notifications/{id}/read
Authentication: Required
🛡️ Security
This plugin uses permission_callback for all REST API routes to ensure that only authenticated and authorized users can access the endpoints.
📄 License
This project is open-source and available under the MIT License.