Automattic\WooCommerce\Blocks\BlockTypes\ProductCollection
Controller::add_product_title_click_event_directives
Add interactivity to the Product Title block within Product Collection. This enables the triggering of a custom event when the product title is clicked.
Method of the class: Controller{}
No Hooks.
Returns
String. Modified block content with added interactivity.
Usage
$Controller = new Controller(); $Controller->add_product_title_click_event_directives( $block_content, $block, $instance );
- $block_content(string) (required)
- The block content.
- $block(array) (required)
- The full block, including name and attributes.
- $instance(WP_Block) (required)
- The block instance.
Controller::add_product_title_click_event_directives() Controller::add product title click event directives code WC 10.5.0
public function add_product_title_click_event_directives( $block_content, $block, $instance ) {
$namespace = $instance->attributes['__woocommerceNamespace'] ?? '';
$is_product_title_block = 'woocommerce/product-collection/product-title' === $namespace;
$is_link = $instance->attributes['isLink'] ?? false;
// Only proceed if the block is a Product Title (Post Title variation) block.
if ( $is_product_title_block && $is_link ) {
$p = new \WP_HTML_Tag_Processor( $block_content );
$p->next_tag( array( 'class_name' => 'wp-block-post-title' ) );
$is_anchor = $p->next_tag( array( 'tag_name' => 'a' ) );
if ( $is_anchor ) {
$p->set_attribute( 'data-wp-on--click', 'woocommerce/product-collection::actions.viewProduct' );
$block_content = $p->get_updated_html();
}
}
return $block_content;
}