J'essaie d'éditer le modèle de description courte pour qu'il soit différent sur les pages de produit variables (simples) que sur les produits simples. le code dans cette page est ici:
global $post;
if ( ! $post->post_excerpt )
return;
?>
<div itemprop="description">
<?php echo apply_filters( 'woocommerce_short_description', $post->post_excerpt ) ?>
</div>
Je veux ajouter du code à l'instruction if qui ressemblera à quelque chose comme
si post comporte des variantes, ne pas afficher de brève description, si un produit simple affiche
mais je ne trouve aucun moyen dans le code de faire la distinction entre une publication de produit simple et régulière et une autre qui est variable (comporte des variantes). Et en parcourant la documentation de l'API sur le site Woo ( http://docs.woothemes.com/wc-apidocs/ ), je n'ai rien trouvé de ce genre.
Après beaucoup de chagrin d'amour, j'ai trouvé les deux solutions suivantes:
Dans la boucle du produit, vous pouvez utiliser ceci:
if( $product->has_child() ) {
mais pour une raison quelconque dans la description courte sur la page du produit unique, je devais utiliser ceci:
global $post;
$children = get_pages('child_of='.$post->ID);
if( count( $children ) !== 0 ) {
J'espère que cela aidera les autres qui luttaient comme moi ...
Utilisez la fonction $product->is_type()
pour vérifier le type de produit. Pour vérifier si le produit est un produit variable, utilisez:
global $product;
// $product->is_type( $type ) checks the product type, string/array $type ( 'simple', 'grouped', 'variable', 'external' ), returns boolean
if ( $product->is_type( 'variable' ) ) {}
Il existe également une fonction
$product->get_type()
qui renvoie le type interne d'un produit sous forme de chaîne.
Pour une raison quelconque, si vous avez supprimé votre variante, la fonction has_child () devient toujours vraie.
J'ai donc utilisé la solution ci-dessous
if(empty($product->get_available_variations())) {
// Your code goes here
}