Template diverso per prodotti di categorie specifiche in WooCommerce

13 ago 2012, 15:26:55
Visualizzazioni: 42.3K
Voti: 9

Ad esempio ho una categoria macchine da caffè e un template per il singolo prodotto macchina da caffè, ma per la categoria caffè voglio avere un template single-product.php diverso, come posso implementarlo? Non ho accesso a questo post http://www.woothemes.com/support-forum/?viewtopic=83667 ma contiene una domanda simile. Con le pagine e le categorie in WordPress è semplice, ma come farlo in WooCommerce?

0
Tutte le risposte alla domanda 4
0

Potresti modificare il tuo single-product.php per reindirizzare semplicemente al template corretto in base alla categoria di prodotto del prodotto corrente.

Per farlo, copia single-product.php nella cartella woocommerce del tuo tema. Rinominalo in single-product-default.php o qualsiasi altro nome. Crea un'altra copia e chiamala single-product-coffee.php. Puoi apportare tutte le modifiche che desideri a questo file.

Quindi, nel tuo single-product.php, puoi aggiungere una semplice condizione per reindirizzare al file single-product-qualcosa.php appropriato.

if( has_term( 'coffee-maker', 'product_cat' ) ) {
    $file = 'single-product-coffee.php';
} else {
    $file = 'single-product-default.php';
}

global $woocommerce;

load_template( $woocommerce->template_url . $file );
17 mar 2013 22:05:47
2

Crea il nuovo template e chiamalo: taxonomy-product_cat-il_tuo_slug_categoria_prodotto.php così semplice come questo

24 ago 2012 12:46:33
Commenti

Questa è la risposta, anche se non è accettata.

Allen Gingrich Allen Gingrich
6 apr 2018 20:09:02

No, sembra che questo sia per l'elenco dei prodotti (archive-product), non per la pagina del singolo prodotto (single-product). Basta dare un'occhiata al codice per confermarlo.

Buzut Buzut
12 giu 2020 11:59:51
1

Ho implementato un reindirizzamento in single-product.php utilizzando l'ID del prodotto.

Poi ho creato diversi template di prodotto nella cartella woocommerce sovrascritta (../your-theme/woocommerce/) come single-product-product1.php e quello predefinito (single-product-default.php, che era semplicemente una copia del precedente single-product.php).

if($post->ID == '103'){
    wc_get_template_part( 'single-product-product1' ); 
} else{
    wc_get_template_part( 'single-product-default' );
}
5 lug 2013 20:29:54
Commenti

Ho dovuto accedere e lasciare un voto a questo! Grazie, mi hai salvato!

Tiago Tiago
31 mar 2020 18:59:01
0

Ho realizzato questo (Woocommerce 2.1) creando un template per il prodotto nei template woocommerce del mio tema chiamato 'content-single-product-{$product_cat}.php' e aggiungendo un filtro 'wc_get_template_part' che cerca template nominati in base alla categoria del prodotto. Ora puoi sovrascrivere il template content-single-product per categoria prodotto:

function my_custom_product_template($template, $slug, $name) {
    if ($name === 'single-product' && $slug === 'content') {
        global $product_cat;
        $temp = locate_template(array("{$slug}-{$name}-{$product_cat}.php", WC()->template_path() . "{$slug}-{$name}-{$product_cat}.php"));
        if($temp) {
           $template = $temp;
        }
    }
    return $template;
}

add_filter('wc_get_template_part', 'my_custom_product_template', 10, 3);
19 dic 2014 14:00:41