7 sujets de 1 à 7 (sur un total de 7)
  • Auteur
    Messages
  • #46336
    Fred – WooFrance
    Maître des clés
    Points: 7,420 pts
    Certifié
    Membre 2 étoiles

    Salut

    Pas d’idée mais si vous trouvez, je veux bien le tuyau.

    ====================
    depanagewp
    vpsa2
    #46339
    yacine
    Participant
    Points: 26 pts
    Membre 2 étoiles

    ca va rendre la boucoup d’utilisateur woocommrece heureux

    ====================
    depanagewp
    vpsa2
    #46362
    Mathieu
    Participant
    Points: 1,315 pts
    Membre 2 étoiles

    Mettez les catégories principales dans le menu et ensuite le code suivant va les compléter récursivement avec les catégories enfants :

    
    add_filter("wp_get_nav_menu_items", function ($items, $menu, $args) {
    
        if (is_admin()) {
            return $items;
        }
    
        foreach ($items as $index => $i) {
            
            if ("product_cat" !== $i->object) {
                continue;
            }
            
            $categorie = get_term($i->object_id);
            
            $items = apply_filters("NOM_EXTENSION/ajoutEnfantsMenu", $items, $categorie, $index, "", $i->db_id);
            
        }
        
        
        return $items;
    
    }, 10, 3);
    
    add_filter("NOM_EXTENSION/ajoutEnfantsMenu", function ($items, $parent, $indexParent, $prefixeIdParent, $menuParent) {
        
        
        $termEnfants = get_terms($parent->taxonomy, [
            "parent" => $parent->term_id,
        ]);
        
        
        $prefixeIdEnfant = "menu_{$parent->taxonomy}_";
        
        foreach ($termEnfants as $index2 => $enfant) {
            
            $indexEnfant = 1000 * ($indexParent + 1) + $index2;
            $menuEnfant = 1000 * $menuParent + $index2;
            
            $e = new \stdClass();
            
            $e->title = $enfant->name;
            $e->url = get_term_link($enfant);
            $e->menu_order = $indexEnfant;
            $e->post_type = "nav_menu_item";
            $e->post_status = "published";
            $e->menu_item_parent = "$prefixeIdParent$menuParent";
            $e->type = "custom";
            $e->object = "custom";
            $e->description = "";
            $e->object_id = 0;
            $e->db_id = "$prefixeIdEnfant$menuEnfant";
            $e->ID = "$prefixeIdEnfant$menuEnfant";
            $e->classes = [];
            
            $items[] = $e;
            
            
            $items = apply_filters("NOM_EXTENSION/ajoutEnfantsMenu", $items, $enfant, $indexEnfant, $prefixeIdEnfant, $menuEnfant);
            
        }
        
        
        return $items;
        
    }, 10, 5);
    
    
    ====================
    depanagewp
    vpsa2
    #46367
    yacine
    Participant
    Points: 26 pts
    Membre 2 étoiles

    bonsoir et merci pour votre réponse mais jai pas vraiment capter

    il faut mettre ce bout de code ou exactement

    cordialement

    ====================
    depanagewp
    vpsa2
    #46387
    Mathieu
    Participant
    Points: 1,315 pts
    Membre 2 étoiles

    Vous pouvez mettre cela en créant une extension ou dans le fichier functions.php du thème.

    ====================
    depanagewp
    vpsa2
    #205096
    poezevara
    Participant
    Points: 13 pts

    Bonjour j’utilise votre code bien qu’il fonctionne mais il me génère des erreurs php

    Voila ce que me retourne query monitor (voir photo)

    [attachment file= »205098″]

    ====================
    depanagewp
    vpsa2
    #207367
    WB2
    Modérateur
    Points: 3,389 pts
    Membre 2 étoiles

    Bonjour, je pense que c’est faisable avec le plugin Mega Menu : https://woofrance.fr/comment-faire-un-mega-menu-dans-wordpress-avec-max-mega-menu/

    Apparence> Menus, et développez la section «Options d’écran» en haut à droite de la page. Activez « Catégories de produits » et « Tags de produits ».

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