Introducción
Cuando se eliminan productos en WooCommerce, las imágenes asociadas a esos productos permanecen en la biblioteca de medios de WordPress. Con el tiempo, esto puede llenar tu servidor con archivos innecesarios, afectando el rendimiento y dificultando la gestión de los medios. Afortunadamente, puedes automatizar la eliminación de estas imágenes al borrar un producto, utilizando un código sencillo que se integra en tu tema o plugin.
Código para Eliminar Imágenes Automáticamente
El siguiente código se encargará de eliminar tanto la imagen destacada como las imágenes de la galería de un producto cuando se elimina dicho producto en WooCommerce:
// Automatically Delete WooCommerce Images After Deleting a Product
add_action( 'before_delete_post', 'delete_product_images', 10, 1 );
function 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 );
}
}
}
Instrucciones de Implementación
- Ubicación del Código:
- Agrega este código al archivo
functions.php
de tu tema hijo
- Agrega este código al archivo
- Cómo Funciona:
- Hook: El código utiliza el hook
before_delete_post
para ejecutar la funcióndelete_product_images
antes de que un producto sea eliminado. - Obtener Producto: Se obtiene el producto con el ID del post que se está eliminando.
- Eliminar Imágenes: Si el producto tiene una imagen destacada o imágenes en la galería, estas serán eliminadas automáticamente mediante la función
wp_delete_post
.
- Hook: El código utiliza el hook
- Beneficios:
- Mantienes tu biblioteca de medios organizada y libre de archivos innecesarios.
- Optimizas el espacio en tu servidor y mejoras la gestión de medios en WordPress.
Precauciones
- Copias de Seguridad: Antes de implementar cualquier código personalizado, asegúrate de realizar una copia de seguridad de tu sitio web.
- Pruebas en un Entorno de Desarrollo: Siempre prueba este tipo de cambios en un entorno de desarrollo antes de aplicarlo en tu sitio en producción para asegurarte de que todo funcione correctamente.
Conclusión
Automatizar la eliminación de imágenes de productos eliminados es una excelente manera de mantener tu tienda WooCommerce optimizada y organizada. Con el código proporcionado, puedes evitar que tu biblioteca de medios se llene de imágenes no deseadas y mejorar la eficiencia de tu sitio web.