4 * * @param number $product_per_page Products per page. * @return int[] Products ids. */ private function get_related_products_ids( $product_per_page = 5 ): array { global $post; $product = wc_get_product( $post->ID ); if ( ! $product instanceof \WC_Product ) { return array(); } $related_products_ids = wc_get_related_products( $product->get_id(), $product_per_page, $product->get_upsell_ids() ); if ( ! empty( $related_products_ids ) ) { // Prime caches to reduce future queries. _prime_post_caches( $related_products_ids ); $related_products = array_filter( array_map( 'wc_get_product', $related_products_ids ), 'wc_products_array_filter_visible' ); $related_products = wc_products_array_orderby( $related_products, 'rand', 'desc' ); /** @var \WC_Product[] $related_products */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort // Prime caches to reduce future queries. _prime_post_caches( array_filter( array_map( fn( $product ) => (int) $product->get_image_id(), $related_products ) ) ); $related_products_ids = array_map( fn( $product ) => $product->get_id(), $related_products ); } return $related_products_ids; } }
Fatal error: Uncaught Error: Class "Automattic\WooCommerce\Blocks\BlockTypes\RelatedProducts" not found in /htdocs/wp-content/plugins/woocommerce/src/Blocks/BlockTypesController.php:118 Stack trace: #0 /htdocs/wp-includes/class-wp-hook.php(341): Automattic\WooCommerce\Blocks\BlockTypesController->register_blocks('') #1 /htdocs/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters(NULL, Array) #2 /htdocs/wp-includes/plugin.php(522): WP_Hook->do_action(Array) #3 /htdocs/wp-settings.php(742): do_action('init') #4 /htdocs/wp-config.php(98): require_once('/htdocs/wp-sett...') #5 /htdocs/wp-load.php(50): require_once('/htdocs/wp-conf...') #6 /htdocs/wp-blog-header.php(13): require_once('/htdocs/wp-load...') #7 /htdocs/index.php(17): require('/htdocs/wp-blog...') #8 {main} thrown in /htdocs/wp-content/plugins/woocommerce/src/Blocks/BlockTypesController.php on line 118