BEAR - WooCommerce Bulk Editor and Products Manager Professional

Modifier en masse l'image à la une, la galerie et le texte alt WooCommerce

Pour modifier en masse l'image à la une des produits WooCommerce, vous définissez un seul ID d'image sur de nombreux produits à la fois : tous les produits d'une catégorie, tous ceux qui n'ont pas encore d'image, ou toute la boutique. Dans BEAR, il s'agit du champ Miniature (Thumbnail) de l'onglet Modification groupée (Bulk Edit), et il agit sur tous les produits filtrés, pas seulement sur la page affichée. Vous trouverez ci-dessous comment procéder, comment supprimer les images principales et modifier les galeries en masse, et que faire des fichiers image et du texte alt, qui relèvent de la médiathèque et non des produits.

Où WooCommerce stocke les images des produits

Un produit ne contient pas d'images ; il pointe vers elles.

  • L'image à la une (WooCommerce l'appelle Image du produit (Product image)) est un seul ID de pièce jointe enregistré dans la meta _thumbnail_id du produit. Dans BEAR, c'est la colonne Miniature (Thumbnail), activée par défaut.
  • La galerie (Galerie du produit (Product gallery)) est une liste d'ID de pièces jointes dans _product_image_gallery. Dans BEAR, c'est la colonne galerie (Gallery), que vous activez dans l'onglet Paramètres (Settings).
  • L'image elle-même est une pièce jointe de la médiathèque : le fichier, ses copies redimensionnées, son titre et son texte alt.

Ainsi, changer ou retirer une image sur un produit ne modifie que l'ID vers lequel le produit pointe. Le fichier reste où il est, une image peut servir à un millier de produits, et son texte alt est le même partout. La miniature et la galerie sont aussi des champs distincts : modifier la galerie ne change pas l'image principale, et inversement.

Modifier en masse l'image à la une des produits filtrés

  1. Dans l'onglet Filtres (Filters), sélectionnez les produits : une catégorie, un type de produit, un statut de stock ou toute autre condition, puis appuyez sur Filtrer (Filter). Si vous ne définissez aucun filtre et ne cochez aucun produit, l'étape suivante modifie tous les produits de la boutique, et le message de confirmation vous en avertit.
  2. Ouvrez l'onglet Modification groupée (Bulk Edit) et sa section Complémentaire (Additional).
  3. Cochez Miniature (Thumbnail), appuyez sur sélectionner la miniature (select thumbnail) et choisissez l'image dans la fenêtre des médias, ou téléversez-en une nouvelle.
  4. Appuyez sur Effectuer la modification groupée (Do Bulk Edit) et attendez que la barre de progression atteigne 100 %.

