BEAR - WooCommerce Bulk Editor and Products Manager Professional

Titre des variations WooCommerce : inclure les attributs (taille, couleur)

Le titre d'une variation WooCommerce n'inclut pas toujours les attributs. Un produit affiche ses variations sous la forme Hoodie - Red, XL, le suivant montre Jacket sur chaque ligne, dans l'éditeur en masse, dans le panier et dans les commandes, et rien ne permet de distinguer les options. Ce n'est pas un import défectueux. WooCommerce construit lui-même chaque titre de variation, et il a des règles qui l'amènent à omettre les valeurs d'attributs. Voici comment le titre est construit, le filtre qui lui fait inclure les attributs, comment voir les valeurs de chaque variation dans l'éditeur en masse, et pourquoi un titre de variation ne peut pas être saisi à la main.

Comment WooCommerce construit le titre d'une variation

Une variation n'a aucun champ de nom à remplir. À chaque enregistrement d'une variation, et à chaque fois qu'il en charge une, WooCommerce calcule le titre à partir de deux éléments : le titre du produit parent et les valeurs d'attributs de la variation, reliés par " - ". Si le titre stocké diffère du titre calculé, par exemple parce que le parent a été renommé, WooCommerce réécrit le nouveau titre dans la base de données.

Les valeurs d'attributs ne sont ajoutées que si les règles actuelles de WooCommerce l'autorisent :

  • La variation a moins de trois attributs. Avec Color, Size et Material, le titre se réduit au titre du parent.
  • Quand il y a deux attributs, aucun de leurs noms ne doit contenir de tiret. WooCommerce lit le nom interne de l'attribut : un attribut global Shoe size dont le slug est shoe-size est stocké sous la forme pa_shoe-size, et un attribut personnalisé saisi comme Sistema de activacion est stocké sous la forme sistema-de-activacion. Tout nom d'attribut de deux mots ou plus reçoit des tirets, si bien que Color plus Shoe size donne des titres sans valeurs.
  • Une variation réglée sur N'importe quelle taille (Any Size) n'a aucune valeur de taille à ajouter.

C'est pourquoi deux produits d'apparence identique peuvent se comporter différemment : l'un a Color et Size, l'autre Color et Frame size.

Faire inclure les attributs dans les titres de variation

Les règles se terminent par un filtre, woocommerce_product_variation_title_include_attributes, qui décide du résultat. Si ce filtre renvoie true, les valeurs sont ajoutées à chaque titre de variation, quels que soient le nombre ou les noms des attributs :

/*
 * Always add the attribute values to variation titles: "Hoodie - Red, XL".
 * Child theme functions.php or a code snippets plugin.
 */
add_filter( 'woocommerce_product_variation_title_include_attributes', '__return_true' );

Pour conserver le comportement par défaut de WooCommerce pour les variations à nombreux attributs et ne contourner que la règle du tiret, décidez plutôt selon le nombre d'attributs :

add_filter( 'woocommerce_product_variation_title_include_attributes', function ( $include, $product ) {
    // Up to four attributes: always show their values in the title
    if ( count( $product->get_attributes() ) <= 4 ) {
        return true;
    }
    return $include;
}, 10, 2 );

Placez le code dans le fichier functions.php du thème actif et, si ce thème est un thème enfant, dans le fichier du thème enfant. Le fichier d'un thème parent est remplacé à chaque mise à jour du thème : l'extension Code Snippets est donc l'endroit le plus sûr quand vous n'entretenez pas de thème enfant. Quand vous copiez du code depuis une page web traduite, vérifiez la ponctuation : la traduction automatique du navigateur transforme les virgules et les points-virgules en caractères que PHP n'accepte pas.

Le séparateur entre le titre du parent et les valeurs a son propre filtre, woocommerce_product_variation_title_attributes_separator :

add_filter( 'woocommerce_product_variation_title_attributes_separator', function () {
    return ' / '; // Hoodie / Red, XL
} );

Les variations existantes en tiennent compte au chargement

Le filtre modifie la règle, pas les titres déjà stockés. WooCommerce compare et réécrit le titre d'une variation la prochaine fois qu'il la charge ou l'enregistre : quand le produit est ouvert dans l'éditeur WooCommerce, quand sa page produit affiche les options de variation, ou quand les variations sont affichées dans BEAR. Il n'y a rien à supprimer ni à recréer. Les commandes conservent le nom que l'article avait au moment de l'achat, donc les commandes passées ne changent pas.

Quand les valeurs font partie du titre, WooCommerce cesse de les répéter sous le nom de l'article dans le panier, à la validation de la commande et dans les e-mails de commande, car il ignore les attributs qui figurent déjà dans le nom.

