Asignar imágenes a productos de WooCommerce

Te explicamos cómo añadir imágenes mediante programación a productos de WooCommerce

¿Quieres aprender cómo puedes añadir mediante código imágenes a tus productos de WooCommerce? Esto es usado habitualmente si tenemos que hacer por ejemplo una importación / actualización masiva de productos. 

Imágenes en productos de WooCommerce.

Vamos a ver cómo se asignan imágenes a los productos en WooCommerce y a la galería del mismo utilizando PHP. Lo ideal siempre es crear una función para nuestro código. En el mismo comento las partes más importantes:

<?php

function gbiet_anyadir_imagen($producto_image_url, $producto_image_gallery_url, $product_id){
    //Le pasamos la id del producto y las url de la imagen para el producto y la galería
  
    $thumb_url = $producto_image_url;
    $thumb_url_gallery = $producto_image_gallery_url;
  
    // Descargamos el archivo temporal 
    $tmp = download_url( $thumb_url );
    $tmp_gallery = download_url( $thumb_url_gallery );
  
    //Creamos el array con los datos para la primera url, y de paso nos aseguramos que tenga un formato correcto
    preg_match('/[^\?]+\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/', $thumb_url, $matches);//preg_match its for get sure image its correct
    $file_array['name'] = basename($matches[0]);
    $file_array['tmp_name'] = $tmp;
  
    //Creamos el array con los datos para la segunda url
    preg_match('/[^\?]+\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/', $thumb_url_gallery, $matches2);//preg_match its for get sure image its correct
    $file_array_gallery['name'] = basename($matches2[0]);
    $file_array_gallery['tmp_name'] = $tmp_gallery;
  
    //Creamos el objeto product con la id donde se asignará la imagen
    $product = newWC_Product_Variation($product_id);
  
    //Introducimos la imagen en el media de wordpress y guardamos su id en la variable thumbid
    $thumbid = media_handle_sideload( $file_array, $product_id, $product_id."-".$producto_image_url );//producto_image_url es la descripcion así podemos usarlo mejor
  
    //Y con esa id se la asignamos en su producto como imagen de cabecera
    set_post_thumbnail($product_id, $thumbid);
  
    //Con la imagen para la galería hacemos lo mismo y la añadimos en media
    $thumbid_gallery = media_handle_sideload( $file_array_gallery, $product_id, $producto_image_gallery_url );
  
    //Y la asignamos a la galería de ese producto
    update_post_meta( $product_id, '_product_image_gallery', $thumbid_gallery);
}

?>


Podéis descargarlo y comentarlo en este link de bitbucket: 

https://bitbucket.org/garber/workspace/snippets/5Xb7bz

Y eso es todo, espero que os haya sido de utilidad. Cualquier duda o comentario será bienvenida.  

Si tienes una tienda online en WooCommerce y necesitas ayuda para automatizarla, contacta con nosotros haciendo click aquí, te asesoramos sin coste.


Asignar imágenes a productos de WooCommerce
Jesús García B. 20 de febrero de 2022
Compartir
Archivar
Identificarse dejar un comentario


Transferir archivos por consola a Raspberry