LLMS_Blocks_Pricing_Table_Block
Course syllabus block class
Source Source
File: libraries/lifterlms-blocks/includes/blocks/class-llms-blocks-pricing-table-block.php
class LLMS_Blocks_Pricing_Table_Block extends LLMS_Blocks_Abstract_Block {
/**
* Block ID.
*
* @var string
*/
protected $id = 'pricing-table';
/**
* Is block dynamic (rendered in PHP).
*
* @var bool
*/
protected $is_dynamic = true;
/**
* Add actions attached to the render function action.
*
* @since 1.0.0
* @since 1.1.0 Unknown.
*
* @param array $attributes Optional. Block attributes. Default empty array.
* @param string $content Optional. Block content. Default empty string.
* @return void
*/
public function add_hooks( $attributes = array(), $content = '' ) {
add_action( $this->get_render_hook(), array( $this, 'output' ), 10 );
}
/**
* Retrieve custom block attributes
*
* Necessary to override when creating ServerSideRender blocks.
*
* @since 1.0.0
* @since 1.3.6 Unknown.
*
* @return array
*/
public function get_attributes() {
return array_merge(
parent::get_attributes(),
array(
'post_id' => array(
'type' => 'int',
'default' => 0,
),
)
);
}
/**
* Output the pricing table.
*
* @since 1.0.0
* @since 1.3.7 Unknown.
* @since 1.9.0 Added `llms_blocks_render_pricing_table_block` filter.
*
* @param array $attributes Optional. Block attributes. Default empty array.
* @return void
*/
public function output( $attributes = array() ) {
ob_start();
if ( 'edit' === filter_input( INPUT_GET, 'context' ) ) {
$id = filter_input( INPUT_GET, 'post_id', FILTER_SANITIZE_NUMBER_INT );
if ( $id ) {
$product = new LLMS_Product( $id );
if ( ! $product->get_access_plans() ) {
echo '<p>' . __( 'No access plans found.', 'lifterlms' ) . '</p>';
}
}
// force display of the table on the admin panel.
add_filter( 'llms_product_pricing_table_enrollment_status', '__return_false' );
add_filter( 'llms_product_is_purchasable', '__return_true' );
}
lifterlms_template_pricing_table( $attributes['post_id'] );
$block_content = ob_get_clean();
/**
* Filters the block html
*
* @since 1.9.0
*
* @param string $block_content The block's html.
* @param array $attributes The block's array of attributes.
* @param LLMS_Blocks_Pricing_Table_Block $block This block object.
*/
$block_content = apply_filters( 'llms_blocks_render_pricing_table_block', $block_content, $attributes, $this );
remove_filter( 'llms_product_pricing_table_enrollment_status', '__return_false' );
remove_filter( 'llms_product_is_purchasable', '__return_true' );
if ( $block_content ) {
echo $block_content;
}
}
}
Expand full source code Collapse full source code View on GitHub
Methods Methods
- add_hooks — Add actions attached to the render function action.
- get_attributes — Retrieve custom block attributes
- output — Output the pricing table.
Changelog Changelog
| Version | Description |
|---|---|
| 1.9.0 | Added llms_blocks_render_pricing_table_block filter. |
| 1.3.7 | Unknown. |
| 1.0.0 | Introduced. |