Visibilité des extrafileds selon Tags/Catégories

Bonjour j’ai réussi à faire ce que je voulais !
Je décris la procédure ci-dessous :

j’ai des articles avec des champs personnalisés différents en fonction du type d’article (de la catégorie d’article).

j’ai créé un champ personnalisé nommé « categories » pour identifier pour chaque article la catégorie de l’article. Imaginons je dois gérer 3 catégories d’articles cat_1, cat_2 et cat_3.
dans ce champ personnalisé qui sera renseigné sur chaque fiche article je vais via une liste de sélection choisir soit cat_1, cat_2 ou cat_3.

Donc mon champ personnalisé aura comme valeurs :
cat_1, catégorie 1
cat_2, catégorie 2
cat_3, catégorie 3

pour le test je vais créer 3 champs personnalisés un destiné à être affiché uniquement pour la catégorie de produit 1, un pour la catégorie de produit 2 et un champ commun à tous les produits quelque soit la catégorie.

Configuration du champ personnalisé 1
Je règle le paramètre Visibilité à
(json_decode(json_encode($object->array_options))->categories==‹ cat_1 ›?1:0)

Configuration du champ personnalisé 2
Je règle le paramètre Visibilité à
(json_decode(json_encode($object->array_options))->categories==‹ cat_2 ›?1:0)

Configuration du champ personnalisé 3
Je règle le paramètre Visibilité à 1

De ce fait quand je vais créer mon nouvel article je vais choisir dans la liste du champ categories soit cat_1 soit cat_2
et en fonction de ce choix après enregistrement de l’article je verrai sur la fiche produit les champs personnalisés associés à cette catégorie.

En ce qui concerne le champ personnalisé 3 il sera visible sur toutes les fiches produits. Commun à tous les produits.

Une précision importante. Si vous avez besoin d’afficher un champ personnalisé sur plusieurs catégories d’articles il suffit d’utiliser cette valeur dans le champ Visibilité du champ concerné :

(json_decode(json_encode(in_array($object->array_options[‹ categories ›], [‹ cat_1 ›, ‹ cat_2 ›, ‹ cat_3 ›])))?1:0)
Le champ ne sera pas commun à toutes les fiches produits mais uniquement visibles pour les catégories 1, 2 et 3.

Voilà :wink: