LLMS_AJAX_Handler::llms_update_access_plans( array $request )
AJAX handler for creating and updating access plans via the metabox on courses & memberships
Parameters Parameters
- $request
-
(array) (Required) $_POST data.
Return Return
(array)
Source Source
File: includes/class.llms.ajax.handler.php
public static function llms_update_access_plans( $request ) { if ( empty( $request['plans'] ) || ! is_array( $request['plans'] ) || empty( $request['post_id'] ) ) { return new WP_Error( 'error', __( 'Missing Required Parameters.', 'lifterlms' ) ); } $metabox = new LLMS_Meta_Box_Product(); $post_id = absint( $request['post_id'] ); $metabox->post = get_post( $post_id ); $errors = array(); foreach ( $request['plans'] as $raw_plan_data ) { if ( empty( $raw_plan_data ) ) { continue; } $raw_plan_data = wp_unslash( $raw_plan_data ); // Ensure we can switch plans that used to be paid to free. if ( isset( $raw_plan_data['is_free'] ) && llms_parse_bool( $raw_plan_data['is_free'] ) && ! isset( $raw_plan_data['price'] ) ) { $raw_plan_data['price'] = 0; } $raw_plan_data['product_id'] = $post_id; // retained filter for backwards compat. $raw_plan_data = apply_filters( 'llms_access_before_save_plan', $raw_plan_data, $metabox ); $plan = llms_insert_access_plan( $raw_plan_data ); if ( is_wp_error( $plan ) ) { $errors[ $raw_plan_data['menu_order'] ] = $plan; } else { // retained hook for backwards compat. do_action( 'llms_access_plan_saved', $plan, $raw_plan_data, $metabox ); } } return array( 'errors' => $errors, 'html' => $metabox->get_html(), ); }
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
3.33.1 | Use wp_unslash() before inserting access plan data. |
3.29.0 | Introduced. |