DMSI Webhooks exposes two global PHP functions for use in other plugins and themes.
dmsi_trigger_webhook() #
Enqueue webhook deliveries for a named event to all subscribed endpoints.
dmsi_trigger_webhook(
string $event_name,
array $data = [],
array $context = []
): int
Parameters:
| Parameter | Type | Description |
|---|---|---|
$event_name | string | Registered event name (e.g., license.created) |
$data | array | Event-specific payload data (becomes the data field in the envelope) |
$context | array | Optional context data for filters — not included in the delivered payload |
Return: int — Number of endpoint deliveries scheduled
Example:
// Trigger a built-in event manually
$count = dmsi_trigger_webhook('payment.received', [
'order_id' => 1001,
'customer' => ['id' => 7, 'email' => 'customer@example.com'],
'license_key' => 'XXXX-XXXX-XXXX-XXXX',
'amount' => '99.00',
'currency' => 'USD',
'payment_method' => 'stripe',
'received_at' => gmdate('Y-m-d\TH:i:s\Z'),
]);
error_log("Scheduled {$count} webhook deliveries");
Custom event example:
// Trigger a custom-registered event
dmsi_trigger_webhook('order.shipped', [
'order_id' => 5001,
'tracking_number' => 'FX123456789',
'carrier' => 'FedEx',
'shipped_at' => date('c'),
], [
'source' => 'woocommerce', // context is not in payload
]);
Notes:
- If the event is not registered or no endpoints are subscribed, returns
0 - Deliveries are async (queued via Action Scheduler), not delivered synchronously
- If the queue is paused, deliveries are still scheduled and counted in the return value — they will be processed once the queue resumes. See Queue Issues for details.
dmsi_webhooks_license_is_valid() #
Check whether the plugin license is currently valid.
dmsi_webhooks_license_is_valid(): boolReturn: true if license status is active or grace_period; false otherwise.
Example:
if (!dmsi_webhooks_license_is_valid()) {
// Conditionally disable webhook functionality in an integration
return;
}
dmsi_trigger_webhook('order.shipped', $data);
Related Topics #
- Registering Custom Events
- Available WordPress Actions
- License Key
