LLMS_REST_Webhook::schedule( array $args )
Schedule the webhook for async delivery
Parameters Parameters
- $args
-
(array) (Required) Numeric array of arguments from the originating hook.
Return Return
(bool)
Source Source
File: libraries/lifterlms-rest/includes/models/class-llms-rest-webhook.php
protected function schedule( $args ) { // Remove object & array arguments before scheduling to avoid hitting column index size issues imposed by the ActionScheduler lib. foreach ( $args as $index => &$arg ) { if ( is_array( $arg ) || is_object( $arg ) ) { $arg = null; } } $schedule_args = array( 'webhook_id' => $this->get( 'id' ), 'args' => $args, ); $next = as_next_scheduled_action( 'lifterlms_rest_deliver_webhook_async', $schedule_args, 'llms-webhooks' ); /** * Determines the time period required to wait between delivery of the webhook * * If the webhook has already been scheduled within this time period it will not be sent again * until the period expires. For example, the default time period is 300 seconds (5 minutes). * If the webhook is triggered at 12:00pm it will be scheduled. If it is triggered again at 12:03pm the * second occurrence will not be scheduled. If it is triggerd again at 12:06pm this third occurrence will * again be scheduled. * * @since 1.0.0-beta.1 * * @param int $delay Time (in seconds). * @param array $args Numeric array of arguments from the originating hook. * @param LLMS_REST_Webhook $this Webhook object. */ $delay = apply_filters( 'llms_rest_webhook_repeat_delay', 300, $args, $this ); if ( ! $next || $next >= ( $delay + gmdate( 'U' ) ) ) { return as_schedule_single_action( time(), 'lifterlms_rest_deliver_webhook_async', $schedule_args, 'llms-webhooks' ) ? true : false; } return false; }
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
1.0.0-beta.17 | Stop setting the webhook's property pending_delivery to 1 when scheduling the delivery. We now rely on the method is_already_processed() to determine whether the webhook scheduling should be avoided. |
1.0.0-beta.1 | Introduced. |