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.


Jesús García B. 20 de febrero de 2022
Compartir
Archivar
Identificarse dejar un comentario


Transferir archivos por consola a Raspberry