LLMS_Meta_Box_Product
LLMS_Meta_Box_Product class
Source Source
File: includes/admin/post-types/meta-boxes/class.llms.meta.box.product.php
class LLMS_Meta_Box_Product extends LLMS_Admin_Metabox {
/**
* Configure the metabox settings
*
* @since 3.0.0
* @since 3.30.3 Adjusted localization priority to 9.
*
* @return void
*/
public function configure() {
$this->id = 'lifterlms-product';
$this->title = __( 'Access Plans', 'lifterlms' );
$this->screens = array(
'course',
'llms_membership',
);
$this->priority = 'high';
// Output PHP variables for JS access.
add_action( 'admin_print_footer_scripts', array( $this, 'localize_js' ), 9 );
}
/**
* Return an empty array because the metabox fields here are completely custom
*
* @return array
* @since 3.0.0
*/
public function get_fields() {
return array();
}
/**
* Pass settings to JS
*
* @return void
* @since 3.0.0
* @version 3.0.0
*/
public function localize_js() {
$p = new LLMS_Product( $this->post );
$limit = $p->get_access_plan_limit();
echo '<script>window.llms = window.llms || {}; window.llms.product = { access_plan_limit: ' . $limit . ' };</script>';
}
/**
* Filter the available buttons in the Plan Description editors
*
* @param array $buttons array of default buttons
* @param string $id editor id
* @return array
* @since 3.0.0
* @version 3.0.0
*/
public function mce_buttons( $buttons, $id ) {
if ( strpos( $id, '_llms_plans_content' ) !== false ) {
$buttons = array(
'bold',
'italic',
'underline',
'blockquote',
'strikethrough',
'bullist',
'numlist',
'alignleft',
'aligncenter',
'alignright',
'undo',
'redo',
);
}
return $buttons;
}
/**
* Output metabox content
* Overwrites abstract because of the requirements of the UI
*
* @return void
* @since 3.0.0
* @version 3.29.0
*/
public function output() {
echo $this->get_html();
}
/**
* Retrieve the HTML for the metabox
*
* @return string
* @since 3.29.0
* @since 3.30.0 Added checkout redirect settings.
* @version 3.30.0
*/
public function get_html() {
ob_start();
$product = new LLMS_Product( $this->post );
add_filter( 'teeny_mce_buttons', array( $this, 'mce_buttons' ), 10, 2 );
$course = ( 'course' === $product->get( 'type' ) ) ? new LLMS_Course( $product->post ) : false;
// get available checkout redirection types.
$product_type = ( ! $course ) ? __( 'Membership', 'lifterlms' ) : __( 'Course', 'lifterlms' );
$checkout_redirection_types = llms_get_checkout_redirection_types( $product_type );
include LLMS_PLUGIN_DIR . 'includes/admin/views/access-plans/metabox.php';
remove_filter( 'teeny_mce_buttons', array( $this, 'mce_buttons' ), 10, 2 );
return apply_filters( 'llms_metabox_product_output', ob_get_clean(), $this );
}
}
Expand full source code Collapse full source code View on GitHub
Methods Methods
- configure — Configure the metabox settings
- get_fields — Return an empty array because the metabox fields here are completely custom
- get_html — Retrieve the HTML for the metabox
- localize_js — Pass settings to JS
- mce_buttons — Filter the available buttons in the Plan Description editors
- output — Output metabox content Overwrites abstract because of the requirements of the UI
Changelog Changelog
| Version | Description |
|---|---|
| 3.30.3 | Adjusted localization priority to 9. |
| 3.30.0 | Added checkout redirect settings |
| 1.0.0 | Introduced. |