¿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.