[Résolu] Bouton “voir tout les produits”

  • WordPress :5.2
  • Statut : résolu
4 sujets de 1 à 4 (sur un total de 4)
  • Auteur
    Messages
  • #2273342
    Grafyx89
    Participant
    Initié WordPress
    31 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Thème utilisé : Salient

    J’aimerai mettre un bouton “voir tout les produits de la gamme” en bas des fiches produits.
    Aussi, j’ai mis ce code dans function.php

    add_action ('woocommerce_after_single_product','add_back_product_category_button', 5);
    		function add_back_product_category_button(){
    
    		    // Get the product categories set in the product
    		    $terms = wp_get_post_terms( get_the_id(), 'product_cat' );
    
    		    // Check that there is at leat one product category set for the product
    		    if(sizeof($terms) > 0){
    		        // Get the first product category WP_Term object
    		        $term = reset($terms);
    		        // Get the term link (button link)
    		        $link = get_term_link( $term, 'product_cat' );
    
    		        // Button text
    		        $text = __('Voir la gammme complète','woocommerce');
    						// . ' <strong>' . $term->name . '</strong>'
    		        // Output
    		        echo '<p><a href="'.esc_url($link).'" title="'.$text.'" class="button '.$term->slug.'">'.$text.'</a></p>';
    		    }
    		}

    Mais il fait un retour à la catégorie enfant dans laquelle est le produit, hors, j’aimerai qu’il redirige vers la catégorie parente du produit.

    Je ne comprend pas quel variable utilisé pour le coup ..

    Si quelqu’un a une solution, je suis preneur 🙂 Merci beaucoup

    • Ce sujet a été modifié le il y a 2 mois et 1 week par  C_Lucien. Raison: Déplacé vers Support WooCommerce
    #2273381
    ferman
    Participant
    Maître WordPress
    1250 contributions

    Bonjour,

    Cette demande aurait dû être faite sur le support woocommerce. Mais bon comme je ne peux pas la déplacer et que personne ne l’a fait…

    Dans la version originale de la fonction (stackoverflow) l’intervenant trouve le contraire de ce que vous observez:

    “<span class=”comment-copy”>Code works, but in your solution if the path looks like this: ” Clothing > Hoodies > Happy Ninja” – it skips the Subcategory. Is it possible to apply this Back button, for the last Subcategory instead of the Main category? Like “Back to Hoodies” in the case mentioned?”</span>

    Je n’ai pas de sous-catégorie mais j’en ai créé une pour vérifier. Donc j’observe la même chose que vous. Le problème vient de ce que le code donne la première catégorie (donc dans ce cas la sous-catégorie) où se trouve le produit. Pour remonter à la  catégorie parente il faut donc modifier ce code . Cela peut se faire en utilisant une autre fonction  trouvée sur stack exchange justement faite pour retourner les catégories parentes. En la combinant avec la dernière partie de la vôtre (celle qui concerne le bouton) on arrive à ce que vous voulez . Cela donne le code suivant.Essayez. Chez moi ça fonctionne. Je trouve cela assez compliqué mais il est sûr que ça permet de se perfectionner.

    	add_action ('woocommerce_after_single_product','add_back_product_category_button', 5);
     
    function add_back_product_category_button(){
    
    $product_cats = wp_get_post_terms( get_the_ID(), 'product_cat' );
    
    if( ! empty( $product_cats ) ) {
    
        $single_cat = array_shift( $product_cats );
        $product_ancs = get_ancestors( $single_cat->term_id, 'product_cat' );
    
    if( ! empty( $product_ancs ) ) {
    
        $top_level_cat  = array_shift( array_reverse( $product_ancs ) );
        $single_cat     = get_term( $top_level_cat, 'product_cat' );
    	$link = get_term_link( $single_cat, 'product_cat' );
    
    	// Button text
    	$text = __('Voir la gammme complète','woocommerce');
    	
    	echo '<p><a href="'.esc_url($link).'" title="'.$text.'" class="button '.$s->slug.'">'.$text.'</a></p>';
        }
      }
    }

    • Cette réponse a été modifiée le il y a 2 mois et 1 week par  ferman.
    #2273383
    ferman
    Participant
    Maître WordPress
    1250 contributions

    Pardon, j’ai confondu avec un autre post celui-ci est bien où il faut!

    #2273408
    Grafyx89
    Participant
    Initié WordPress
    31 contributions

    Top !
    Merci beaucoup Ferman 🙂 en effet, le mix fonctionne. Mix pas très simple, mais efficace.

    Merci encore,
    Bonne journée !

4 sujets de 1 à 4 (sur un total de 4)
  • Vous devez être connecté pour répondre à ce sujet.