Woocommerce hacks

door

3

Hoe verwijdert u automatisch productafbeeldingen in WooCommerce, met het product

Hoe verwijdert u automatisch productafbeeldingen in WooCommerce, met het product

3
Woocommerce hacks

Ook al is WooCommerce een zeer robuust winkelplatform dat de afgelopen jaren veel ontwikkeld heeft, er ontbreken nog steeds veel opties. Eén daarvan is de mogelijkheid om de productafbeeldingen in WooCommerce automatisch te verwijderen wanneer een product wordt verwijderd.

Om precies te zijn: wanneer we een product uit WooCommerce verwijderen, blijven de bijbehorende afbeeldingen op de server staan. Een online winkel met duizenden producten zal een aanzienlijk aantal afbeeldingen verzamelen. 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 er een nieuw product wordt toegevoegd, wordt de presentatieafbeelding minimaal drie keer gedupliceerd – vier keer, in verschillende maten. Er zijn er enkele themes van Woo waarmee u maximaal 10 kopieën van de originele afbeelding kunt maken, voor verschillende lay-outs.

De beste oplossing voor het optimaliseren van de ruimte die de productafbeeldingen op de webhostingserver innemen, is dat ze samen met de producten uit de online winkel worden verwijderd.

Hoe u productafbeeldingen in WooCommerce automatisch verwijdert wanneer u producten verwijdert

Ik heb een online winkel die vlas verkoopt media library 23.567 afbeeldingen, de meeste WooCommerce-producten. Als ik de producten zou verwijderen die niet meer op voorraad zijn, blijven de afbeeldingen in de mediabibliotheek (op de server) staan.

Productafbeeldingen in de mediabibliotheek
Productafbeeldingen in de mediabibliotheek

Om de productafbeeldingen in WooCommerce automatisch te verwijderen, samen met de producten, hoef je alleen maar de volgende code toe te voegen aan het function.php-bestand van het actieve thema:

*Het wordt ten zeerste aanbevolen om eerst 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 worden verwijderd en uit “Trash“.

Hoe verwijdert u automatisch productafbeeldingen in WooCommerce, met het product
Verwijder de WooCommerce-productafbeelding

Samen met de producten die uit de online winkel zijn verwijderd Er zijn ook 3336 afbeeldingen verwijderd geassocieerd. Een nogal belangrijk aantal, dat onnodige ruimte op de webhostingserver zou hebben ingenomen.

Gebruik deze optie niet als u voor meerdere producten dezelfde afbeeldingen gebruikt. Ze worden automatisch verwijderd als een product waarin ze aanwezig zijn, wordt verwijderd.

Hoe verwijdert u automatisch productafbeeldingen in WooCommerce, met het product

Mogelijk bent u ook geïnteresseerd in...

3 gedachten over “Hoe verwijdert u automatisch productafbeeldingen in WooCommerce, met het product

  1. Lelie zegt:

    Dit heeft geholpen, bedankt!

  2. Robin zegt:

    Heel erg bedankt, je hebt een groot probleem voor mij opgelost.

  3. MegaShopXL.de zegt:

    Precies wat ik zocht of nodig had 👍

    De plug-in die ik eerder gebruikte, werkte niet zo betrouwbaar als dit fragment

    Hartelijk dank, dat scheelt mij een hoop werk en veel tijd

Laat een reactie achter

Uw e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd *