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
458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 | 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. |