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
$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(),
);
}
/**
* AJAX handler for persisting tracking events.
*
* @since 3.37.14
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. |