En versiones actuales de WooCommerce cuando borras un producto, aún se mantienen sus imágenes, por lo que si quieres eliminar estas imágenes tendrás que hacerlo de manera manual.
Generalidades
Lo que haremos será que tras eliminar un producto desde la administración de WooCommerce, automáticamente se eliminen todas las imágenes asociadas, tanto imágenes de galería como imagen destacada.
Código para eliminar automáticamente las imágenes
Puedes agregar el siguiente código como parte del archivo functions.php de tu tema hijo o usando algún plugin de Snippets.
add_action('before_delete_post', 'dcms_delete_product_images', 10, 1);
function dcms_delete_product_images($post_id)
{
$product = wc_get_product($post_id);
if ( ! $product) return;
$featured_image_id = $product->get_image_id();
$image_galleries_id = $product->get_gallery_image_ids();
if (!empty($featured_image_id)) {
wp_delete_post($featured_image_id);
}
if (!empty($image_galleries_id)) {
foreach ($image_galleries_id as $single_image_id) {
wp_delete_post($single_image_id);
}
}
}
En el código anterior:
- Usamos el Hook before_delete_post que hace referencia a la función dcms_delete_product_images
- Dentro de la función comprobamos si el registro que se esta eliminando es un producto
- Obtenemos el ID de la imagen destacada y también los IDs de las imágenes de galerías
- Eliminamos los IDs obtenidos con la función wp_delete_post
Conclusión
Como has podido comprobar, puedes evitar el trabajo de eliminar manualmente las imágenes asociadas a un producto y hacerlo de manera automática con código, de esta forma además puedes liberar espacio de imágenes innecesarias en tu cuenta de hosting.
¿Aún con dudas?, en el siguiente video se detallan los puntos anteriores.
La entrada Eliminar automáticamente las imágenes al borrar un producto de WooCommerce es un artículo reciente del sitio DecodeCMS.
0 Commentaires