Ακόμη και αν WooCommerce είναι μια πολύ στιβαρή πλατφόρμα αγορών που έχει αναπτυχθεί πολύ τα τελευταία χρόνια, υπάρχουν ακόμα πολλές επιλογές που λείπουν. Ένα από αυτά είναι η δυνατότητα αυτόματης διαγραφής των εικόνων του προϊόντος WooCommerce όταν ένα προϊόν διαγράφεται.
Πιο συγκεκριμένα, όταν διαγράφουμε ένα προϊόν από WooCommerce, οι εικόνες που σχετίζονται με αυτό παραμένουν στον διακομιστή. Ένα ηλεκτρονικό κατάστημα με χιλιάδες προϊόντα θα συγκεντρώσει σημαντικό αριθμό εικόνων. Εάν αυτές οι εικόνες δεν διαγραφούν μαζί με τα προϊόντα, τότε με την πάροδο του χρόνου θα καταλάβουν σημαντικό χώρο αποθήκευσης.
Όταν μέσα WooCommerce προστίθεται ένα νέο προϊόν, τουλάχιστον η εικόνα της παρουσίασης θα αντιγραφεί τουλάχιστον τρεις - τέσσερις φορές, σε διαφορετικά μεγέθη. Υπάρχουν μερικά themes της Woo που μπορεί να δημιουργήσει έως και 10 αντίγραφα της αρχικής εικόνας, για διαφορετικές διατάξεις.
Η καλύτερη λύση για τη βελτιστοποίηση του χώρου που καταλαμβάνουν οι εικόνες προϊόντων στον διακομιστή web hosting είναι να διαγραφούν μαζί με τα προϊόντα που αφαιρούνται από το ηλεκτρονικό κατάστημα.
Πώς να διαγράψετε αυτόματα τις εικόνες του προϊόντος WooCommerce όταν διαγράφετε προϊόντα
Έχω ένα ηλεκτρονικό κατάστημα που έχει λινάρι media library 23.567 εικόνες, τα περισσότερα από τα προϊόντα WooCommerce. Εάν επρόκειτο να διαγράψω τα προϊόντα που δεν είναι πλέον σε απόθεμα, οι εικόνες θα παρέμεναν στη βιβλιοθήκη πολυμέσων (στον διακομιστή).
Για να διαγράψετε αυτόματα τις εικόνες του προϊόντος WooCommerce, μαζί με τα προϊόντα, το μόνο που έχετε να κάνετε είναι να προσθέσετε τον ακόλουθο κώδικα στο αρχείο functions.php του ενεργού θέματος:
*Συνιστάται ανεπιφύλακτα να δημιουργήσετε πρώτα αντίγραφο ασφαλείας του φακέλου 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 );
}
}
}
Καλό είναι να γνωρίζετε ότι αφού αποθηκεύσετε τον παραπάνω κωδικό στο functions.php
, οι εικόνες του προϊόντος θα διαγραφούν αυτόματα, μαζί με το προϊόν. Όταν τα προϊόντα διαγράφονται επίσης από "Trash".
Μαζί με τα προϊόντα που αφαιρέθηκαν από το ηλεκτρονικό κατάστημα Διαγράφηκαν επίσης 3336 εικόνες που συνδέονται. Ένας αρκετά σημαντικός αριθμός, που θα είχε καταλάβει περιττό χώρο στον διακομιστή φιλοξενίας ιστοσελίδων.
- Πώς να προσαρμόσετε τη σελίδα "Δεν βρέθηκαν προϊόντα που να ταιριάζουν με την επιλογή σας" στο WooCommerce - Βελτιστοποίηση πωλήσεων σε ηλεκτρονικά καταστήματα
- Πώς να καθαρίσετε τεράστια wp_options σε SQL - Transients, wpseo_sitemap _cache_validator
- Πώς να διαγράψετε γρήγορα όλες τις παραγγελίες (Παραγγελίες) από WooCommerce [Συμβουλές SQL]
- ΔΙΟΡΘΩΣΤΕ ΤΕΡΑΣΤΙΚΟΥΣ πίνακες SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Συμβουλές]
- Πώς να καταργήσετε την επιλογή προεπιλογής “Ship to different address” από τη σελίδα ολοκλήρωσης αγοράς α Woocommerce
Μην χρησιμοποιείτε αυτήν την επιλογή εάν χρησιμοποιείτε τις ίδιες εικόνες για πολλά προϊόντα. Θα διαγραφούν αυτόματα εάν αφαιρεθεί ένα προϊόν στο οποίο υπάρχουν.
Αυτό βοήθησε, ευχαριστώ!
Grazie mille, μου έλυσες ένα μεγάλο πρόβλημα.
Ο Genau was ich gesucht bzw. χρειάζεται habe 👍
Das PlugIn das ich bisher genutzt habe, funktionierte nicht so versältigte wie dieses Snippet
Vielen Dank, das erspart mir einen Haufen Arbeit und viel Zeit