zelfs indien WooCommerce is een zeer robuust winkelplatform dat zich de afgelopen jaren enorm heeft ontwikkeld, er ontbreken nog veel opties. Een daarvan is de mogelijkheid om de productafbeeldingen automatisch te verwijderen WooCommerce wanneer een product wordt verwijderd.
Meer precies, wanneer we een product verwijderen uit WooCommerce, blijven de bijbehorende afbeeldingen op de server staan. Een online winkel met duizenden producten verzamelt een aanzienlijk aantal afbeeldingen. Als deze foto's niet samen met de producten worden verwijderd, zal dit na verloop van tijd een aanzienlijke hoeveelheid opslagruimte in beslag nemen.
Wanneer binnen WooCommerce een nieuw product wordt toegevoegd, de afbeelding van de presentatie wordt in ieder geval drie tot vier keer gedupliceerd, in verschillende formaten. Er zijn een paar themes door Woo die tot 10 kopieën van de originele afbeelding kan maken, voor verschillende lay-outs.
De beste oplossing voor het optimaliseren van de ruimte die wordt ingenomen door de productafbeeldingen op de webhostingserver, is om ze samen met de producten uit de online winkel te verwijderen.
Hoe productafbeeldingen automatisch te verwijderen in WooCommerce wanneer u producten verwijdert
Ik heb een online winkel met vlas media library 23.567 afbeeldingen, de meeste producten WooCommerce. Als ik de producten zou verwijderen die niet meer op voorraad zijn, blijven de afbeeldingen in de mediabibliotheek (op de server).
Om de productafbeeldingen automatisch te verwijderen in WooCommerce, samen met de producten, hoef je alleen maar de volgende code toe te voegen aan het bestand functions.php van het actieve thema:
*Het wordt ten zeerste aanbevolen om vooraf een back-up van de map te maken wp-content/uploads
.
// 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 );
}
}
}
Het is goed om te weten dat na het opslaan van bovenstaande code in functions.php
, productafbeeldingen worden automatisch verwijderd, samen met het product. Wanneer de producten ook worden verwijderd uit "Trash'.
Samen met de producten verwijderd uit de online winkel Er werden ook 3336 afbeeldingen verwijderd geassocieerd. Een nogal belangrijk nummer, dat onnodige ruimte op de webhostingserver zou hebben ingenomen.
- Hoe de pagina "Er zijn geen producten gevonden die overeenkomen met uw selectie" aan te passen WooCommerce - Optimalisatie van de verkoop in online winkels
- Hoe enorme wp_ schoon te makenoptions in SQL - Transiënten, wpseo_sitemap _cache_validator
- Hoe u snel alle bestellingen (Orders) kunt verwijderen uit WooCommerce [SQL-tips]
- FIX ENORME SQL-tabellen: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce tips]
- Standaard uitschakelen? “Ship to different address” vanaf de afrekenpagina a Woocommerce
Gebruik deze optie niet als u dezelfde afbeeldingen voor meerdere producten gebruikt. Ze worden automatisch verwijderd als een product waarin ze aanwezig zijn, wordt verwijderd.
Dit heeft geholpen, bedankt!
Grazie mille, je hebt een groot probleem voor me opgelost.
Genau was ich gesucht bzw. habe nodig 👍
De plug-in die beschikbaar is, werkt niet zo veelzijdig als die van deze snippet
Vielen Dank, das erspart mir einen Haufen Arbeit en viel Zeit