Automattic\WooCommerce\Blocks\Templates

ArchiveProductTemplatesCompatibility::set_hook_data()protectedWC 1.0

The hook data to inject to the rendered content of blocks. This also contains hooked functions that will be removed by remove_default_hooks.

The array format: [ <hook-name> => [

block_name => <block-name>,
position => before|after,
hooked => [
  <function-name> => <priority>,
   ...
],
permanently_removed_actions => [
	<function-name>

] ], ] Where:

  • hook-name is the name of the hook that will be replaced.
  • block-name is the name of the block that will replace the hook.
  • position is the position of the block relative to the hook.
  • hooked is an array of functions hooked to the hook that will be replaced. The key is the function name and the value is the priority.
  • permanently_removed_actions is an array of functions that we do not want to re-add after they have been removed to avoid duplicate content with the Products block and its inner blocks.

Method of the class: ArchiveProductTemplatesCompatibility{}

No Hooks.

Return

null. Nothing (null).

Usage

// protected - for code of main (parent) or child class
$result = $this->set_hook_data();

ArchiveProductTemplatesCompatibility::set_hook_data() code WC 9.3.3

protected function set_hook_data() {
	$this->hook_data = array(
		'woocommerce_before_main_content'         => array(
			'block_names' => array( 'core/query', 'woocommerce/product-collection' ),
			'position'    => 'before',
			'hooked'      => array(
				'woocommerce_output_content_wrapper' => 10,
				'woocommerce_breadcrumb'             => 20,
			),
		),
		'woocommerce_after_main_content'          => array(
			'block_names' => array( 'core/query', 'woocommerce/product-collection' ),
			'position'    => 'after',
			'hooked'      => array(
				'woocommerce_output_content_wrapper_end' => 10,
			),
		),
		'woocommerce_before_shop_loop_item_title' => array(
			'block_names' => array( 'core/post-title' ),
			'position'    => 'before',
			'hooked'      => array(
				'woocommerce_show_product_loop_sale_flash' => 10,
				'woocommerce_template_loop_product_thumbnail' => 10,
			),
		),
		'woocommerce_shop_loop_item_title'        => array(
			'block_names' => array( 'core/post-title' ),
			'position'    => 'after',
			'hooked'      => array(
				'woocommerce_template_loop_product_title' => 10,
			),
		),
		'woocommerce_after_shop_loop_item_title'  => array(
			'block_names' => array( 'core/post-title' ),
			'position'    => 'after',
			'hooked'      => array(
				'woocommerce_template_loop_rating' => 5,
				'woocommerce_template_loop_price'  => 10,
			),
		),
		'woocommerce_before_shop_loop_item'       => array(
			'block_names' => array( self::LOOP_ITEM_ID ),
			'position'    => 'before',
			'hooked'      => array(
				'woocommerce_template_loop_product_link_open' => 10,
			),
		),
		'woocommerce_after_shop_loop_item'        => array(
			'block_names' => array( self::LOOP_ITEM_ID ),
			'position'    => 'after',
			'hooked'      => array(
				'woocommerce_template_loop_product_link_close' => 5,
				'woocommerce_template_loop_add_to_cart' => 10,
			),
		),
		'woocommerce_before_shop_loop'            => array(
			'block_names'                 => array( 'core/post-template', 'woocommerce/product-template' ),
			'position'                    => 'before',
			'hooked'                      => array(
				'woocommerce_output_all_notices' => 10,
				'woocommerce_result_count'       => 20,
				'woocommerce_catalog_ordering'   => 30,
			),
			'permanently_removed_actions' => array(
				'woocommerce_output_all_notices',
				'woocommerce_result_count',
				'woocommerce_catalog_ordering',
			),
		),
		'woocommerce_after_shop_loop'             => array(
			'block_names'                 => array( 'core/post-template', 'woocommerce/product-template' ),
			'position'                    => 'after',
			'hooked'                      => array(
				'woocommerce_pagination' => 10,
			),
			'permanently_removed_actions' => array(
				'woocommerce_pagination',
			),
		),
		'woocommerce_no_products_found'           => array(
			'block_names'                 => array( 'core/query-no-results' ),
			'position'                    => 'before',
			'hooked'                      => array(
				'wc_no_products_found' => 10,
			),
			'permanently_removed_actions' => array(
				'wc_no_products_found',
			),
		),
		'woocommerce_archive_description'         => array(
			'block_names' => array( 'core/term-description' ),
			'position'    => 'before',
			'hooked'      => array(
				'woocommerce_taxonomy_archive_description' => 10,
				'woocommerce_product_archive_description'  => 10,
			),
		),
	);
}