Cum să modifici conținutul breadcrumbs în Woocommerce?
Vreau să personalizez breadcrumbs direct din PHP. Unele dintre pagini sunt generate dinamic și nu există în baza de date, prin urmare trebuie să le introduc automat în breadcrumbs cu ajutorul unui script PHP.
Nu trebuie să modific lucrurile implicite, cum ar fi URL-ul paginii principale, separatoarele etc... dar am nevoie să introduc manual unele pagini în breadcrumbs. Am încercat cu câteva filtrări și hook-uri.
Am citit documentația dar aceasta explică doar cum să schimb lucrurile implicite.
Cum pot schimba conținutul efectiv al breadcrumbs-urilor?
Am încercat asta:
add_filter( 'woocommerce_breadcrumb', 'change_breadcrumb' );
function change_breadcrumb( $defaults ) {
// Schimbă textul home din breadcrumb din 'Home' în 'Apartament'
//fă ceva
return $defaults;
}
Dar //fă ceva
nu se execută niciodată. E ca și cum acel filtru nu ar fi apelat niciodată

Aceasta se întâmplă deoarece filtrul tău woocommerce_breadcrumb
nu există.
Acest filtru funcționează și extrage toate elementele care se află în prezent în breadcrumb (ca un array):
add_filter( 'woocommerce_get_breadcrumb', 'change_breadcrumb' );
function change_breadcrumb( $crumbs ) {
var_dump( $crumbs );
return $crumbs;
}
Și acest filtru extrage main term
(ca obiect).
add_filter( 'woocommerce_breadcrumb_main_term', 'change_breadcrumb' );
function change_breadcrumb( $main_term ) {
var_dump( $main_term );
return $main_term;
}
'Main term' este doar primul element returnat de această funcție (referință):
$terms = wc_get_product_terms( $post->ID, 'product_cat', array( 'orderby' => 'parent', 'order' => 'DESC' ) )
Consultați Action and Filter Hook Reference de la woothemes pentru toate hook-urile și filtrele.
