LLMS_Meta_Box_Access
LLMS_Meta_Box_Access class
Source Source
File: includes/admin/post-types/meta-boxes/class.llms.meta.box.access.php
class LLMS_Meta_Box_Access extends LLMS_Admin_Metabox { /** * Configure the metabox * * @since 3.0.0 * * @return void */ public function configure() { $this->id = 'lifterlms-membership-access'; $this->title = __( 'Membership Access', 'lifterlms' ); $this->screens = $this->get_screens(); $this->context = 'side'; } /** * Define metabox fields * * @since 3.0.0 * * @return array */ public function get_fields() { $post_type = get_post_type_object( $this->post->post_type ); $restrictions = get_post_meta( $this->post->ID, $this->prefix . 'restricted_levels', true ); if ( ! $restrictions ) { $restrictions = array(); } return array( array( 'title' => __( 'Membership Access', 'lifterlms' ), 'fields' => array( array( 'controls' => '#' . $this->prefix . 'restricted_levels', 'desc_class' => 'd-1of2 t-1of2 m-1of2', 'id' => $this->prefix . 'is_restricted', 'label' => sprintf( _x( 'Restrict this %s', 'apply membership restriction to post type', 'lifterlms' ), $post_type->labels->singular_name ), 'type' => 'checkbox', 'value' => 'yes', ), array( 'class' => 'input-full llms-select2-post', 'data_attributes' => array( 'post-type' => 'llms_membership', ), 'desc' => sprintf( __( 'Visitors must belong to one of these memberships to access this %s', 'lifterlms' ), strtolower( $post_type->labels->singular_name ) ), 'id' => $this->prefix . 'restricted_levels', 'label' => __( 'Memberships', 'lifterlms' ), 'multi' => true, 'type' => 'select', 'value' => llms_make_select2_post_array( $restrictions ), ), ), ), ); } /** * Determine the screens where the metabox should be rendered. * * This is determined by finding all public post types and checking if they support * the 'llms-membership-restrictions' feature. * * @since 3.0.0 * * @return array */ public function get_screens() { $screens = array(); // Check against all public post types. $post_types = get_post_types( array( 'public' => true, ), 'names', 'and' ); foreach ( $post_types as $post_type ) { // check if the post type supports membership restrictions. if ( post_type_supports( $post_type, 'llms-membership-restrictions' ) ) { $screens[] = $post_type; } } return $screens; } }
Expand full source code Collapse full source code View on GitHub
Methods Methods
- configure — Configure the metabox
- get_fields — Define metabox fields
- get_screens — Determine the screens where the metabox should be rendered.
Changelog Changelog
Version | Description |
---|---|
3.0.0 | Updated for 3.0.0 compatibility. |
1.0.0 | Introduced. |