LLMS_REST_Memberships_Controller::get_item_schema()

Get the Membership’s schema, conforming to JSON Schema.


Return Return

(array)


Top ↑

Source Source

File: libraries/lifterlms-rest/includes/server/class-llms-rest-memberships-controller.php

		 * @since 1.0.0-beta.9
		 *
		 * @param array           $filters    Array of filters to be removed.
		 * @param LLMS_Membership $membership Membership object.
		 */
		return apply_filters( 'llms_rest_llms_membership_filters_removed_for_response', $filters, $membership );
	}

	/**
	 * Get the Membership's schema, conforming to JSON Schema.
	 *
	 * @since 1.0.0-beta.27
	 *
	 * @return array
	 */
	protected function get_item_schema_base() {

		$schema = (array) parent::get_item_schema_base();

		$schema['properties']['auto_enroll'] = array(
			'description' => __(
				'List of courses to automatically enroll students into when they\'re enrolled into the membership.',
				'lifterlms'
			),
			'type'        => 'array',
			'default'     => array(),
			'items'       => array(
				'type' => 'integer',
			),
		);

		$schema['properties']['catalog_visibility'] = array(
			'description' => __( 'Visibility of the membership in catalogs and search results.', 'lifterlms' ),
			'type'        => 'string',
			'enum'        => array_keys( llms_get_product_visibility_options() ),
			'default'     => 'catalog_search',
			'context'     => array( 'view', 'edit' ),
		);

		$schema['properties']['categories'] = array(
			'description' => __( 'List of membership categories.', 'lifterlms' ),
			'type'        => 'array',
			'items'       => array(
				'type' => 'integer',
			),
			'context'     => array( 'view', 'edit' ),
		);

		$schema['properties']['instructors'] = array(
			'description' => __(
				'List of post instructors. Defaults to current user when creating a new post.',
				'lifterlms'
			),
			'type'        => 'array',
			'items'       => array(
				'type' => 'integer',
			),
			'arg_options' => array(
				'validate_callback' => 'llms_validate_instructors',
			),
			'context'     => array( 'view', 'edit' ),
		);

		$schema['properties']['restriction_action'] = array(
			'description' => __(
				'Determines the action to take when content restricted by the membership is accessed by a non-member. - `none`: Remain on page and display the message `restriction_message`. - `membership`: Redirect to the membership\'s permalink. - `page`: Redirect to the permalink of the page identified by `restriction_page_id`. - `custom`: Redirect to the URL identified by `restriction_url`.',
				'lifterlms'
			),
			'type'        => 'string',
			'default'     => 'none',
			'enum'        => array( 'none', 'membership', 'page', 'custom' ),
			'context'     => array( 'view', 'edit' ),
		);

		$schema['properties']['restriction_message'] = array(
			'description' => __(
				'Message to display to non-members after a `restriction_action` redirect. When `restriction_action` is `none` replaces the page content with this message.',
				'lifterlms'
			),
			'type'        => 'object',
			'context'     => array( 'view', 'edit' ),
			'arg_options' => array(
				'sanitize_callback' => null, // Note: sanitization implemented in self::prepare_item_for_database().
				'validate_callback' => null, // Note: validation implemented in self::prepare_item_for_database().
			),
			'properties'  => array(
				'raw'      => array(
					'description' => __( 'Raw message content.', 'lifterlms' ),
					'type'        => 'string',
					'context'     => array( 'edit' ),
				),
				'rendered' => array(
					'description' => __( 'Rendered message content.', 'lifterlms' ),
					'type'        => 'string',
					'context'     => array( 'view', 'edit' ),
					'readonly'    => true,
				),
			),
			'default'     => __(
				'You must belong to the [lifterlms_membership_link id="{{membership_id}}"] membership to access this content.',
				'lifterlms'
			),
		);

		$schema['properties']['restriction_page_id'] = array(
			'description' => __(
				'WordPress page ID used for redirecting non-members when `restriction_action` is `page`.',
				'lifterlms'
			),
			'type'        => 'integer',
			'context'     => array( 'view', 'edit' ),
			'arg_options' => array(
				'sanitize_callback' => 'absint',
			),
		);

		$schema['properties']['restriction_url'] = array(
			'description' => __(
				'URL used for redirecting non-members when `restriction_action` is `custom`.',
				'lifterlms'
			),
			'type'        => 'string',
			'context'     => array( 'view', 'edit' ),
			'format'      => 'uri',
			'arg_options' => array(
				'sanitize_callback' => 'esc_url_raw',
			),
		);

		$schema['properties']['sales_page_page_id'] = array(
			'description' => __(
				'The WordPress page ID of the sales page. Required when `sales_page_type` equals `page`. Only returned when the `sales_page_type` equals `page`.',
				'lifterlms'
			),
			'type'        => 'integer',
			'context'     => array( 'view', 'edit' ),
			'arg_options' => array(
				'sanitize_callback' => 'absint',
			),
		);

		$schema['properties']['sales_page_type'] = array(
			'description' => __(
				'Defines alternate content displayed to visitors and non-enrolled students when accessing the post. - `none` displays the post content. - `content` displays alternate content from the `excerpt` property. - `page` redirects to the WordPress page defined in `content_page_id`. - `url` redirects to the URL defined in `content_page_url`.',
				'lifterlms'
			),
			'type'        => 'string',
			'default'     => 'none',
			'enum'        => array_keys( llms_get_sales_page_types() ),
			'context'     => array( 'view', 'edit' ),
		);

		$schema['properties']['sales_page_url'] = array(
			'description' => __(
				'The URL of the sales page content. Required when `sales_page_type` equals `url`. Only returned when the `sales_page_type` equals `url`.',
				'lifterlms'
			),
			'type'        => 'string',
			'context'     => array( 'view', 'edit' ),
			'format'      => 'uri',
			'arg_options' => array(
				'sanitize_callback' => 'esc_url_raw',
			),
		);

		$schema['properties']['tags'] = array(
			'description' => __( 'List of membership tags.', 'lifterlms' ),
			'type'        => 'array',
			'items'       => array(


Top ↑

Changelog Changelog

Changelog
Version Description
1.0.0-beta.9 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

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