Automattic\WooCommerce\Blocks
BlockTypesController::apply_woocommerce_breadcrumb_filters
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
Method of the class: BlockTypesController{}
Hooks from the method
Returns
Array. Modified breadcrumb items.
Usage
$BlockTypesController = new BlockTypesController(); $BlockTypesController->apply_woocommerce_breadcrumb_filters( $items );
- $items(array) (required)
- Array of breadcrumb items from Core.
BlockTypesController::apply_woocommerce_breadcrumb_filters() BlockTypesController::apply woocommerce breadcrumb filters code WC 10.9.4
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
);
}