LLMS_Meta_Box_Membership::get_fields()
This function is where extending classes can configure all the fields within the metabox.
Description Description
The function must return an array which can be consumed by the "output" function.
Return Return
(array)
Source Source
File: includes/admin/post-types/meta-boxes/class.llms.meta.box.membership.php
public function get_fields() {
global $post;
$membership = new LLMS_Membership( $this->post );
$redirect_options = array();
$redirect_page_id = $membership->get( 'redirect_page_id' );
if ( $redirect_page_id ) {
$redirect_options[] = array(
'key' => $redirect_page_id,
'title' => get_the_title( $redirect_page_id ) . '(ID#' . $redirect_page_id . ')',
);
}
$sales_page_content_type = 'none';
if ( $post && 'auto-draft' !== $post->post_status && $post->post_excerpt ) {
$sales_page_content_type = 'content';
}
$instructor_defaults = llms_get_instructors_defaults();
return array(
array(
'title' => __( 'Sales Page', 'lifterlms' ),
'fields' => array(
array(
'allow_null' => false,
'class' => 'llms-select2',
'desc' => __( 'Customize the content displayed to visitors and students who are not enrolled in the membership.', 'lifterlms' ),
'desc_class' => 'd-3of4 t-3of4 m-1of2',
'default' => $sales_page_content_type,
'id' => $this->prefix . 'sales_page_content_type',
'is_controller' => true,
'label' => __( 'Sales Page Content', 'lifterlms' ),
'type' => 'select',
'value' => llms_get_sales_page_types(),
),
array(
'controller' => '#' . $this->prefix . 'sales_page_content_type',
'controller_value' => 'content',
'desc' => __( 'This content will only be shown to visitors who are not enrolled in this membership.', 'lifterlms' ),
'id' => '',
'label' => __( 'Sales Page Custom Content', 'lifterlms' ),
'type' => 'post-excerpt',
),
array(
'controller' => '#' . $this->prefix . 'sales_page_content_type',
'controller_value' => 'page',
'data_attributes' => array(
'post-type' => 'page',
'placeholder' => __( 'Select a page', 'lifterlms' ),
),
'class' => 'llms-select2-post',
'id' => $this->prefix . 'sales_page_content_page_id',
'type' => 'select',
'label' => __( 'Select a Page', 'lifterlms' ),
'value' => $membership->get( 'sales_page_content_page_id' ) ? llms_make_select2_post_array( array( $membership->get( 'sales_page_content_page_id' ) ) ) : array(),
),
array(
'controller' => '#' . $this->prefix . 'sales_page_content_type',
'controller_value' => 'url',
'type' => 'text',
'label' => __( 'Sales Page Redirect URL', 'lifterlms' ),
'id' => $this->prefix . 'sales_page_content_url',
'class' => 'input-full',
'value' => '',
'desc_class' => 'd-all',
'group' => 'top',
),
),
),
array(
'title' => __( 'General', 'lifterlms' ),
'fields' => array(
array(
'type' => 'text',
'label' => __( 'Featured Video', 'lifterlms' ),
'desc' => sprintf( __( 'Paste the url for a Wistia, Vimeo or Youtube video or a hosted video file. For a full list of supported providers see %s.', 'lifterlms' ), '<a href="https://wordpress.org/documentation/article/embeds/#list-of-sites-you-can-embed-from" target="_blank">WordPress oEmbeds</a>' ),
'id' => $this->prefix . 'video_embed',
'class' => 'code input-full',
),
array(
'desc' => __( 'When enabled, the featured video will be displayed on the membership tile in addition to the membership page.', 'lifterlms' ),
'desc_class' => 'd-3of4 t-3of4 m-1of2',
'id' => $this->prefix . 'tile_featured_video',
'label' => __( 'Display Featured Video on Membership Tile', 'lifterlms' ),
'type' => 'checkbox',
'value' => 'yes',
),
array(
'type' => 'text',
'label' => __( 'Featured Audio', 'lifterlms' ),
'desc' => sprintf( __( 'Paste the url for a SoundCloud or Spotify song or a hosted audio file. For a full list of supported providers see %s.', 'lifterlms' ), '<a href="https://wordpress.org/documentation/article/embeds/#list-of-sites-you-can-embed-from" target="_blank">WordPress oEmbeds</a>' ),
'id' => $this->prefix . 'audio_embed',
'class' => 'code input-full',
),
array(
'type' => 'basic-editor',
'label' => __( 'Featured Pricing Information', 'lifterlms' ),
'desc' => __( 'Enter information on pricing for this membership, to be displayed on the catalog page.', 'lifterlms' ),
'id' => $this->prefix . 'featured_pricing',
'class' => 'code input-full',
'value' => 'test',
),
),
),
array(
'title' => __( 'Restrictions', 'lifterlms' ),
'fields' => array(
array(
'allow_null' => false,
'class' => '',
'desc' => __( 'When a non-member attempts to access content restricted to this membership', 'lifterlms' ),
'id' => $this->prefix . 'restriction_redirect_type',
'is_controller' => true,
'type' => 'select',
'label' => __( 'Restricted Access Redirect', 'lifterlms' ),
'value' => array(
array(
'key' => 'none',
'title' => __( 'Stay on page', 'lifterlms' ),
),
array(
'key' => 'membership',
'title' => __( 'Redirect to this membership page', 'lifterlms' ),
),
array(
'key' => 'page',
'title' => __( 'Redirect to a WordPress page', 'lifterlms' ),
),
array(
'key' => 'custom',
'title' => __( 'Redirect to a Custom URL', 'lifterlms' ),
),
),
),
array(
'class' => 'llms-select2-post',
'controller' => '#' . $this->prefix . 'restriction_redirect_type',
'controller_value' => 'page',
'data_attributes' => array(
'post-type' => 'page',
),
'id' => $this->prefix . 'redirect_page_id',
'label' => __( 'Select a WordPress Page', 'lifterlms' ),
'type' => 'select',
'value' => $redirect_options,
),
array(
'class' => '',
'controller' => '#' . $this->prefix . 'restriction_redirect_type',
'controller_value' => 'custom',
'id' => $this->prefix . 'redirect_custom_url',
'label' => __( 'Enter a Custom URL', 'lifterlms' ),
'type' => 'text',
'value' => 'test',
),
array(
'class' => '',
'controls' => '#' . $this->prefix . 'restriction_notice',
'default' => 'yes',
'desc' => __( 'Check this box to output a message after redirecting. If no redirect is selected this message will replace the normal content that would be displayed.', 'lifterlms' ),
'desc_class' => 'd-3of4 t-3of4 m-1of2',
'id' => $this->prefix . 'restriction_add_notice',
'label' => __( 'Display a Message', 'lifterlms' ),
'type' => 'checkbox',
'value' => 'yes',
),
array(
'class' => 'full-width',
'desc' => sprintf( __( 'Shortcodes like %s can be used in this message', 'lifterlms' ), '[lifterlms_membership_link id="' . $this->post->ID . '"]' ),
'default' => sprintf( __( 'You must belong to the %s membership to access this content.', 'lifterlms' ), '[lifterlms_membership_link id="' . $this->post->ID . '"]' ),
'id' => $this->prefix . 'restriction_notice',
'label' => __( 'Restricted Content Notice', 'lifterlms' ),
'type' => 'text',
'sanitize' => 'shortcode',
),
),
),
array(
'title' => __( 'Instructors', 'lifterlms' ),
'fields' => array(
array(
'button' => array(
'text' => __( 'Add Instructor', 'lifterlms' ),
),
'handler' => 'instructors_mb_store',
'header' => array(
'default' => __( 'New Instructor', 'lifterlms' ),
),
'id' => $this->prefix . 'instructors_data',
'label' => '',
'type' => 'repeater',
'fields' => array(
array(
'allow_null' => false,
'data_attributes' => array(
'placeholder' => esc_attr__( 'Select an Instructor', 'lifterlms' ),
'roles' => 'administrator,lms_manager,instructor,instructors_assistant',
),
'class' => 'llms-select2-student',
'group' => 'd-2of3',
'id' => $this->prefix . 'id',
'type' => 'select',
'label' => __( 'Instructor', 'lifterlms' ),
),
array(
'group' => 'd-1of6',
'class' => 'input-full',
'default' => $instructor_defaults['label'],
'id' => $this->prefix . 'label',
'type' => 'text',
'label' => __( 'Label', 'lifterlms' ),
),
array(
'allow_null' => false,
'class' => 'llms-select2',
'default' => $instructor_defaults['visibility'],
'group' => 'd-1of6',
'id' => $this->prefix . 'visibility',
'type' => 'select',
'label' => __( 'Visibility', 'lifterlms' ),
'value' => array(
'visible' => esc_html__( 'Visible', 'lifterlms' ),
'hidden' => esc_html__( 'Hidden', 'lifterlms' ),
),
),
),
),
),
),
array(
'title' => __( 'Auto Enrollment', 'lifterlms' ),
'fields' => array(
array(
'label' => __( 'Automatic Enrollment', 'lifterlms' ),
'desc' => sprintf( __( 'When a student joins this membership they will be automatically enrolled in these courses. Click %1$shere%2$s for more information.', 'lifterlms' ), '<a href="https://lifterlms.com/docs/membership-auto-enrollment/" target="_blank">', '</a>' ),
'id' => $this->prefix . 'content_table',
'titles' => array( '', __( 'Course Name', 'lifterlms' ), '' ),
'type' => 'table',
'table_data' => $this->get_content_table( $membership ),
),
array(
'class' => 'llms-select2-post',
'data_attributes' => array(
'placeholder' => __( 'Select course(s)', 'lifterlms' ),
'post-type' => 'course',
'no-view-button' => true,
),
'id' => $this->prefix . 'auto_enroll',
'label' => __( 'Add Course(s)', 'lifterlms' ),
'type' => 'select',
'value' => array(),
),
),
),
);
}
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
| Version | Description |
|---|---|
| 3.36.0 | Allow some fields to store values with quotes. |
| 3.30.3 | Removed duplicate array keys. |
| 3.30.0 | Removed empty field settings. Modified settings to accommodate sortable auto-enrollment table. |
| 3.0.0 | Introduced. |