Le tableau affiche une page de lignes à la fois (Nombre de produits par page par défaut (Default products count per page) dans l'onglet Paramètres (Settings)), mais l'exécution en masse n'en est pas limitée : elle traite tous les produits filtrés par lots, de sorte que 40 000 produits demandent une seule exécution, et non 400 sélections. Pour les très grosses exécutions, voir la modification en masse de milliers de produits. Chaque modification est enregistrée dans l'Historique (History), ce qui permet d'annuler une image erronée.

Lorsque chaque produit a besoin de sa propre photo, cliquez sur l'image dans sa cellule Miniature (Thumbnail) et choisissez la bonne. Les produits sans image affichent une image de remplacement dans cette cellule ; elle est cliquable comme les autres. Pour donner la même image à quelques produits cochés, activez la modification liée (binded editing) et changez l'image de l'un d'eux. Lorsque l'interrupteur variations (variations) est désactivé, tout cela ne modifie que les produits parents ; les images des variations sont traitées dans la modification en masse des images de variations.

Seulement les produits qui n'ont pas encore d'image

Réglez le filtre Miniature (Thumbnail) sur Vide (Empty), appuyez sur Filtrer (Filter), puis suivez les étapes ci-dessus. Vide (Empty) signifie que le produit n'a aucun enregistrement _thumbnail_id. Un produit dont l'image a été retirée en masse (section suivante) conserve l'enregistrement avec la valeur 0, donc ce filtre ne le liste pas ; ces produits apparaissent sous PAS vide (Not empty) avec une image de remplacement dans la colonne Miniature. Trouver les produits sans catégorie ni image présente les autres filtres sur ce qui manque.

La même image pour tous les produits d'une catégorie

Filtrez par la catégorie et lancez la modification en masse. Tous les produits pointent alors vers une même pièce jointe : aucun fichier supplémentaire n'est créé, et ils partagent son texte alt.

Si vous voulez en réalité une image par défaut pour les produits sans photo, par exemple dans un flux qui ajoute des produits chaque jour, la modification en masse n'est pas le bon outil : elle n'atteint que les produits qui existent maintenant, et chacun doit être modifié de nouveau lorsque sa vraie photo arrive. WooCommerce dispose d'un réglage pour cela, Image de substitution (Placeholder image) sous WooCommerce → Réglages → Produits. Elle s'affiche pour chaque produit sans image, y compris les produits ajoutés plus tard, et n'écrit rien dans les produits.

Supprimer l'image à la une en masse

  1. Filtrez les produits dont l'image principale doit disparaître.
  2. Dans la section Complémentaire (Additional) de l'onglet Modification groupée (Bulk Edit), cochez Miniature (Thumbnail) et ne sélectionnez aucune image.
  3. Appuyez sur Effectuer la modification groupée (Do Bulk Edit).

L'ID d'image de ces produits est mis à 0, et la boutique affiche pour eux l'image de remplacement de WooCommerce. Les fichiers restent dans la médiathèque, et l'exécution peut être annulée dans l'Historique (History).

Modifier, réordonner et nettoyer les galeries de produits

Activez la colonne galerie (Gallery) dans l'onglet Paramètres (Settings) et enregistrez. Chaque cellule affiche alors les premières images et leur nombre ; un clic ouvre la galerie de ce produit.

  • Ajouter : Ajouter une image (Add Image) ouvre la fenêtre des médias ; les nouvelles images sont placées au début de la liste.
  • Supprimer : l'icône de corbeille sur une image la retire de la galerie.
  • Réordonner : faites glisser les images. L'ordre dans la fenêtre est l'ordre sur la page du produit.
  • Appuyez sur Appliquer (Apply) pour enregistrer.

Le réordonnancement se fait produit par produit, car chaque produit a ses propres images. La modification liée copie toute la galerie du produit modifié vers tous les produits cochés ; ne l'utilisez donc que lorsqu'ils doivent se retrouver avec des galeries identiques.

Pour de nombreux produits à la fois, cochez galerie (Gallery) dans la section Complémentaire (Additional) de l'onglet Modification groupée (Bulk Edit), appuyez sur son bouton Images, ajoutez les images et choisissez ce qu'il faut en faire :

OpérationRésultat pour chaque produit filtré
Remplacer toutes les images des produits par celles sélectionnées (Replace all products images by the selected ones)La galerie devient exactement les images sélectionnées. Sans image sélectionnée, les galeries sont vidées.
Ajouter les images sélectionnées à celles déjà existantes (Add selected images to the already existed ones)Les images sélectionnées sont ajoutées après les images existantes.
Supprimer les images sélectionnées des produits (Delete selected images from the products)Les images sélectionnées sont retirées des galeries ; les fichiers restent.
Supprimer les images sélectionnées des produits, et les supprimer aussi définitivement de la médiathèque (Delete selected images from the products, also delete them from the media library forever)Comme ci-dessus, et les fichiers sélectionnés sont supprimés du site.

Appuyez sur Appliquer (Apply) dans la fenêtre, puis sur Effectuer la modification groupée (Do Bulk Edit). Exemples pas à pas : ajouter deux images à chaque galerie et retirer des images des galeries de certains produits. Dans la version gratuite, la galerie ne se modifie que dans sa cellule ; l'onglet Modification groupée et la modification liée ne la changent pas (voir les limites de la version gratuite).

Supprimer des images de produits de la médiathèque

Retirer une image d'un produit ne supprime jamais le fichier : ni lorsque vous videz la miniature, ni lorsque vous videz une galerie, ni lorsque vous supprimez le produit. C'est voulu, car le même fichier peut servir ailleurs. L'espace disque n'est libéré que lorsque la pièce jointe elle-même est supprimée.

La seule exception est la dernière opération de galerie du tableau ci-dessus. Elle supprime les pièces jointes que vous avez sélectionnées dans la fenêtre, avec toutes leurs copies redimensionnées, et elle est destinée à un ensemble connu d'images, par exemple une ancienne bannière qui avait été ajoutée à chaque galerie. Avant de l'utiliser :

  • Elle ne supprime que les images que vous avez sélectionnées, pas toutes les images des produits filtrés. Les images principales ne sont pas incluses, sauf si vous les sélectionnez.
  • La suppression s'applique à tout le site. Une image supprimée disparaît de tous les produits qui l'utilisaient, y compris ceux hors du filtre et ceux qui l'avaient comme image principale.
  • Elle est irréversible. L'Historique peut remettre les ID dans les galeries, mais les fichiers sont perdus. Faites d'abord une sauvegarde du dossier uploads.

Pour effacer les photos d'anciens produits en gardant leurs textes, retirez les images des produits dans BEAR, puis supprimez les fichiers dans Médias → Bibliothèque. WordPress n'a pas de vérification intégrée des images inutilisées. Le filtre Non attachées (Unattached) de la médiathèque n'en est pas une : une image choisie dans la médiathèque pour la miniature ou la galerie d'un produit n'est pas attachée à ce produit (seule l'est une image téléversée depuis une cellule Miniature), de sorte qu'une image non attachée peut quand même être utilisée. Examinez l'image dans la médiathèque avant de la supprimer, ou utilisez un outil de nettoyage des médias dédié et vérifiez sa liste.