Les titres de variation dans l'éditeur en masse

Quand l'interrupteur variations du panneau d'outils est activé, BEAR affiche chaque variation sous son parent et construit le titre de chaque ligne comme WooCommerce, avec les noms d'attributs entre crochets à la fin : Hoodie - Red, XL [color, size]. Il ajoute les valeurs jusqu'à neuf attributs au lieu de deux : dans l'éditeur, vous voyez donc des valeurs là où le titre stocké n'en a pas. La règle du tiret et le filtre ci-dessus s'appliquent aussi dans BEAR : une ligne de variation qui n'affiche que le titre du parent a donc la même cause, et le même remède, que dans le panier.

La cellule TITRE (Title) d'une ligne de variation n'est pas modifiable, et tant que l'interrupteur des variations est activé, l'onglet Modification groupée masque l'opération sur le titre. Il n'y a rien à enregistrer : tout titre écrit sur une variation serait remplacé par le titre calculé la prochaine fois que WooCommerce la charge. Modifiez plutôt le titre du parent ; toutes les variations le suivent.

Voir la valeur d'attribut de chaque variation dans sa propre colonne

Quand plusieurs attributs rallongent le titre, affichez les attributs sous forme de colonnes. Ouvrez l'onglet Réglages (Settings), saisissez le nom de l'attribut dans le champ recherche de colonnes ... (columns finder ...) (ou appuyez sur Afficher toutes les colonnes (Show all columns)), activez l'attribut et appuyez sur Enregistrer tous les réglages (Save all settings). Les colonnes d'attributs existent pour les attributs globaux, ceux créés sous Produits → Attributs.

Sur la ligne du parent, la cellule affiche et modifie les termes du produit. Sur une ligne de variation, la cellule affiche l'icône rouge d'interdiction suivie de la valeur propre à la variation, par exemple [XL] : vous pouvez ainsi lire la valeur et modifier le prix sur la même ligne. La raison pour laquelle cette cellule n'est pas modifiable est expliquée dans champs bloqués sur les produits variables et les variations. Pour changer la valeur sur laquelle une variation est construite, utilisez l'opération Swap ou Attaching de Variations Opérations en masse avancées, comme dans remplacer un terme d'attribut par un autre.

Renommer ou traduire les noms de variation

Le titre étant calculé, on le renomme par ses éléments :

  • La partie produit : modifiez le titre du parent, dans le tableau ou par une modification groupée des produits parents. Les variations suivent.
  • La partie valeur : renommez le terme une seule fois dans Produits → Attributs → Configurer les termes. Toutes les variations construites sur ce terme affichent le nouveau nom, ainsi que chaque page produit. Les valeurs des attributs personnalisés (locaux) sont du texte brut stocké dans chaque produit ; elles ne peuvent être modifiées que produit par produit, ce qui est l'une des raisons de convertir les attributs personnalisés en attributs globaux.
  • Le format complet : le filtre woocommerce_product_variation_title reçoit le titre calculé, le produit, le titre de base et le suffixe, et peut renvoyer n'importe quel texte construit à partir d'eux.
  • Les traductions : une extension multilingue traduit le titre du parent et les termes d'attributs, et WooCommerce construit à partir d'eux les titres de variation traduits. Créer des copies traduites de produits n'est pas une fonction de BEAR.

Certains thèmes et extensions ajoutent leur propre champ « titre de variation » ou « nom de variation » et l'affichent sur la page produit à la place du titre WooCommerce. Un tel champ est un champ meta de la variation. Si vous connaissez sa clé meta, rattachez-la dans l'onglet Champs meta et elle devient une colonne ordinaire modifiable sur les lignes de variation.

Si les attributs n'apparaissent toujours pas

  • Vérifiez que l'extrait de code s'exécute : une faute de frappe l'arrête en silence, et du code placé dans un thème inactif ne s'exécute pas du tout. Une ligne error_log() temporaire dans la fonction montre si elle est appelée.
  • Ouvrez une variation concernée dans WooCommerce et vérifiez que chaque attribut a une valeur, et non N'importe quel … (Any …).
  • Rechargez la page de l'éditeur ; les titres sont calculés au chargement des lignes.
  • Une extension qui modifie les noms de produits (flux, traductions, titres personnalisés) peut s'accrocher plus tard à woocommerce_product_variation_title et écraser le résultat. Testez avec cette extension désactivée.

La réponse courte à la même question figure aussi dans la FAQ sur les attributs visibles dans les variations d'un produit et pas dans celles d'un autre. Pour un cas que rien de tout cela n'explique, posez la question sur le forum de support de BEAR.