LLMS_Blocks_Course_Information_Block
Course information block class.
Contents
Source Source
File: libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-course-information-block.php
class LLMS_Blocks_Course_Information_Block extends LLMS_Blocks_Abstract_Block {
/**
* Block ID.
*
* @var string
*/
protected $id = 'course-information';
/**
* Is block dynamic (rendered in PHP).
*
* @var bool
*/
protected $is_dynamic = true;
/**
* Displayed title of the block.
*
* @var string
*/
public $title;
/**
* Size of the title.
*
* @var string
*/
public $title_size;
/**
* Add actions attached to the render function action.
*
* @param array $attributes Optional. Block attributes. Default empty array.
* @param string $content Optional. Block content. Default empty string.
* @return void
* @since 1.0.0
* @version 1.1.0
*/
public function add_hooks( $attributes = array(), $content = '' ) {
$attributes = wp_parse_args(
$attributes,
array(
'title' => __( 'Course Information', 'lifterlms' ),
'title_size' => 'h3',
'show_length' => true,
'show_difficulty' => true,
'show_tracks' => true,
'show_cats' => true,
'show_tags' => true,
)
);
$show_wrappers = false;
if ( $attributes['show_length'] ) {
$show_wrappers = true;
add_action( $this->get_render_hook(), 'lifterlms_template_single_length', 10 );
}
if ( $attributes['show_difficulty'] ) {
$show_wrappers = true;
add_action( $this->get_render_hook(), 'lifterlms_template_single_difficulty', 20 );
}
if ( $attributes['show_tracks'] ) {
$show_wrappers = true;
add_action( $this->get_render_hook(), 'lifterlms_template_single_course_tracks', 25 );
}
if ( $attributes['show_cats'] ) {
$show_wrappers = true;
add_action( $this->get_render_hook(), 'lifterlms_template_single_course_categories', 30 );
}
if ( $attributes['show_tags'] ) {
$show_wrappers = true;
add_action( $this->get_render_hook(), 'lifterlms_template_single_course_tags', 35 );
}
if ( $show_wrappers ) {
$this->title = $attributes['title'];
$this->title_size = $attributes['title_size'];
add_filter( 'llms_course_meta_info_title', array( $this, 'filter_title' ) );
add_filter( 'llms_course_meta_info_title_size', array( $this, 'filter_title_size' ) );
add_action( $this->get_render_hook(), 'lifterlms_template_single_meta_wrapper_start', 5 );
add_action( $this->get_render_hook(), 'lifterlms_template_single_meta_wrapper_end', 50 );
}
}
/**
* Filters the title of the course information headline per block settings.
*
* @param string $title default title.
* @return string
* @since 1.0.0
* @version 1.0.0
*/
public function filter_title( $title ) {
return $this->title;
}
/**
* Filters the title headline element size of the course information headline per block settings.
*
* @param string $size default size.
* @return string
* @since 1.0.0
* @version 1.0.0
*/
public function filter_title_size( $size ) {
return $this->title_size;
}
/**
* Register meta attributes stub.
*
* Called after registering the block type.
*
* @return void
* @since 1.0.0
* @version 1.0.0
*/
public function register_meta() {
register_meta(
'post',
'_llms_length',
array(
'object_subtype' => 'course',
'sanitize_callback' => 'sanitize_text_field',
'auth_callback' => array( $this, 'meta_auth_callback' ),
'type' => 'string',
'single' => true,
'show_in_rest' => true,
)
);
}
/**
* Meta field update authorization callback.
*
* @param bool $allowed Is the update allowed.
Expand full source code Collapse full source code View on GitHub
Methods Methods
- add_hooks — Add actions attached to the render function action.
- filter_title — Filters the title of the course information headline per block settings.
- filter_title_size — Filters the title headline element size of the course information headline per block settings.
- meta_auth_callback — Meta field update authorization callback.
- register_meta — Register meta attributes stub.