LLMS_REST_Webhook::deliver( array $args )
Delivers the webhook
Parameters Parameters
- $args
-
(array) (Required) Numeric array of arguments from the originating hook.
Return Return
(void)
Source Source
File: libraries/lifterlms-rest/includes/models/class-llms-rest-webhook.php
public function deliver( $args ) {
$start = microtime( true );
$payload = $this->get_payload( $args );
$http_args = array(
'method' => 'POST',
'timeout' => 60,
'redirection' => 0,
'user-agent' => $this->get_user_agent(),
'body' => trim( wp_json_encode( $payload ) ),
'headers' => array(
'Content-Type' => 'application/json',
),
);
/**
* Modify HTTP args used to deliver the webhook
*
* @since 1.0.0-beta.1
*
* @param array $http_args HTTP request args suitable for `wp_remote_request()`.
* @param LLMS_REST_Webhook $this Webhook object.
* @param mixed $args First argument passed to the action triggering the webhook.
*/
$http_args = apply_filters( 'llms_rest_webhook_delivery_args', $http_args, $this, $args );
$delivery_id = wp_hash( $this->get( 'id' ) . strtotime( 'now' ) );
$http_args['headers'] = array_merge(
$http_args['headers'],
array(
'X-LLMS-Webhook-Source' => home_url( '/' ),
'X-LLMS-Webhook-Topic' => $this->get( 'topic' ),
'X-LLMS-Webhook-Resource' => $this->get_resource(),
'X-LLMS-Webhook-Event' => $this->get_event(),
'X-LLMS-Webhook-Signature' => $this->get_delivery_signature( $http_args['body'] ),
'X-LLMS-Webhook-ID' => $this->get( 'id' ),
'X-LLMS-Delivery-ID' => $delivery_id,
)
);
$res = wp_safe_remote_request( $this->get( 'delivery_url' ), $http_args );
$duration = round( microtime( true ) - $start, 5 );
$this->delivery_after( $delivery_id, $http_args, $res, $duration );
/**
* Fires after a webhook is delivered
*
* @since 1.0.0-beta.1
*
* @param array $http_args HTTP request args.
* @param WP_Error|array $res Remote response.
* @param int $duration Executing time.
* @param array $args Numeric array of arguments from the originating hook.
* @param LLMS_REST_Webhook $this Webhook object.
*/
do_action( 'llms_rest_webhook_delivery', $http_args, $res, $duration, $args, $this );
}
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
| Version | Description |
|---|---|
| 1.0.0-beta.1 | Introduced. |