Chiar daca WooCommerce este o platforma de shopping foarte robusta si care s-a dezvoltat mult in ultimii ani, inca sunt multe optiuni lipsa. Una dintre acestea este posibilitatea sa stergi automat imaginile produselor in WooCommerce atunci cand un produs este sters.
Mai exact, atunci cand stergem un produs din WooCommerce, imaginile asociatate acestuia raman pe server. La un magazin online cu mii de produse se va aduna un numar important de imagini. Daca aceste poze nu sunt sterse odata cu produsele, atunci de-a lungul timpului se va ocupa un spatiu de stocare important.
Atunci cand in WooCommerce este adaugat un produs nou, cel putin imaginea de prezentare va fi duplicata de cel putin trei – patru ori, la dimensiuni diferite. Sunt unele themes de Woo care pot sa faca si pana la 10 copii ale imaginii originale, pentru diferite layouts.
Cea mai buna solutie pentru optimizarea spatiului ocupat pe serverul de webhosting de imaginile produselor, este ca acestea sa fie sterse odata cu produsele eliminate din magazinul online.
Cum stergi automat imaginile produselor in WooCommerce atunci cand stergi produse
Am un magazin online care are in media library 23.567 de imagini, majoritatea ale produselor WooCommerce. Daca as sterge produsele care nu mai sunt in stoc, imaginile ar ramane in biblioteca media (pe server).
Ca sa stergi automat imaginile produselor in WooCommerce, odata cu produsele, tot ce trebuie sa faci este sa adaugi in fisierul functions.php al temei active, urmatorul cod:
*Este foarte recomandat sa faci inainte un backup al folderului 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 );
}
}
}
Este bine sa stii ca dupa ce salvezi codul de mai sus in functions.php
, imaginile produselor vor fi sterse automat, odata cu produsul. Atunci cand produsele sunt sterse si din “Trash“.
Odata cu produsele elimintate din magazinul online au fost sterse si 3336 imagini asociate. Un numar destul de important, care ar fi ocupat spatiu inutil pe serverul de web hosting.
- Cum personalizam pagina “No products were found matching your selection” in WooCommerce – Optimizarea Vanzarilor pe Magazinele Online
- How to clean huge wp_options in SQL – Transients, wpseo_sitemap _cache_validator
- Cum stergem rapid toate comenzile (Orders) din WooCommerce [SQL Tips]
- FIX HUGE SQL tables: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]
- Cum debifam implicit “Ship to different address” din pagina de Checkout a Woocommerce
Nu folositi aceasta optiune daca folositi aceleasi imagini la mai multe produse. Acestea vor fi sterse automat daca este eliminat un produs la care sunt prezente.
Это помогло,спасибо!
Grazie mille, mi hai risolto un bel problema.
Genau was ich gesucht bzw. benötigt habe 👍
Das PlugIn das ich bisher genutzt habe, funktionierte nicht so zuverlässig wie dieses Snippet
Vielen Dank, das erspart mir einen Haufen Arbeit und viel Zeit