LLMS_Order::get_next_payment_due_date( string $format = 'Y-m-d H:i:s' )
Retrieve the due date of the next payment according to access plan terms
Parameters Parameters
- $format
-
(string) (Optional) Date return format. Default is 'Y-m-d H:i:s'.
Default value: 'Y-m-d H:i:s'
Return Return
(string)
Source Source
File: includes/models/model.llms.order.php
* @return string
*/
public function get_next_payment_due_date( $format = 'Y-m-d H:i:s' ) {
// Single payments will never have a next payment date.
if ( ! $this->is_recurring() ) {
return new WP_Error( 'not-recurring', __( 'Order is not recurring', 'lifterlms' ) );
} elseif ( ! in_array( $this->get( 'status' ), array( 'llms-active', 'llms-failed', 'llms-on-hold', 'llms-pending', 'llms-pending-cancel' ), true ) ) {
return new WP_Error( 'invalid-status', __( 'Invalid order status', 'lifterlms' ), $this->get( 'status' ) );
}
// Retrieve the saved due date.
$next_payment_time = $this->get_date( 'date_next_payment', 'U' );
// Calculate it if not saved.
if ( ! $next_payment_time ) {
$next_payment_time = $this->calculate_next_payment_date( 'U' );
if ( ! $next_payment_time ) {
return new WP_Error( 'plan-ended', __( 'No more payments due', 'lifterlms' ) );
}
}
/**
* Filter the next payment due date.
*
* A timestamp should always be returned as the conversion to the requested format
* will be performed on the returned value.
*
* @since 3.0.0
*
* @param int $next_payment_time Unix timestamp for the next payment due date.
* @param LLMS_Order $order Order object.
* @param string $format Requested date format.
*/
$next_payment_time = apply_filters( 'llms_order_get_next_payment_due_date', $next_payment_time, $this, $format );
return date_i18n( $format, $next_payment_time );
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
| Version | Description |
|---|---|
| 5.2.0 | Use stric type comparisons. |
| 3.19.0 | Unknown. |
| 3.0.0 | Introduced. |