Le texte alt appartient à l'image, pas au produit

Le texte alt est enregistré avec la pièce jointe, dans sa meta _wp_attachment_image_alt, et WooCommerce l'affiche partout où l'image est montrée. BEAR modifie les produits, il n'a donc pas de colonne de texte alt. Ajouter _wp_attachment_image_alt dans l'onglet Champs meta (Meta Fields) n'aide pas non plus : cet onglet modifie les metas des produits, la valeur est donc enregistrée sur les produits et les images ne changent pas. Et comme une image n'a qu'un seul texte alt, une image partagée par de nombreux produits ne peut pas avoir un alt différent sur chacun d'eux.

Pour quelques images, modifiez le texte alt au moment de les choisir : la fenêtre des médias ouverte par la cellule Miniature ou par Ajouter une image (Add Image) affiche les détails de l'image à droite, et le champ Texte alternatif (Alternative Text) qui s'y trouve est enregistré directement sur l'image. Médias → Bibliothèque a le même champ.

Pour remplir les textes alt vides de toutes les images de produits avec le nom du produit, exécutez une fois un court script avec WP-CLI. Il laisse intacts les textes alt existants ; une image partagée par plusieurs produits reçoit le nom du premier.

<?php
/*
 * Fill EMPTY alt texts of product images (main image + gallery) with the product name.
 * Save as fill-product-image-alt.php, run once from the WordPress folder:
 *     wp eval-file fill-product-image-alt.php
 * then delete the file.
 */
$product_ids = wc_get_products( array(
    'status' => array( 'publish', 'draft', 'pending', 'private' ),
    'limit'  => -1,
    'return' => 'ids',
) );

foreach ( $product_ids as $product_id ) {
    $product = wc_get_product( $product_id );
    if ( $product instanceof WC_Product ) {
        $image_ids = array_merge( array( $product->get_image_id() ), $product->get_gallery_image_ids() );

        foreach ( array_filter( array_map( 'absint', $image_ids ) ) as $attachment_id ) {
            $alt = (string) get_post_meta( $attachment_id, '_wp_attachment_image_alt', true );
            if ( '' === trim( $alt ) ) {
                update_post_meta( $attachment_id, '_wp_attachment_image_alt', sanitize_text_field( $product->get_name() ) );
            }
        }
    }
}

PDF et listes d'images personnalisées dans les champs meta

L'onglet Champs meta (Meta Fields) propose un affichage galerie (gallery) pour une clé meta. Ce n'est pas une liste de fichiers générale : la fenêtre des médias qu'il ouvre n'affiche que des images, et les autres fichiers sont masqués dans la cellule. Dans la version 2.2.4, il présente aussi un problème d'affichage : la cellule d'un champ meta galerie (gallery) montre la galerie WooCommerce du produit au lieu du contenu de sa propre clé. Ce que vous y enregistrez est écrit dans la clé mais n'apparaît pas à la réouverture de la cellule, et appuyer sur Appliquer (Apply) copie la galerie WooCommerce dans la clé. Ne l'utilisez pas pour l'instant pour des galeries supplémentaires ou des pièces jointes.

Pour joindre des PDF ou une seconde liste d'images aux produits, enregistrez les ID des pièces jointes sous forme de texte, par exemple 123,456, dans un champ meta avec l'affichage champ texte (textinput), et laissez le code de votre thème lire la clé. La valeur texte peut être définie pour de nombreux produits à la fois comme n'importe quel autre champ ; la documentation sur les champs meta explique comment ajouter la clé.

Si les images ne changent pas

  • Le champ Galerie est absent de l'onglet Modification groupée. Activez d'abord la colonne galerie (Gallery) dans l'onglet Paramètres (Settings) ; le champ en masse n'apparaît que pour une colonne active.
  • Un gestionnaire de boutique ne voit pas Miniature ni Galerie. Les champs peuvent être masqués par rôle ; voir les permissions du gestionnaire de boutique.
  • L'éditeur affiche la nouvelle image, la boutique l'ancienne. Videz le cache des pages et le cache du CDN. Si la page du produit affiche toujours l'ancienne image, le thème montre peut-être l'image d'une variation ou une galerie d'une autre extension.
  • Seule la première page a changé. Vous avez modifié des cellules ou utilisé la modification liée sur des lignes cochées. Pour tous les produits filtrés, utilisez l'onglet Modification groupée et laissez les produits décochés.

Si les images ne se comportent toujours pas comme décrit, ouvrez un sujet sur le forum d'assistance de BEAR en indiquant les étapes effectuées ainsi que les versions de l'extension et de WooCommerce.