LLMS_Order::schedule_recurring_payment( string $next_payment_date = false, boolean $gmt = false )
Schedule recurring payment
Description Description
It will unschedule the next recurring payment action, if any, before scheduling.
Parameters Parameters
- $next_payment_date
-
(string) (Optional) Next payment date. If not provided it'll be retrieved using
$this->get_next_payment_due_date().Default value: false
- $gmt
-
(boolean) (Optional) Whether the provided
$next_payment_datedate is gmt. Default isfalse.<br> Only applies when the$next_payment_dateis provided.Default value: false
Return Return
(WP_Error|integer) WP_Error if the plan ended. Otherwise returns the return value of as_schedule_single_action: the action's ID.
Source Source
File: includes/models/model.llms.order.php
public function schedule_recurring_payment( $next_payment_date = false, $gmt = false ) {
// Unschedule the next action (does nothing if no action scheduled).
$this->unschedule_recurring_payment();
$date = $this->get_recurring_payment_due_date_for_scheduler( $next_payment_date, $gmt );
if ( is_wp_error( $date ) ) {
return $date;
}
$action_args = $this->get_action_args();
// Schedule the payment.
$action_id = as_schedule_single_action(
$date,
'llms_charge_recurring_payment',
$action_args
);
/**
* Fired after a recurring payment is scheduled
*
* @since 5.2.0
*
* @param LLMS_Order $order LLMS_Order instance.
* @param integer $date Timestamp of the recurring payment date UTC.
* @param array $action_args Arguments passed to the scheduler.
* @param integer $action_id Scheduled action ID.
*/
do_action( 'llms_charge_recurring_payment_scheduled', $this, $date, $action_args, $action_id );
return $action_id;
}
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
| Version | Description |
|---|---|
| 5.2.0 | Introduced. |