Template diferit pentru produse în funcție de categorie specifică în WooCommerce

13 aug. 2012, 15:26:55
Vizualizări: 42.3K
Voturi: 9

De exemplu, am categoria aparate de cafea și un template pentru pagina individuală a aparatului de cafea, dar pentru categoria cafea vreau să am un template single-product.php diferit. Cum pot implementa acest lucru? Nu am acces la această postare http://www.woothemes.com/support-forum/?viewtopic=83667, dar are o întrebare similară. Cu paginile și categoriile în WordPress este simplu, dar cum se poate face acest lucru în WooCommerce?

0
Toate răspunsurile la întrebare 4
0

Ai putea modifica fișierul single-product.php pentru a face o redirecționare către șablonul corect în funcție de categoria produsului curent.

Pentru a face asta, copiezi single-product.php în folderul woocommerce al temei tale. Redenumește-l în single-product-default.php sau orice alt nume. Creează o altă copie și numește-o single-product-coffee.php. Poți face orice modificări dorești în acest fișier.

Apoi, în single-product.php poți adăuga o condiție simplă pentru a redirecționa către fișierul single-product-ceva.php corespunzător.

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

Creează noul șablon și numește-l: taxonomy-product_cat-Your_category_product_slug.php atât de simplu precum acesta

24 aug. 2012 12:46:33
Comentarii

Acesta este răspunsul, chiar dacă nu este acceptat.

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

Nu, se pare că aceasta este pentru lista de produse (archive-product), nu pentru pagina unui singur produs (single-product). Doar uită-te la cod pentru a confirma.

Buzut Buzut
12 iun. 2020 11:59:51
1

Am realizat o redirecționare în single-product.php folosind ID-ul produsului.

Apoi am creat șabloane diferite pentru produse în directorul suprascris al WooCommerce (../your-theme/woocommerce/), cum ar fi single-product-product1.php și cel implicit (single-product-default.php, care a fost pur și simplu o copie a fișierului anterior single-product.php).

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

A trebuit să mă autentific și să votez pentru asta! Mulțumesc, m-ai salvat!

Tiago Tiago
31 mar. 2020 18:59:01
0

Am realizat acest lucru (Woocommerce 2.1) prin crearea unui șablon pentru produs în folderul de șabloane woocommerce al temei mele, numit 'content-single-product-{$product_cat}.php' și adăugarea unui filtru 'wc_get_template_part' care caută șabloane denumite după categoria produsului. Acum puteți suprascrie șablonul content-single-product în funcție de categoria produsului:

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 dec. 2014 14:00:41