Cambiar en masa la imagen destacada, la galería y el texto alt en WooCommerce
Para cambiar en masa la imagen destacada de los productos de WooCommerce, se asigna un mismo ID de imagen a muchos productos a la vez: todos los de una categoría, todos los que aún no tienen imagen o toda la tienda. En BEAR esto se hace con el campo Miniatura (Thumbnail) de la pestaña Edición en masa (Bulk Edit), y funciona sobre todos los productos filtrados, no solo sobre la página que ves. A continuación se explica cómo hacerlo, cómo quitar imágenes principales y editar galerías en masa, y qué hacer con los archivos de imagen y el texto alternativo, que pertenecen a la biblioteca de medios y no a los productos.
Dónde guarda WooCommerce las imágenes de los productos
Un producto no contiene imágenes; apunta a ellas.
- La imagen destacada (WooCommerce la llama Imagen del producto (Product image)) es un ID de archivo adjunto guardado en el meta
_thumbnail_iddel producto. En BEAR es la columna Miniatura, activada por defecto. - La galería (Galería del producto (Product gallery)) es una lista de IDs de archivos adjuntos en
_product_image_gallery. En BEAR es la columna galería (Gallery), que se activa en la pestaña Ajustes (Settings). - La imagen en sí es un archivo adjunto de la biblioteca de medios: el archivo, sus copias redimensionadas, su título y su texto alternativo.
Por tanto, cambiar o quitar una imagen en un producto solo cambia el ID al que apunta el producto. El archivo sigue donde estaba, una misma imagen puede servir a mil productos y su texto alternativo es el mismo en todos ellos. Además, miniatura y galería son campos independientes: cambiar la galería no cambia la imagen principal, y al revés.
Cambiar en masa la imagen destacada de los productos filtrados
- En la pestaña Filtros (Filters), selecciona los productos: una categoría, un tipo de producto, un estado de stock o cualquier otra condición, y pulsa Filtrar (Filter). Si no estableces ningún filtro y no marcas ningún producto, el paso siguiente cambia todos los productos de la tienda, y el mensaje de confirmación te lo advierte.
- Abre la pestaña Edición en masa y su sección Adicional (Additional).
- Marca Miniatura, pulsa seleccionar miniatura (select thumbnail) y elige la imagen en la ventana de medios, o sube una nueva allí mismo.
- Pulsa Realizar edición en masa (Do Bulk Edit) y espera a que la barra de progreso llegue al 100 %.
La tabla muestra una página de filas cada vez (Número predeterminado de productos por página (Default products count per page) en la pestaña Ajustes), pero la ejecución masiva no se limita a eso: procesa por lotes todos los productos filtrados, de modo que 40.000 productos necesitan una sola ejecución, no 400 selecciones. Para ejecuciones muy grandes, consulta edición masiva de miles de productos. Cada cambio se registra en el Historial (History), así que una imagen equivocada se puede revertir.
Cuando cada producto necesita su propia foto, haz clic en la imagen de su celda Miniatura y elige la correcta. Los productos sin imagen muestran una imagen de relleno en esa celda; se puede pulsar como cualquier otra. Para dar la misma imagen a un puñado de productos marcados, activa edición vinculada (binded editing) y cambia la imagen de uno de ellos. Con el interruptor variaciones (variations) desactivado, todo esto cambia solo los productos padre; las imágenes de las variaciones se tratan en edición masiva de imágenes de variaciones.
Solo los productos que aún no tienen imagen
Establece el filtro Miniatura en Vacío (Empty), pulsa Filtrar y ejecuta los pasos anteriores. Vacío significa que el producto no tiene ningún registro _thumbnail_id. Un producto cuya imagen se quitó en masa (sección siguiente) conserva el registro con el valor 0, así que este filtro no lo lista; esos productos aparecen en NO vacío (Not empty) con una imagen de relleno en la columna Miniatura. Encontrar productos sin categoría o sin imagen muestra los demás filtros de «lo que falta».
La misma imagen para todos los productos de una categoría
Filtra por la categoría y ejecuta la edición masiva. Todos los productos apuntan entonces a un único archivo adjunto: no se crean archivos adicionales y comparten su texto alternativo.
Si lo que realmente quieres es una imagen por defecto para los productos que no tienen foto, por ejemplo en un feed que añade productos cada día, la edición masiva no es la herramienta adecuada: solo alcanza los productos que existen ahora, y cada uno de ellos debe volver a cambiarse cuando llegue su foto real. WooCommerce tiene un ajuste para esto, Imagen de marcador de posición (Placeholder image), en WooCommerce → Ajustes → Productos. Se muestra en todos los productos sin imagen, también en los que se añadan más adelante, y no escribe nada en los productos.
Quitar la imagen destacada en masa
- Filtra los productos cuya imagen principal debe desaparecer.
- En la sección Adicional de la pestaña Edición en masa, marca Miniatura y no selecciones ninguna imagen.
- Pulsa Realizar edición en masa.
El ID de imagen de estos productos se establece en 0, y la tienda muestra para ellos la imagen de relleno de WooCommerce. Los archivos permanecen en la biblioteca de medios, y la ejecución se puede revertir en el Historial.
Editar, reordenar y limpiar las galerías de productos
Activa la columna galería en la pestaña Ajustes y guarda. Cada celda muestra entonces las primeras imágenes y su número; al hacer clic se abre la galería de ese producto.
- Añadir: Añadir imagen (Add Image) abre la ventana de medios; las imágenes nuevas se colocan al principio de la lista.
- Quitar: el icono de papelera de una imagen la saca de la galería.
- Reordenar: arrastra las imágenes. El orden de la ventana es el orden de la página del producto.
- Pulsa Aplicar (Apply) para guardar.
Reordenar se hace producto por producto, porque cada producto tiene sus propias imágenes. La edición vinculada copia la galería completa del producto editado a todos los productos marcados, así que úsala solo cuando deban quedar con galerías idénticas.
Para muchos productos a la vez, marca galería en la sección Adicional de la pestaña Edición en masa, pulsa su botón Imágenes (Images), añade las imágenes y elige qué hacer con ellas:
| Operación | Resultado para cada producto filtrado |
|---|---|
| Reemplazar todas las imágenes de los productos por las seleccionadas (Replace all products images by the selected ones) | La galería queda formada exactamente por las imágenes seleccionadas. Si no hay imágenes seleccionadas, las galerías se vacían. |
| Añadir las imágenes seleccionadas a las ya existentes (Add selected images to the already existed ones) | Las imágenes seleccionadas se añaden después de las existentes. |
| Eliminar las imágenes seleccionadas de los productos (Delete selected images from the products) | Las imágenes seleccionadas se sacan de las galerías; los archivos permanecen. |
| Eliminar las imágenes seleccionadas de los productos y eliminarlas también de la biblioteca de medios para siempre (Delete selected images from the products, also delete them from the media library forever) | Igual que la anterior, y además los archivos seleccionados se eliminan del sitio. |
Pulsa Aplicar en la ventana y después Realizar edición en masa. Ejemplos paso a paso: añadir dos imágenes a todas las galerías y quitar imágenes de las galerías de algunos productos. En la versión gratuita la galería se edita solo en su celda; la pestaña Edición en masa y la edición vinculada no la cambian (consulta las limitaciones de la versión gratuita).
Eliminar imágenes de productos de la biblioteca de medios
Quitar una imagen de un producto nunca borra el archivo: ni al dejar la miniatura vacía, ni al vaciar una galería, ni al eliminar el producto. Es deliberado, porque el mismo archivo puede usarse en otro lugar. El espacio en disco solo se libera cuando se elimina el propio archivo adjunto.
La única excepción es la última operación de galería de la tabla anterior. Elimina los archivos adjuntos que seleccionaste en la ventana, con todas sus copias redimensionadas, y está pensada para un conjunto conocido de imágenes, por ejemplo un banner antiguo que se añadió a todas las galerías. Antes de usarla:
- Elimina solo las imágenes que seleccionaste, no todas las imágenes de los productos filtrados. Las imágenes principales no se incluyen salvo que las selecciones.
- La eliminación afecta a todo el sitio. Una imagen eliminada desaparece de todos los productos que la usaban, incluidos los productos que quedan fuera del filtro y los que la tenían como imagen principal.
- No se puede deshacer. El Historial puede devolver los IDs a las galerías, pero los archivos ya no existen. Haz antes una copia de seguridad de la carpeta uploads.
Para limpiar las fotos de productos antiguos y conservar sus textos, quita las imágenes de los productos en BEAR y después elimina los archivos en Medios → Biblioteca. WordPress no incluye ninguna comprobación de imágenes sin usar. El filtro Sin adjuntar (Unattached) de la biblioteca de medios no lo es: una imagen elegida de la biblioteca para la miniatura o la galería de un producto no queda adjunta a ese producto (solo lo está una imagen subida desde una celda Miniatura), de modo que una imagen sin adjuntar puede estar en uso. Mira la imagen en la biblioteca de medios antes de eliminarla, o usa una herramienta específica de limpieza de medios y revisa su lista.
El texto alternativo pertenece a la imagen, no al producto
El texto alternativo se guarda con el archivo adjunto, en su meta _wp_attachment_image_alt, y WooCommerce lo imprime dondequiera que se muestre la imagen. BEAR edita productos, así que no tiene una columna de texto alternativo. Añadir _wp_attachment_image_alt en la pestaña Campos meta (Meta Fields) tampoco sirve: esa pestaña edita metadatos de producto, así que el valor se guarda en los productos y las imágenes no cambian. Y como una imagen tiene un solo texto alternativo, una imagen compartida por muchos productos no puede tener un texto distinto en cada uno.
Para unas pocas imágenes, edita el texto alternativo mientras las eliges: la ventana de medios que abre la celda Miniatura o Añadir imagen muestra los detalles de la imagen a la derecha, y el campo Texto alternativo (Alternative Text) de ahí se guarda directamente en la imagen. Medios → Biblioteca tiene el mismo campo.
Para rellenar los textos alternativos vacíos de todas las imágenes de productos con el nombre del producto, ejecuta una sola vez un breve script con WP-CLI. Respeta los textos alternativos existentes; una imagen compartida por varios productos recibe el nombre del primero.
<?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 y listas de imágenes personalizadas en campos meta
La pestaña Campos meta ofrece una vista galería para una clave meta. No es una lista general de archivos: la ventana de medios que abre solo muestra imágenes, y los demás archivos quedan ocultos en la celda. En la versión 2.2.4 tiene además un problema de visualización: la celda de un campo meta con vista galería muestra la galería de WooCommerce del producto en lugar del contenido de su propia clave. Lo que guardas ahí se escribe en la clave, pero no aparece al volver a abrir la celda, y al pulsar Aplicar se copia la galería de WooCommerce en la clave. Por ahora, no la uses para galerías adicionales ni para archivos adjuntos.
Para adjuntar PDF o una segunda lista de imágenes a los productos, guarda los IDs de los archivos adjuntos como texto, por ejemplo 123,456, en un campo meta con la vista campo de texto (textinput), y deja que el código de tu tema lea la clave. El valor de texto se puede establecer para muchos productos a la vez como cualquier otro campo; la documentación de campos meta explica cómo añadir la clave.
Si las imágenes no cambian
- Falta el campo Galería en la pestaña Edición en masa. Activa primero la columna galería en la pestaña Ajustes; el campo masivo solo aparece para una columna activa.
- Un gestor de tienda no ve Miniatura ni Galería. Los campos se pueden ocultar por rol; consulta los permisos del gestor de tienda.
- El editor muestra la imagen nueva y la tienda la antigua. Vacía la caché de páginas y la caché de la CDN. Si la página del producto sigue mostrando la imagen antigua, puede que el tema esté mostrando una imagen de variación o una galería de otro plugin.
- Solo cambió la primera página. Editaste celdas o usaste la edición vinculada sobre filas marcadas. Para todos los productos filtrados, usa la pestaña Edición en masa y deja los productos sin marcar.
Si las imágenes siguen sin comportarse como se describe, abre un tema en el foro de soporte de BEAR con los pasos que seguiste y las versiones del plugin y de WooCommerce.