Cancellazione automatica delle immagini associate ai prodotti WooCommerce quando un prodotto viene eliminato
Se gestisci un e-commerce con WordPress e WooCommerce, sicuramente ti sarai trovato ad affrontare un problema comune: l’accumulo di immagini inutilizzate nella tua libreria media.
Ogni volta che elimini un prodotto in WooCommerce, le immagini associate (sia l’immagine principale che quelle della galleria) rimangono salvate nella libreria media di WordPress. Nel tempo, questo comporta:
- Spreco di spazio sul server
- Rallentamento dei backup
- Difficoltà nella gestione della libreria media
Quindi, come risolvere? In questo articolo, metterò a disposizione un’istruzione in PHP in grado di cancellare automaticamente le immagini principali e galleria associate ad un prodotto singolo o variabile.
Elimina automaticamente le immagini dei prodotti cancellati su Woocommerce
Oltre ad inserire l’istruzione nel file functions.php, non dovrai fare nulla. Quando un prodotto sarà eliminato (non cestinato), verranno rimosse dalla libreria media anche tutte le immagini associate allo stesso.
Per implementare questa funzione sul tuo sito, basta aggiungere il codice sopra riportato al file functions.php del tuo tema WordPress.
Attenzione: Prima di implementare questa funzione, assicurati di avere un backup completo del tuo sito. Una volta eliminate, le immagini non potranno essere recuperate a meno che non disponi di un backup.
//Cancella automaticamente le immagini associate al prodotto quando viene eliminato add_action( 'before_delete_post', 'ls_woocommerce_auto_image_purge_handler', 10, 1 ); function ls_woocommerce_auto_image_purge_handler( $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 ); } } }