erm ) { $settings['term'] = $main_term->slug; } } } return $settings; } /** * Apply WooCommerce breadcrumb filters to Core breadcrumbs block items. * * This bridges the Core breadcrumbs block with WooCommerce's legacy breadcrumb filters, * ensuring backward compatibility for sites that have customized breadcrumbs using * the `woocommerce_get_breadcrumb` filter. * * @param array $items Array of breadcrumb items from Core. * @return array Modified breadcrumb items. * * @internal */ public function apply_woocommerce_breadcrumb_filters( $items ) { // Convert Core format to WooCommerce format. // Core: array( 'url' => '...', 'label' => '...' ) // Woo: array( 'label', 'url' ). $wc_crumbs = array_map( function ( $item ) { return array( $item['label'] ?? '', $item['url'] ?? '', ); }, $items ); /** * Filters the breadcrumb trail array. * * @since 2.3.0 * * @param array $crumbs The breadcrumb trail. * @param \WC_Breadcrumb|null $breadcrumb The breadcrumb object (null when called from Core block). */ $wc_crumbs = apply_filters( 'woocommerce_get_breadcrumb', $wc_crumbs, null ); // Convert back to Core format. return array_map( function ( $crumb ) { return array( 'label' => $crumb[0] ?? '', 'url' => $crumb[1] ?? '', ); }, $wc_crumbs ); } }