LLMS_Controller_Orders::error_order( int|WP_Post|LLMS_Order $order )
Called when an order’s status changes to refunded, cancelled, expired, or failed.
Description Description
Also called on product deletion detected while processing a recurring charge.
Parameters Parameters
- $order
-
(int|WP_Post|LLMS_Order) (Required) Instance of an LLMS_Order, WP_Post or WP_Post ID of the order.
Return Return
(void)
Source Source
File: includes/controllers/class.llms.controller.orders.php
public function error_order( $order ) { $order = is_a( $order, 'LLMS_Order' ) ? $order : llms_get_post( $order ); if ( ! ( $order && is_a( $order, 'LLMS_Order' ) ) ) { return; } $order->unschedule_recurring_payment(); /** * Determine if student should be unenrolled on order error. * * @since 4.2.0 * * @param bool $unenroll_on_error_order True if the student should be unenrolled, false otherwise. Default true. * @param LLMS_Order $order Order object. */ if ( ! apply_filters( 'llms_unenroll_on_error_order', true, $order ) ) { return; } switch ( current_filter() ) { case 'lifterlms_order_status_trash': case 'lifterlms_order_status_cancelled': case 'lifterlms_order_status_on-hold': case 'lifterlms_order_status_refunded': case 'llms_order_recurring_charge_aborted_product_deleted': $status = 'cancelled'; break; case 'lifterlms_order_status_expired': case 'lifterlms_order_status_failed': default: $status = 'expired'; break; } llms_unenroll_student( $order->get( 'user_id' ), $order->get( 'product_id' ), $status, 'order_' . $order->get( 'id' ) ); }
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
5.4.0 | Unenroll with 'cancelled' status on 'llms_order_recurring_charge_aborted_product_deleted'. The $order param can be also a WP_Post or its ID . |
4.2.0 | Added llms_unenroll_on_error_order filter hook. |
3.10.0 | Unknown. |
3.0.0 | Introduced. |