Come modificare il contenuto delle breadcrumbs di Woocommerce?

22 mar 2016, 12:28:51
Visualizzazioni: 21.3K
Voti: 4

Voglio personalizzare le breadcrumbs direttamente da PHP. Alcune delle pagine sono generate dinamicamente e non esistono nel database, quindi devo inserirle automaticamente nelle breadcrumbs con qualche script PHP.

Non ho bisogno di modificare le impostazioni predefinite, come l'URL della homepage, i separatori, ecc... ma ho effettivamente bisogno di inserire manualmente alcune pagine nelle breadcrumbs. Ho provato con alcuni filtri e alcuni hook.

Ho letto la documentazione ma spiega solo come modificare le impostazioni predefinite.

Come posso modificare il contenuto effettivo delle breadcrumbs?

Ho provato questo:

add_filter( 'woocommerce_breadcrumb', 'change_breadcrumb' );
function change_breadcrumb( $defaults ) {
    // Modifica il testo home delle breadcrumb da 'Home' a 'Appartamento'
    //fai qualcosa
    return $defaults;
}

Ma il //fai qualcosa non viene mai eseguito. È come se quel filtro non venisse mai chiamato

0
Tutte le risposte alla domanda 1
0

Ciò è dovuto al fatto che il tuo filtro woocommerce_breadcrumb non esiste nemmeno.

Questo filtro qui funziona ed estrae tutti gli elementi attualmente presenti nel breadcrumb (come array):

add_filter( 'woocommerce_get_breadcrumb', 'change_breadcrumb' );
function change_breadcrumb( $crumbs ) {
    var_dump( $crumbs );

    return $crumbs;
}

E questo filtro estrae il termine principale (come oggetto).

add_filter( 'woocommerce_breadcrumb_main_term', 'change_breadcrumb' );
function change_breadcrumb( $main_term ) {
    var_dump( $main_term );

    return $main_term;
}

Il 'termine principale' è semplicemente il primo elemento restituito da questa funzione (riferimento):

$terms = wc_get_product_terms( $post->ID, 'product_cat', array( 'orderby' => 'parent', 'order' => 'DESC' ) )

Consulta il Riferimento agli Action e Filter Hook di woothemes per tutti gli hook e i filtri.

16 mag 2016 15:17:46