ProductCategories
extends AbstractDynamicBlock
in package
ProductCategories class.
Table of Contents
- $asset_api : Api
- Instance of the asset API.
- $asset_data_registry : AssetDataRegistry
- Instance of the asset data registry.
- $block_name : string
- Block name.
- $defaults : array<string|int, mixed>
- Default attribute values, should match what's set in JS `registerBlockType`.
- $enqueued_assets : bool
- Tracks if assets have been enqueued.
- $integration_registry : IntegrationRegistry
- Instance of the integration registry.
- $namespace : string
- Block namespace.
- __construct() : mixed
- Constructor.
- enqueue_editor_assets() : mixed
- Enqueue assets used for rendering the block in editor context.
- get_image_html() : string
- Returns the category image html
- render_callback() : string
- The default render_callback for all blocks. This will ensure assets are enqueued just in time, then render the block (if applicable).
- build_category_tree() : array<string|int, mixed>
- Build hierarchical tree of categories.
- enqueue_data() : mixed
- Data passed through from server to client for block.
- enqueue_scripts() : mixed
- Register/enqueue scripts used for this block on the frontend, during render.
- fill_category_children() : array<string|int, mixed>
- Build hierarchical tree of categories by appending children in the tree.
- get_block_type() : string
- Get the block type.
- get_block_type_attributes() : array<string|int, mixed>
- Get block attributes.
- get_block_type_editor_script() : array<string|int, mixed>|string
- Get the editor script data for this block type.
- get_block_type_editor_style() : string|null
- Get the editor style handle for this block type.
- get_block_type_render_callback() : callable|null
- Get the render callback for this block type.
- get_block_type_script() : array<string|int, mixed>|string|null
- Get the frontend script handle for this block type.
- get_block_type_style() : array<string|int, string>|null
- Get the frontend style handle for this block type.
- get_block_type_supports() : string
- Get the supports array for this block type.
- get_block_type_uses_context() : array<string|int, mixed>
- Get block usesContext.
- get_categories() : array<string|int, mixed>
- Get categories (terms) from the db.
- get_chunks_paths() : array<string|int, string>
- Generate an array of chunks paths for loading translation.
- get_container_classes() : string
- Get the list of classes to apply to this block.
- get_full_block_name() : string
- Get the interactivity namespace. Only used when utilizing the interactivity API.
- get_routes_from_namespace() : array<string|int, mixed>
- Get routes from a REST API namespace.
- get_schema_align() : array<string|int, mixed>
- Get the schema for the alignment property.
- get_schema_boolean() : array<string|int, mixed>
- Get the schema for a boolean value.
- get_schema_list_ids() : array<string|int, mixed>
- Get the schema for a list of IDs.
- get_schema_number() : array<string|int, mixed>
- Get the schema for a numeric value.
- get_schema_string() : array<string|int, mixed>
- Get the schema for a string value.
- getCount() : string
- Get the count, if displaying.
- initialize() : mixed
- Initialize this block type.
- parse_render_callback_attributes() : array<string|int, mixed>
- Parses block attributes from the render_callback.
- register_block_type() : array<string|int, string>
- Registers the block type with WordPress.
- register_block_type_assets() : mixed
- Register script and style assets for the block type before it is registered.
- register_chunk_translations() : mixed
- Injects Chunk Translations into the page so translations work for lazy loaded components.
- render() : string
- Render the Product Categories List block.
- renderDropdown() : string
- Render the category list as a dropdown.
- renderDropdownOptions() : string
- Render dropdown options list.
- renderList() : string
- Render the category list as a list.
- renderListItems() : string
- Render a list of terms.
Properties
$asset_api
Instance of the asset API.
protected
Api
$asset_api
$asset_data_registry
Instance of the asset data registry.
protected
AssetDataRegistry
$asset_data_registry
$block_name
Block name.
protected
string
$block_name
= 'product-categories'
$defaults
Default attribute values, should match what's set in JS `registerBlockType`.
protected
array<string|int, mixed>
$defaults
= array('hasCount' => true, 'hasImage' => false, 'hasEmpty' => false, 'isDropdown' => false, 'isHierarchical' => true, 'showChildrenOnly' => false)
$enqueued_assets
Tracks if assets have been enqueued.
protected
bool
$enqueued_assets
= false
$integration_registry
Instance of the integration registry.
protected
IntegrationRegistry
$integration_registry
$namespace
Block namespace.
protected
string
$namespace
= 'woocommerce'
Methods
__construct()
Constructor.
public
__construct(Api $asset_api, AssetDataRegistry $asset_data_registry, IntegrationRegistry $integration_registry[, string $block_name = '' ]) : mixed
Parameters
- $asset_api : Api
-
Instance of the asset API.
- $asset_data_registry : AssetDataRegistry
-
Instance of the asset data registry.
- $integration_registry : IntegrationRegistry
-
Instance of the integration registry.
- $block_name : string = ''
-
Optionally set block name during construct.
Return values
mixed —enqueue_editor_assets()
Enqueue assets used for rendering the block in editor context.
public
enqueue_editor_assets() : mixed
This is needed if a block is not yet within the post content--render
and enqueue_assets
may not have ran.
Return values
mixed —get_image_html()
Returns the category image html
public
get_image_html(WP_Term $category, array<string|int, mixed> $attributes[, string $size = 'woocommerce_thumbnail' ]) : string
Parameters
- $category : WP_Term
-
Term object.
- $attributes : array<string|int, mixed>
-
Block attributes. Default empty array.
- $size : string = 'woocommerce_thumbnail'
-
Image size, defaults to 'woocommerce_thumbnail'.
Return values
string —render_callback()
The default render_callback for all blocks. This will ensure assets are enqueued just in time, then render the block (if applicable).
public
render_callback([array<string|int, mixed>|WP_Block $attributes = [] ][, string $content = '' ][, WP_Block|null $block = null ]) : string
Parameters
- $attributes : array<string|int, mixed>|WP_Block = []
-
Block attributes, or an instance of a WP_Block. Defaults to an empty array.
- $content : string = ''
-
Block content. Default empty string.
- $block : WP_Block|null = null
-
Block instance.
Return values
string — Rendered block type output.build_category_tree()
Build hierarchical tree of categories.
protected
build_category_tree(array<string|int, mixed> $categories, bool $children_only) : array<string|int, mixed>
Parameters
- $categories : array<string|int, mixed>
-
List of terms.
- $children_only : bool
-
Is the block rendering only the children of the current category.
Return values
array<string|int, mixed> —enqueue_data()
Data passed through from server to client for block.
protected
enqueue_data([array<string|int, mixed> $attributes = [] ]) : mixed
Parameters
- $attributes : array<string|int, mixed> = []
-
Any attributes that currently are available from the block. Note, this will be empty in the editor context when the block is not in the post content on editor load.
Return values
mixed —enqueue_scripts()
Register/enqueue scripts used for this block on the frontend, during render.
protected
enqueue_scripts([array<string|int, mixed> $attributes = [] ]) : mixed
Parameters
- $attributes : array<string|int, mixed> = []
-
Any attributes that currently are available from the block.
Return values
mixed —fill_category_children()
Build hierarchical tree of categories by appending children in the tree.
protected
fill_category_children(array<string|int, mixed> $categories, array<string|int, mixed> $categories_by_parent) : array<string|int, mixed>
Parameters
- $categories : array<string|int, mixed>
-
List of terms.
- $categories_by_parent : array<string|int, mixed>
-
List of terms grouped by parent.
Return values
array<string|int, mixed> —get_block_type()
Get the block type.
protected
get_block_type() : string
Return values
string —get_block_type_attributes()
Get block attributes.
protected
get_block_type_attributes() : array<string|int, mixed>
Return values
array<string|int, mixed> —get_block_type_editor_script()
Get the editor script data for this block type.
protected
get_block_type_editor_script([string $key = null ]) : array<string|int, mixed>|string
Parameters
- $key : string = null
-
Data to get, or default to everything.
Tags
Return values
array<string|int, mixed>|string —get_block_type_editor_style()
Get the editor style handle for this block type.
protected
get_block_type_editor_style() : string|null
Tags
Return values
string|null —get_block_type_render_callback()
Get the render callback for this block type.
protected
get_block_type_render_callback() : callable|null
Dynamic blocks should return a callback, for example, return [ $this, 'render' ];
Tags
Return values
callable|null —get_block_type_script()
Get the frontend script handle for this block type.
protected
get_block_type_script([string $key = null ]) : array<string|int, mixed>|string|null
Parameters
- $key : string = null
-
Data to get, or default to everything.
Tags
Return values
array<string|int, mixed>|string|null —get_block_type_style()
Get the frontend style handle for this block type.
protected
get_block_type_style() : array<string|int, string>|null
Return values
array<string|int, string>|null —get_block_type_supports()
Get the supports array for this block type.
protected
get_block_type_supports() : string
Tags
Return values
string —get_block_type_uses_context()
Get block usesContext.
protected
get_block_type_uses_context() : array<string|int, mixed>
Return values
array<string|int, mixed> —get_categories()
Get categories (terms) from the db.
protected
get_categories(array<string|int, mixed> $attributes) : array<string|int, mixed>
Parameters
- $attributes : array<string|int, mixed>
-
Block attributes. Default empty array.
Return values
array<string|int, mixed> —get_chunks_paths()
Generate an array of chunks paths for loading translation.
protected
get_chunks_paths(string $chunks_folder) : array<string|int, string>
Parameters
- $chunks_folder : string
-
The folder to iterate over.
Return values
array<string|int, string> — $chunks list of chunks to load.get_container_classes()
Get the list of classes to apply to this block.
protected
get_container_classes([array<string|int, mixed> $attributes = array() ]) : string
Parameters
- $attributes : array<string|int, mixed> = array()
-
Block attributes. Default empty array.
Return values
string — space-separated list of classes.get_full_block_name()
Get the interactivity namespace. Only used when utilizing the interactivity API.
protected
get_full_block_name() : string
Return values
string — The interactivity namespace, used to namespace interactivity API actions and state.get_routes_from_namespace()
Get routes from a REST API namespace.
protected
get_routes_from_namespace(string $namespace) : array<string|int, mixed>
Parameters
- $namespace : string
-
Namespace to retrieve.
Return values
array<string|int, mixed> —get_schema_align()
Get the schema for the alignment property.
protected
get_schema_align() : array<string|int, mixed>
Return values
array<string|int, mixed> — Property definition for align.get_schema_boolean()
Get the schema for a boolean value.
protected
get_schema_boolean([string $default = true ]) : array<string|int, mixed>
Parameters
- $default : string = true
-
The default value.
Return values
array<string|int, mixed> — Property definition.get_schema_list_ids()
Get the schema for a list of IDs.
protected
get_schema_list_ids() : array<string|int, mixed>
Return values
array<string|int, mixed> — Property definition for a list of numeric ids.get_schema_number()
Get the schema for a numeric value.
protected
get_schema_number(string $default) : array<string|int, mixed>
Parameters
- $default : string
-
The default value.
Return values
array<string|int, mixed> — Property definition.get_schema_string()
Get the schema for a string value.
protected
get_schema_string([string $default = '' ]) : array<string|int, mixed>
Parameters
- $default : string = ''
-
The default value.
Return values
array<string|int, mixed> — Property definition.getCount()
Get the count, if displaying.
protected
getCount(object $category, array<string|int, mixed> $attributes) : string
Parameters
- $category : object
-
Term object.
- $attributes : array<string|int, mixed>
-
Block attributes. Default empty array.
Return values
string —initialize()
Initialize this block type.
protected
initialize() : mixed
- Hook into WP lifecycle.
- Register the block with WordPress.
Return values
mixed —parse_render_callback_attributes()
Parses block attributes from the render_callback.
protected
parse_render_callback_attributes(array<string|int, mixed>|WP_Block $attributes) : array<string|int, mixed>
Parameters
- $attributes : array<string|int, mixed>|WP_Block
-
Block attributes, or an instance of a WP_Block. Defaults to an empty array.
Return values
array<string|int, mixed> —register_block_type()
Registers the block type with WordPress.
protected
register_block_type() : array<string|int, string>
Return values
array<string|int, string> — Chunks paths.register_block_type_assets()
Register script and style assets for the block type before it is registered.
protected
register_block_type_assets() : mixed
This registers the scripts; it does not enqueue them.
Return values
mixed —register_chunk_translations()
Injects Chunk Translations into the page so translations work for lazy loaded components.
protected
register_chunk_translations(array<string|int, string> $chunks) : mixed
The chunk names are defined when creating lazy loaded components using webpackChunkName.
Parameters
- $chunks : array<string|int, string>
-
Array of chunk names.
Return values
mixed —render()
Render the Product Categories List block.
protected
render(array<string|int, mixed> $attributes, string $content, WP_Block $block) : string
Parameters
- $attributes : array<string|int, mixed>
-
Block attributes.
- $content : string
-
Block content.
- $block : WP_Block
-
Block instance.
Return values
string — Rendered block type output.renderDropdown()
Render the category list as a dropdown.
protected
renderDropdown(array<string|int, mixed> $categories, array<string|int, mixed> $attributes, int $uid) : string
Parameters
- $categories : array<string|int, mixed>
-
List of terms.
- $attributes : array<string|int, mixed>
-
Block attributes. Default empty array.
- $uid : int
-
Unique ID for the rendered block, used for HTML IDs.
Return values
string — Rendered output.renderDropdownOptions()
Render dropdown options list.
protected
renderDropdownOptions(array<string|int, mixed> $categories, array<string|int, mixed> $attributes, int $uid, int $depth) : string
Parameters
- $categories : array<string|int, mixed>
-
List of terms.
- $attributes : array<string|int, mixed>
-
Block attributes. Default empty array.
- $uid : int
-
Unique ID for the rendered block, used for HTML IDs.
- $depth : int
-
Current depth.
Return values
string — Rendered output.renderList()
Render the category list as a list.
protected
renderList(array<string|int, mixed> $categories, array<string|int, mixed> $attributes, int $uid, int $depth) : string
Parameters
- $categories : array<string|int, mixed>
-
List of terms.
- $attributes : array<string|int, mixed>
-
Block attributes. Default empty array.
- $uid : int
-
Unique ID for the rendered block, used for HTML IDs.
- $depth : int
-
Current depth.
Return values
string — Rendered output.renderListItems()
Render a list of terms.
protected
renderListItems(array<string|int, mixed> $categories, array<string|int, mixed> $attributes, int $uid, int $depth) : string
Parameters
- $categories : array<string|int, mixed>
-
List of terms.
- $attributes : array<string|int, mixed>
-
Block attributes. Default empty array.
- $uid : int
-
Unique ID for the rendered block, used for HTML IDs.
- $depth : int
-
Current depth.