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. */ protected function set_hook_data() { $this->hook_data = array( 'woocommerce_before_main_content' => array( 'block_name' => 'core/query', 'position' => 'before', 'hooked' => array( 'woocommerce_output_content_wrapper' => 10, 'woocommerce_breadcrumb' => 20, ), ), 'woocommerce_after_main_content' => array( 'block_name' => 'core/query', 'position' => 'after', 'hooked' => array( 'woocommerce_output_content_wrapper_end' => 10, ), ), 'woocommerce_before_shop_loop_item_title' => array( 'block_name' => '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_name' => 'core/post-title', 'position' => 'after', 'hooked' => array( 'woocommerce_template_loop_product_title' => 10, ), ), 'woocommerce_after_shop_loop_item_title' => array( 'block_name' => 'core/post-title', 'position' => 'before', 'hooked' => array( 'woocommerce_template_loop_rating' => 5, 'woocommerce_template_loop_price' => 10, ), ), 'woocommerce_before_shop_loop_item' => array( 'block_name' => self::LOOP_ITEM_ID, 'position' => 'before', 'hooked' => array( 'woocommerce_template_loop_product_link_open' => 10, ), ), 'woocommerce_after_shop_loop_item' => array( 'block_name' => 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_name' => 'core/post-template', 'position' => 'before', 'hooked' => array( 'woocommerce_output_all_notices' => 10, 'woocommerce_result_count' => 20, 'woocommerce_catalog_ordering' => 30, ), ), 'woocommerce_after_shop_loop' => array( 'block_name' => 'core/post-template', 'position' => 'after', 'hooked' => array( 'woocommerce_pagination' => 10, ), ), 'woocommerce_no_products_found' => array( 'block_name' => 'core/query-no-results', 'position' => 'before', 'hooked' => array( 'wc_no_products_found' => 10, ), ), 'woocommerce_archive_description' => array( 'block_name' => 'core/term-description', 'position' => 'before', 'hooked' => array( 'woocommerce_taxonomy_archive_description' => 10, 'woocommerce_product_archive_description' => 10, ), ), ); } /** * Check if current page is a product archive template. */ private function is_archive_template() { return is_shop() || is_product_taxonomy(); } /** * Loop through inner blocks recursively to find the Products blocks that * inherits query from template. * * @param array $block Parsed block data. */ private function inner_blocks_walker( &$block ) { if ( 'core/query' === $block['blockName'] && isset( $block['attrs']['namespace'] ) && 'woocommerce/product-query' === $block['attrs']['namespace'] && isset( $block['attrs']['query']['inherit'] ) && $block['attrs']['query']['inherit'] ) { $this->inject_attribute( $block ); $this->remove_default_hooks(); } if ( ! empty( $block['innerBlocks'] ) ) { array_walk( $block['innerBlocks'], array( $this, 'inner_blocks_walker' ) ); } } /** * Recursively inject the custom attribute to all nested blocks. * * @param array $block Parsed block data. */ private function inject_attribute( &$block ) { $block['attrs']['isInherited'] = 1; if ( ! empty( $block['innerBlocks'] ) ) { array_walk( $block['innerBlocks'], array( $this, 'inject_attribute' ) ); } } }
Fatal error: Uncaught Error: Class "Automattic\WooCommerce\Blocks\Templates\ArchiveProductTemplatesCompatibility" not found in /htdocs/endotechplus.re/wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/Domain/Bootstrap.php:284 Stack trace: #0 /htdocs/endotechplus.re/wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/Registry/AbstractDependencyType.php(42): Automattic\WooCommerce\Blocks\Domain\Bootstrap->Automattic\WooCommerce\Blocks\Domain\{closure}(Object(Automattic\WooCommerce\Blocks\Registry\Container)) #1 /htdocs/endotechplus.re/wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/Registry/SharedType.php(28): Automattic\WooCommerce\Blocks\Registry\AbstractDependencyType->resolve_value(Object(Automattic\WooCommerce\Blocks\Registry\Container)) #2 /htdocs/endotechplus.re/wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/Registry/Container.php(96): Automattic\WooCommerce\Blocks\Registry\SharedType->get(Object(Automattic\WooCommerce\Blocks\Registry\Container)) #3 /htdocs/endotechplus.re/wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/Domain/Bootstrap.php(134): Automattic\WooCommerce\Blocks\Registry\Container->get('Automattic\\WooC...') #4 /htdocs/endotechplus.re/wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/Domain/Bootstrap.php(74): Automattic\WooCommerce\Blocks\Domain\Bootstrap->init() #5 /htdocs/endotechplus.re/wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/Package.php(125): Automattic\WooCommerce\Blocks\Domain\Bootstrap->__construct(Object(Automattic\WooCommerce\Blocks\Registry\Container)) #6 /htdocs/endotechplus.re/wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/Registry/AbstractDependencyType.php(42): Automattic\WooCommerce\Blocks\Package::Automattic\WooCommerce\Blocks\{closure}(Object(Automattic\WooCommerce\Blocks\Registry\Container)) #7 /htdocs/endotechplus.re/wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/Registry/SharedType.php(28): Automattic\WooCommerce\Blocks\Registry\AbstractDependencyType->resolve_value(Object(Automattic\WooCommerce\Blocks\Registry\Container)) #8 /htdocs/endotechplus.re/wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/Registry/Container.php(96): Automattic\WooCommerce\Blocks\Registry\SharedType->get(Object(Automattic\WooCommerce\Blocks\Registry\Container)) #9 /htdocs/endotechplus.re/wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/Package.php(44): Automattic\WooCommerce\Blocks\Registry\Container->get('Automattic\\WooC...') #10 [internal function]: Automattic\WooCommerce\Blocks\Package::init() #11 /htdocs/endotechplus.re/wp-content/plugins/woocommerce/src/Packages.php(71): call_user_func(Array) #12 /htdocs/endotechplus.re/wp-content/plugins/woocommerce/src/Packages.php(44): Automattic\WooCommerce\Packages::load_packages() #13 /htdocs/endotechplus.re/wp-includes/class-wp-hook.php(307): Automattic\WooCommerce\Packages::on_init('') #14 /htdocs/endotechplus.re/wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters(NULL, Array) #15 /htdocs/endotechplus.re/wp-includes/plugin.php(476): WP_Hook->do_action(Array) #16 /htdocs/endotechplus.re/wp-settings.php(461): do_action('plugins_loaded') #17 /htdocs/endotechplus.re/wp-config.php(124): require_once('/htdocs/endotec...') #18 /htdocs/endotechplus.re/wp-load.php(50): require_once('/htdocs/endotec...') #19 /htdocs/endotechplus.re/wp-blog-header.php(13): require_once('/htdocs/endotec...') #20 /htdocs/endotechplus.re/index.php(17): require('/htdocs/endotec...') #21 {main} thrown in /htdocs/endotechplus.re/wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/Domain/Bootstrap.php on line 284