Création de categories via PHP

  • WordPress :5.2
  • Statut : non résolu
2 sujets de 1 à 2 (sur un total de 2)
  • Auteur
    Messages
  • #2281493
    hypopolol
    Participant
    Initié WordPress
    10 contributions

    Bonjour,

    J’ai un ptit soucis avec un script php:

    function cat_type () {
    
    	 $cats = get_cats();
    	 $libelle = array_column( $cats, 'D');
    	 $niveau = array_column( $cats, 'E');
    	 $nblignes = count($cats);
    
    	for ($i=0; $i < $nblignes; $i++) { 
    
    		$niv = round($niveau[$i]);
    		$lib = $libelle[$i];
    		
    		if ($niv == 1) {
    			$id = substr($lib, 0, 4);
    			$parent = substr($lib, 0, 2);
    			$cat_name = substr($lib, 7);
    			$catarr = array(
    						    'cat_ID' => $id,
    							'cat_name' => $cat_name,
    							'category_parent' => $parent,
    							'taxonomy' => 'product_cat' );
    			update_woocommerce_term_meta( $catarr, $wp_error );
    			echo $id.' | '.$parent.' | '.$cat_name.'<br>';
    		}
    
    		if ($niv == 2) {
    			$id = substr($lib, 0, 2);
    			$parent = substr($lib, 0, 1);
    			$cat_name = substr($lib, 5);
    			$catarr = array(
    						    'cat_ID' => $id,
    							'cat_name' => $cat_name,
    							'category_parent' => $parent,
    							'taxonomy' => 'product_cat' );
    			update_woocommerce_term_meta( $catarr, $wp_error );
    			echo $id.' | '.$parent.' | '.$cat_name.'<br>';
    		}
    
    		if ($niv == 3) {
    			$id = substr($lib, 0, 1);
    			$parent = '';
    			$cat_name = substr($lib, 4);
    			$catarr = array(
    						    'cat_ID' => $id,
    							'cat_name' => $cat_name,
    							'taxonomy' => 'product_cat' );
    			update_woocommerce_term_meta( $catarr, $wp_error );
    			echo $id.' | '.$parent.' | '.$cat_name.'<br>';
    		}
    
    	}
    
    }
    
    cat_type();
    Création des categories de produits

    voilà ce que renvois les echos :

    1 |  | LIBRAIRIE
    2 |  | CADEAUX
    3 |  | PAPETERIE
    4 |  | INFORMATIQUE
    5 |  | CARTERIE
    6 |  | PRESSE
    7 |  | SERVICES
    11 | 1 | JEUNESSE
    12 | 1 | ROMANS
    13 | 1 | BEAUX LIVRES
    14 | 1 | CARTES ROUTIERES
    15 | 1 | REGIONAL
    16 | 1 | BD
    17 | 1 | POCHES
    21 | 2 | MONTRES - BIJOUX
    22 | 2 | MAROQUINERIE
    23 | 2 | JOUETS
    24 | 2 | SOUVENIRS
    31 | 3 | PETITES FOURNITURES
    32 | 3 | SCOLAIRE
    33 | 3 | LUXE
    34 | 3 | AGENDAS
    35 | 3 | REGISTRES PROFESSIONNELS
    36 | 3 | PAPIER IMPRIMANTE
    41 | 4 | ENCRES IMPRIMANTES
    42 | 4 | PETIT MATERIEL
    43 | 4 | MATERIEL INFORMATIQUE
    51 | 5 | CARTERIE DEPOTS
    52 | 5 | CELY
    53 | 5 | MG EDITIONS
    54 | 5 | EDITOR
    61 | 6 | PUBLICATIONS
    62 | 6 | PQR
    63 | 6 | PQN
    71 | 7 | CLES
    72 | 7 | PHOTOCOPIES
    73 | 7 | RELIURES
    74 | 7 | SCANS
    75 | 7 | AUTRES
    76 | 7 | TAMPONS - CARTES DE VISITES
    1101 | 11 | EVEIL 0-3 ANS
    1102 | 11 | ENFANTS 3 - 10
    1103 | 11 | ADOS 11 - 18
    1104 | 11 | YOUNG ADULT
    1105 | 11 | CLASSIQUES
    1201 | 12 | TERROIR
    1202 | 12 | ROMANCE
    1203 | 12 | POLICIER
    1204 | 12 | HISTORIQUE
    1205 | 12 | PRIX LITTERAIRES
    1301 | 13 | BEAUX LIVRES
    1401 | 14 | IGN
    1402 | 14 | MICHELIN
    1403 | 14 | ATLAS
    1501 | 15 | DOCUMENTATION
    1502 | 15 | ROMANS
    1503 | 15 | HISTORIQUE
    1504 | 15 | ALBUMS
    1601 | 16 | ENFANT
    1602 | 16 | INTERAGE
    1603 | 16 | ADULTE
    1604 | 16 | MANGAS
    1701 | 17 | ROMANS
    1702 | 17 | POLICIER
    2101 | 21 | MONTRES - BIJOUX
    2201 | 22 | MAROQUINERIE
    2301 | 23 | JOUETS
    2401 | 24 | SOUVENIRS
    3101 | 31 | PETITES FOURNITURES
    3201 | 32 | SCOLAIRE
    3301 | 33 | LUXE
    3401 | 34 | AGENDAS
    3501 | 35 | REGISTRES PROFESSIONNELS
    3601 | 36 | PAPIER IMPRIMANTE
    4101 | 41 | ENCRES IMPRIMANTES
    4201 | 42 | PETIT MATERIEL
    4301 | 43 | MATERIEL INFORMATIQUE
    5101 | 51 | DEPOTS
    5201 | 52 | CELY
    5301 | 53 | MG EDITIONS
    5401 | 54 | EDITOR
    6101 | 61 | PUBLICATIONS
    6201 | 62 | P.Q.R
    6301 | 63 | P.Q.N
    7101 | 71 | CLES
    7201 | 72 | PHOTOCOPIES
    7301 | 73 | RELIURES
    7401 | 74 | SCANS
    7501 | 75 | AUTRES
    7601 | 76 | TAMPONS - CARTES DE VISITES
    3701 | 37 | PILES
    3801 | 38 | BONBONS
    37 | 3 | PILES
    38 | 3 | BONBONS
    55 | 5 | CARTERIE DIVERSE
    5501 | 55 | CARTERIE DIVERSE
    1505 | 15 | REGIONAL DIVERS

    cependant les categorie ne se créent pas ~~ quelq’un a une idée ?

    Ma configuration WP actuelle

    • Version de PHP/MySQL :
    • Thème utilisé :
    • Extensions en place :
    • Nom de l’hébergeur :
    • Adresse du site :

    Problème(s) rencontré(s) :

    #2281740
    hypopolol
    Participant
    Initié WordPress
    10 contributions

    Bonjour,

    Je bloque vraiment ^^, donc j’ai mis a jour le code:

    		if ($niv == 1) {
    			$id = substr($lib, 0, 4);
    			$parent = substr($lib, 0, 2);
    			$cat_name = substr($lib, 7);
    			$catarr = array(
    						    'term_id' => $id,
    							'name' => $cat_name,
    							'parent' => $parent,
    							'taxonomy' => 'product_cat',
    							'slug' => $cat_name,
    							'description' => $cat_name
    			);
    			update_term_meta( $id, 'product_cat', $catarr, $prev_value = ''  );
    			echo $id.' | '.$parent.' | '.$cat_name.'<br>';
    		}
    
    		if ($niv == 2) {
    			$id = substr($lib, 0, 2);
    			$parent = substr($lib, 0, 1);
    			$cat_name = substr($lib, 5);
    			$catarr = array(
    						    'term_id' => $id,
    							'name' => $cat_name,
    							'parent' => $parent,
    							'taxonomy' => 'product_cat',
    							'slug' => $cat_name,
    							'description' => $cat_name
    			);
    			update_term_meta( $id, 'product_cat', $catarr, $prev_value = ''  );
    			echo $id.' | '.$parent.' | '.$cat_name.'<br>';
    		}
    
    		if ($niv == 3) {
    			$id = substr($lib, 0, 1);
    			$parent = '';
    			$cat_name = substr($lib, 4);
    			$catarr = array(
    						    'term_id' => $id,
    							'name' => $cat_name,
    							'parent' => $parent,
    							'taxonomy' => 'product_cat',
    							'slug' => $cat_name,
    							'description' => $cat_name
    			);
    			update_term_meta( $id, 'product_cat', $catarr, $prev_value = ''   );
    			echo $id.' | '.$parent.' | '.$cat_name.'<br>';
    		}

    J’utilise:

    update_term_meta> au lieu de update_woocommerce_term_meta
    

    Cependant, toujours pas de catégories woocommerce en vue, en effet, les lignes sont bien créés dans la base dans wp_termmeta, mais ne sont pas affiché dans la liste des catégories woocommerce, j’en déduis donc que update_term_meta n’est pas adaptée. Donc est-ce que quelqu’un sait comment on créer manuellement une catégorie dans woocommerce ?

    • Cette réponse a été modifiée le il y a 3 weeks et 5 jours par  hypopolol.
2 sujets de 1 à 2 (sur un total de 2)
  • Vous devez être connecté pour répondre à ce sujet.