Automattic\WooCommerce\Blocks\BlockTypes
ProductFilterActive{}
Product Filter: Active Block.
No Hooks.
Usage
$ProductFilterActive = new ProductFilterActive(); // use class methods
Methods
- protected get_block_type_script( $key = null )
- protected get_block_type_style()
- protected render( $attributes, $content, $block )
ProductFilterActive{} ProductFilterActive{} code WC 9.8.2
final class ProductFilterActive extends AbstractBlock { /** * Block name. * * @var string */ protected $block_name = 'product-filter-active'; /** * Render the block. * * @param array $attributes Block attributes. * @param string $content Block content. * @param WP_Block $block Block instance. * @return string Rendered block type output. */ protected function render( $attributes, $content, $block ) { if ( ! isset( $block->context['activeFilters'] ) ) { return $content; } wp_enqueue_script_module( $this->get_full_block_name() ); $active_filters = $block->context['activeFilters']; $filter_context = array( 'items' => $active_filters, 'parent' => $this->get_full_block_name(), ); $wrapper_attributes = array( 'data-wp-interactive' => $this->get_full_block_name(), 'data-wp-key' => wp_unique_prefixed_id( $this->get_full_block_name() ), 'data-wp-bind--hidden' => '!state.hasSelectedFilters', /* translators: {{label}} is the label of the active filter item. */ 'data-wp-context' => wp_json_encode( array( 'removeLabelTemplate' => __( 'Remove filter: {{label}}', 'woocommerce' ) ), JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP ), ); if ( empty( $active_filters ) ) { $wrapper_attributes['hidden'] = true; } return sprintf( '<div %1$s>%2$s</div>', get_block_wrapper_attributes( $wrapper_attributes ), array_reduce( $block->parsed_block['innerBlocks'], function ( $carry, $parsed_block ) use ( $filter_context ) { $carry .= ( new \WP_Block( $parsed_block, array( 'filterData' => $filter_context ) ) )->render(); return $carry; }, '' ) ); } /** * Get the frontend style handle for this block type. * * @return null */ protected function get_block_type_style() { return null; } /** * Disable the block type script, this uses script modules. * * @param string|null $key The key. * * @return null */ protected function get_block_type_script( $key = null ) { return null; } }