2016-08-04 1 views
1

J'essaie d'afficher différents champs personnalisés pour différentes catégories dans WooCommerce.Afficher différents champs personnalisés pour différentes catégories dans WooCommerce

Je l'ai utilisé l'instruction conditionnelle suivante dans le fichier de modèle unique product.php-contenu:

 if(is_product_category('categoryname')) 
    { 
     // display my customized field 
    } 
else 
{ 
do_action('woocommerce_after_single_product_summary'); 
} 

Mais cela ne fonctionne pas pour moi.

Existe-t-il une meilleure façon de résoudre ce problème?

Merci.

Répondre

1

La condition is_product_category() ne fonctionnera pas pour vous dans les modèles de produit unique. Les bonnes conditions sont une combinaison de deux dans ce cas:

if (is_product() && has_term('categoryname', 'product_cat')) { 

    // display my customized field 

} 
.... 

Il semble que vous essayez de passer outre content-single-product.php modèle.

Déplacement woocommerce_single_product_summary crochet dans votre ELSE n'est pas une très bonne idée, que si vous ne voulez pas afficher pour 'categoryname' produit que 3 fonctions: crochu

* @hooked woocommerce_output_product_data_tabs - 10 
* @hooked woocommerce_upsell_display - 15 
* @hooked woocommerce_output_related_products - 20 

lieu (de passer outre modèles ici) vous pouvez intégrer votre code (sur le fichier function.php de votre thème ou thème enfant actif) dans une fonction accroché en utilisant le plus pratique de ce 2 crochets:

//In hook 'woocommerce_single_product_summary' with priority up to 50. 

add_action('woocommerce_single_product_summary', 'displaying_my_customized_field', 100); 
function displaying_my_customized_field($woocommerce_template_single_title, $int) { 
    if (is_product() && has_term('categoryname', 'product_cat')) { 

     // echoing my customized field 

    } 
}; 

OU

// In hook 'woocommerce_after_single_product_summary' with priority less than 10 

add_action('woocommerce_after_single_product_summary', 'displaying_my_customized_field', 5); 
function displaying_my_customized_field($woocommerce_template_single_title, $int) { 
    if (is_product() && has_term('categoryname', 'product_cat')) { 

     // echoing my customized field 

    } 
}; 
+0

Merci beaucoup. Overriding content-single-product.php a fonctionné pour moi. Merci encore. –