Différents modèles de produits pour une catégorie spécifique.WooCommerce
4 réponses
- votes
-
- 2013-03-17
Vouspouvezmodifier votrefichier single-product.phppour qu'il soit simplement une redirection vers lebonmodèleen fonction de la catégorie deproduit duproduit actuel.
Pour cefaire,vous copiez lefichier single-product.php dans le dossier woocommerce de votrethème.Renommez-leen single-product-default.php ou autre.Créez une autre copieet appelez-la single-product-coffee.php.Vouspouvez apporter lesmodifications que vous souhaitez apporter à celui-ci.
Ensuite,dans votre single-product.php,vouspouvez ajouter un conditionnel simplepour rediriger vers le single-product- quelque chose .php
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 );
You could change your single-product.php to just be a redirect to the correct template depending on what product category the current product it.
To do so you'd copy single-product.php to your theme's woocommerce folder. Rename it to single-product-default.php or anything. Create another copy and call it single-product-coffee.php. You can make whatever changes you'd like to make to this one.
Then in your single-product.php you could add a simple conditional to redirect to the appropriate single-product-something.php
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 );
-
-
C'est la réponse,même siellen'estpas acceptée.This is the answer, even though it's not accepted.
- 0
- 2018-04-06
- Allen Gingrich
-
Nope ressemble à ceci sipour la liste desproduits (produit d'archive),pas lapage deproduit unique (produit unique).Il suffit de [jeter un oeil au code] (https://github.com/woocommerce/woocommerce/blob/4.1.0/templates/taxonomy-product_cat.php)pour le confirmer.Nope looks like this if for products listing (archive-product), not the single product page (single-product). Just [take a look at the code](https://github.com/woocommerce/woocommerce/blob/4.1.0/templates/taxonomy-product_cat.php) to confirm it.
- 0
- 2020-06-12
- Buzut
-
-
- 2013-07-05
J'aieffectué une redirection dans single-product.phpen utilisant l'IDproduit.
Ensuite,j'ai créé différentsmodèles deproduits dans le dossier woocommerce remplacé (../your-theme/woocommerce/)tels que single-product-product1.phpet celuipar défaut (single-product-default.php,qui était simplement uncopie duprécédent single-product.php).
if($post->ID == '103'){ wc_get_template_part( 'single-product-product1' ); } else{ wc_get_template_part( 'single-product-default' ); }
I made a redirection in single-product.php using the product ID.
Then created different product templates in the overriden woocommerce folder (../your-theme/woocommerce/) such as single-product-product1.php and the default one (single-product-default.php, which simply was a copy of the previous single-product.php).
if($post->ID == '103'){ wc_get_template_part( 'single-product-product1' ); } else{ wc_get_template_part( 'single-product-default' ); }
-
J'ai dû se connecteret voterpour cela!Merci,m'a sauvé!Had to log in and give a vote to this! Thanks, saved me!
- 0
- 2020-03-31
- Tiago
-
- 2014-12-19
J'aifait cela (Woocommerce 2.1)en créant unmodèlepour leproduit dans lesmodèles woocommerce demonthèmenommé 'content-single-product - {$product_cat} .php'et en ajoutant unfiltre 'wc_get_template_part' qui recherche lesmodèlesnommésaprès la catégorie deproduit.Vouspouvez désormais remplacer lemodèle de contenu uniquepar catégorie deproduit:
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);
I have done this (Woocommerce 2.1) by creating a template for the product in my theme's woocommerce templates named 'content-single-product-{$product_cat}.php' and adding a 'wc_get_template_part' filter that searches for templates named after the product category. Now you can override the content-single-product template by product category:
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);
Parexemple,j'ai desmachines à café de catégorieet unmodèlepour lemodèle deproduit unique demachine à café,maispour la catégorie café,je veux avoir unmodèle single-product.php différent,commentmettreen œuvre cela? jen'aipas accès à cepost http://www.woothemes.com/support-forum/?viewtopic=83667 maisil a une question similaire,avec despageset des catégories dans WordPress c'est simple,mais comment lefaire dans woocommerce?