LLMS_Controller_Orders::complete_order( obj $order, string $old_status )

Perform actions on a successful order completion


Description Description


Parameters Parameters

$order

(obj) (Required) Instance of an LLMS_Order

$old_status

(string) (Required) Previous order status (eg: 'pending')


Top ↑

Return Return

(void)


Top ↑

Source Source

File: includes/controllers/class.llms.controller.orders.php

	public function complete_order( $order, $old_status ) {

		// clear expiration date when moving from a pending-cancel order
		if ( 'pending-cancel' === $old_status ) {
			$order->set( 'date_access_expires', '' );
		}

		// record access start time & maybe schedule expiration
		$order->start_access();

		$order_id = $order->get( 'id' );
		$product_id = $order->get( 'product_id' );
		$user_id = $order->get( 'user_id' );

		unset( LLMS()->session->llms_coupon );

		// trigger order complete action
		do_action( 'lifterlms_order_complete', $order_id ); // @todo used by AffiliateWP only, can remove after updating AffiliateWP

		// enroll student
		llms_enroll_student( $user_id, $product_id, 'order_' . $order_id );

		// trigger purchase action, used by engagements
		do_action( 'lifterlms_product_purchased', $user_id, $product_id );
		do_action( 'lifterlms_access_plan_purchased', $user_id, $order->get( 'plan_id' ) );

		// maybe schedule a payment
		$order->maybe_schedule_payment();

	}

Top ↑

Changelog Changelog

Changelog
Version Description
1.0.0 Introduced.


Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.





Permalink: