Modèle différent de produits pour une catégorie spécifique. WooCommerce

8

Par exemple, j'ai des machines à café de catégorie et un modèle pour le modèle de produit unique de machine à café, mais pour la catégorie de café, je veux avoir un modèle de single-product.php différent, comment mettre en œuvre cela? je n'ai pas accès à cet article http://www.woothemes.com/support-forum/?viewtopic=83667 mais il a une question similaire, avec des pages et des catégories dans WordPress c'est simple, mais comment le faire dans woocommerce?

Anatoliy
la source

Réponses:

5

Créez le nouveau modèle et nommez-le: taxonomy-product_cat-Your_category_product_slug.php aussi simple que cela

alberto
la source
Telle est la réponse, même si elle n'est pas acceptée.
Allen Gingrich
4

Vous pouvez modifier votre single-product.php pour être simplement une redirection vers le modèle correct en fonction de la catégorie de produit du produit actuel.

Pour ce faire, vous devez copier single-product.php dans le dossier woocommerce de votre thème. Renommez-le en single-product-default.php ou quoi que ce soit. Créez une autre copie et appelez-la single-product-coffee.php. Vous pouvez apporter les modifications que vous souhaitez apporter à celui-ci.

Ensuite, dans votre single-product.php, vous pouvez ajouter une conditionnelle simple pour rediriger vers le single-product- quelque chose .php approprié

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 );
helgatheviking
la source
3

J'ai fait une redirection dans single-product.php en utilisant l'ID produit.

Ensuite, créé différents modèles de produits dans le dossier woocommerce remplacé (../your-theme/woocommerce/) tels que single-product-product1.php et celui par défaut (single-product-default.php, qui était simplement une copie de la précédent single-product.php).

if($post->ID == '103'){
wc_get_template_part( 'single-product-product1' ); 
} else{
wc_get_template_part( 'single-product-default' );
}
Chambre Gecko
la source
J'ai dû me connecter et voter pour cela! Merci, m'a sauvé!
Tiago
1

Je l'ai fait (Woocommerce 2.1) en créant un modèle pour le produit dans les modèles de woocommerce de mon thème nommé 'content-single-product - {$ product_cat} .php' et en ajoutant un filtre 'wc_get_template_part' qui recherche les modèles nommés d'après le produit Catégorie. Vous pouvez désormais remplacer le modèle de contenu unique par catégorie de produit:

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);
benedict_w
la source