LLMS_REST_Access_Plans_Controller::prepare_object_for_response( LLMS_Access_Plan $access_plan, WP_REST_Request $request )
Prepare a single object output for response.
Parameters Parameters
- $access_plan
-
(LLMS_Access_Plan) (Required) LLMS Access Plan instance.
- $request
-
(WP_REST_Request) (Required) Full details about the request.
Return Return
(array)
Source Source
File: libraries/lifterlms-rest/includes/server/class-llms-rest-access-plans-controller.php
// Price.
$data['price'] = $access_plan->is_free() ? 0 : $access_plan->get_price( 'price', array(), 'float' );
// Access expiration.
$data['access_expiration'] = $access_plan->get( 'access_expiration' );
// Access expires date.
if ( 'limited-date' === $data['access_expiration'] || 'edit' === $context ) {
$data['access_expires'] = $access_plan->get_date( 'access_expires', 'Y-m-d H:i:s' );
}
// Access length and period.
if ( 'limited-period' === $data['access_expiration'] || 'edit' === $context ) {
$data['access_length'] = $access_plan->get( 'access_length' );
$data['access_period'] = $access_plan->get( 'access_period' );
}
// Availability restrictions, only returned for courses.
if ( 'course' === $access_plan->get_product_type() ) {
$data['availability_restrictions'] = $access_plan->has_availability_restrictions()
?
array_map( 'absint', $access_plan->get_array( 'availability_restrictions' ) )
:
array();
}
// Enroll text.
$data['enroll_text'] = $access_plan->get_enroll_text();
// Frequency.
$data['frequency'] = $access_plan->get( 'frequency' );
// Length and period.
if ( 0 < $data['frequency'] || 'edit' === $context ) {
$data['length'] = $access_plan->get( 'length' );
$data['period'] = $access_plan->get( 'period' );
}
// Post ID.
$data['post_id'] = $access_plan->get( 'product_id' );
// Redirect forced.
if ( ! empty( $data['availability_restrictions'] ) || 'edit' === $context ) {
$data['redirect_forced'] = llms_parse_bool( $access_plan->get( 'checkout_redirect_forced' ) );
}
// Redirect type.
$data['redirect_type'] = $access_plan->get( 'checkout_redirect_type' );
// Redirect page.
if ( 'page' === $data['redirect_type'] || 'edit' === $context ) {
$data['redirect_page'] = $access_plan->get( 'checkout_redirect_page' );
}
// Redirect url.
if ( 'url' === $data['redirect_type'] || 'edit' === $context ) {
$data['redirect_url'] = $access_plan->get( 'checkout_redirect_url' );
}
// Permalink.
$data['permalink'] = $access_plan->get_checkout_url( false );
// Sale enabled.
$data['sale_enabled'] = llms_parse_bool( $access_plan->get( 'on_sale' ) );
// Sale start/end and price.
if ( $data['sale_enabled'] || 'edit' === $context ) {
$data['sale_date_start'] = $access_plan->get_date( 'sale_start', 'Y-m-d H:i:s' );
$data['sale_date_end'] = $access_plan->get_date( 'sale_end', 'Y-m-d H:i:s' );
$data['sale_price'] = $access_plan->get_price( 'sale_price', array(), 'float' );
}
// SKU.
$data['sku'] = $access_plan->get( 'sku' );
// Trial.
$data['trial_enabled'] = $access_plan->has_trial();
if ( $data['trial_enabled'] || 'edit' === $context ) {
$data['trial_length'] = $access_plan->get( 'trial_length' );
$data['trial_period'] = $access_plan->get( 'trial_period' );
$data['trial_price'] = $access_plan->get_price( 'trial_price', array(), 'float' );
}
// Visibility.
$data['visibility'] = $access_plan->get_visibility();
/**
* Filters the access plan data for a response.
*
* @since 1.0.0-beta.18
*
* @param array $data Array of lesson properties prepared for response.
* @param LLMS_Access_Plan $access_plan LLMS Access Plan instance.
* @param WP_REST_Request $request Full details about the request.
*/
$data = apply_filters( 'llms_rest_prepare_access_plan_object_response', $data, $access_plan, $request );
return $data;
}
/**
* Format query arguments to retrieve a collection of objects
*
* @since 1.0.0-beta.18
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
| Version | Description |
|---|---|
| 1.0.0-beta.20 | Fixed return format of the access_expires property. Fixed sale date properties. |
| 1.0.0-beta.18 | |
| 1.0.0-beta-24 | Introduced. |