Come rimuovere le immagini WooCommerce inutilizzate dal tuo mercato Dokan
Pubblicato: 2022-04-06Cerchi soluzioni per rimuovere le immagini durante l'eliminazione in blocco dei prodotti WooCommerce?
Mentre gestisci un'attività online, devi essere vigile. Dovresti essere consapevole di tutto, come la moda di tendenza, le nuove tendenze e i prodotti obsoleti del tuo negozio. Puoi mantenere il tuo sito aggiornato con gli ultimi prodotti che hanno maggiori probabilità di essere venduti.
Per mantenere aggiornato il tuo negozio, a volte è necessario eliminare alcuni prodotti che non sono stati venduti da molto tempo o prodotti fuori stagione. Per un negozio WooCommerce, puoi farlo facilmente utilizzando l'impostazione WooCommerce predefinita o eseguendo un comando SQL.
Ma il problema è che WordPress non elimina i media dopo aver eliminato un post. Questo potrebbe essere un grosso problema per un sito di e-commerce o un mercato con migliaia di immagini di alta qualità.
Nel seguente blog imparerai come rimuovere le immagini di WooCommerce dalla galleria quando elimini un prodotto sia per un singolo negozio che per un marketplace multivendor.
Perché dovresti rimuovere le immagini dei prodotti WooCommerce dopo aver eliminato quel prodotto
Devi caricare molti prodotti con migliaia di immagini correlate per il tuo negozio di e-commerce. E a volte è anche molto normale eliminare alcuni prodotti dal tuo sito per alcuni motivi. Dopo aver eliminato un prodotto, se controlli la tua libreria multimediale troverai tutte quelle immagini che sono state utilizzate per i tuoi prodotti eliminati.
Ciò significa che dopo aver eliminato un prodotto in WooCommerce, il sistema rimuove la maggior parte dei dati ad esso associati. Ma l'immagine di quel prodotto rimarrà nel database e nella cartella multimediale. Renderà il tuo sito inutilmente pesante.
Vantaggi della rimozione delle immagini del prodotto dopo l'eliminazione del prodotto |
1. Migliora le prestazioni del sito |
2. Aumentare la velocità dell'archivio riducendo al minimo l'archiviazione del server |
3. Mantieni il sito leggero |
4. Crea più spazio per ulteriori caricamenti |
5. Ottimizza il database del negozio |
Per i proprietari di marketplace, lo scenario è un po' più complesso. È estremamente difficile monitorare tutti i file multimediali caricati da fornitori diversi. Dal momento che un venditore carica ogni giorno un buon numero di prodotti e cancella anche molti di quelli esistenti. A loro volta, le loro immagini dei prodotti possono ridurre lo spazio sul tuo server, il che non è positivo per le prestazioni del tuo sito.
In tal caso, sarebbe vantaggioso eliminare tutta l'immagine in primo piano e l'immagine della galleria se l'utente/fornitore elimina qualsiasi prodotto.
Ma lì può sorgere un altro problema se qualcuno usa le stesse immagini su più post.
Bene, oggi ti mostreremo le soluzioni per gestire tutti questi ostacoli.
Come eliminare le immagini di Woocommerce dopo aver eliminato un prodotto?
Qui useremo l'hook: before_delete_post
. Controlla i dettagli su questo gancio qui.
Segui i passaggi seguenti per rimuovere le immagini non utilizzate durante l'eliminazione in blocco dei prodotti WooCommerce:
- Passaggio 1: crea un tema figlio
- Passaggio 2: implementa il codice all'interno del tuo tema figlio
- Passaggio 3: controlla il risultato per il tuo negozio online
Passaggio 1: crea un tema figlio
Innanzitutto, crea un tema figlio. È necessario modificare questo tema figlio poiché questo miglioramento è correlato al tema.
Puoi seguire questa guida per creare facilmente un tema figlio. Oppure usa qualsiasi plugin di WordPress per creare un tema child.
Passaggio 2: implementa il codice all'interno del tuo tema figlio
Successivamente, apri il tuo tema figlio functions.php e incolla il codice seguente-
// 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 ); } } }
Passaggio 3: controlla il risultato per il tuo negozio online
Dopo aver inserito il codice salva il file functions.php. Ora vai al tuo negozio WooCommerce ed elimina un prodotto. Eliminerà anche le immagini associate.
Come rimuovere le immagini dei prodotti WooCommerce nel Marketplace di Dokan
Ora ti mostreremo come eliminare le immagini di Woocommerce dopo aver eliminato i prodotti all'interno di un marketplace. Ti aiuta a liberare spazio sul server e a ridurre il disordine della libreria multimediale.
In questo caso, incolla il seguente frammento di codice all'interno del file functions.php del tuo tema-
<?php add_action( 'before_delete_post', function( $id ) { $product = wc_get_product( $id ); if ( ! $product ) { return; } $all_product_ids = []; $product_thum_id_holder = []; $gallery_image_id_holder = []; $thum_id = get_post_thumbnail_id( $product->get_id() ); if ( function_exists( 'dokan' ) ) { $vendor = dokan()->vendor->get( dokan_get_current_user_id() ); if ( ! $vendor instanceof WeDevs\Dokan\Vendor\Vendor || $vendor->get_id() === 0 ) { return; } $products = $vendor->get_products(); if ( empty( $products->posts ) ) { return; } foreach ( $products->posts as $post ) { array_push( $all_product_ids, $post->ID ); } } else { $args = [ 'posts_per_page' => '-1' ]; $products = wc_get_products( $args ); foreach ( $products as $product ) { array_push( $all_product_ids, $product->get_id() ); } } foreach ( $all_product_ids as $product_id ) { if ( intval( $product_id ) !== intval( $id ) ) { array_push( $product_thum_id_holder, get_post_thumbnail_id( $product_id ) ); $wc_product = wc_get_product( $product_id ); $gallery_image_ids = $wc_product->get_gallery_image_ids(); if ( empty( $gallery_image_ids ) ) { continue; } foreach ( $gallery_image_ids as $gallery_image_id ) { array_push( $gallery_image_id_holder, $gallery_image_id ); } } } if ( ! in_array( $thum_id, $product_thum_id_holder ) && ! in_array( $thum_id, $gallery_image_id_holder ) ) { wp_delete_attachment( $thum_id, true ); if ( empty( $thum_id ) ) { return; } $gallery_image_ids = $product->get_gallery_image_ids(); if ( empty( $gallery_image_ids ) ) { return; } foreach ( $gallery_image_ids as $gallery_image_id ) { wp_delete_attachment( $gallery_image_id, true ); } } } );
Ora, ogni volta che un fornitore elimina un prodotto dal mercato, le immagini del prodotto associate scompariranno automaticamente dalla libreria multimediale.
Bonus: quando devi eliminare in massa i prodotti WooCommerce
È una buona idea rimuovere le immagini inutilizzate dalla tua galleria multimediale. Queste immagini non aggiungono alcun valore al tuo negozio. Piuttosto ostacola le prestazioni del tuo sito. Ma prima devi decidere quali prodotti rimuovere dal tuo negozio online.
Abbiamo evidenziato il tipo di prodotti che potrebbe essere necessario eliminare in blocco-
- Prodotti stagionali
- Prodotti ciclici
- Prodotti esauriti
- Prodotti non venduti
- Prodotti di prova
Prodotti stagionali: alcuni prodotti potrebbero perdere la loro domanda dopo un determinato periodo di tempo. Puoi aggiungere nuovi prodotti invernali, ad esempio, nel tuo negozio mirando al periodo più freddo dell'anno. Ma dopo l'arrivo della primavera, la domanda di tali prodotti diminuirebbe e presto sarebbero totalmente fuori moda. E devi eliminare in blocco i prodotti WooCommerce dal tuo negozio.
Prodotti ciclici: l'inventario deve essere rifornito con nuovi prodotti a intervalli regolari. Ad esempio, dopo un festival speciale, devi rimuovere i vecchi prodotti dal negozio e caricarne di nuovi.
Prodotti esauriti: Prodotti che non sono disponibili in magazzino e meno possibilità di rifornire nuovamente, sarebbe meglio sbarazzarsi di quei prodotti.
Prodotti non in vendita: se hai prodotti nel tuo magazzino che non sono comunemente venduti, dovresti eliminare quei prodotti dal tuo negozio. Perché questi prodotti aumenteranno solo la tua responsabilità e sprecheranno il tuo spazio.
Prodotti di prova: molte volte prima di lanciare il prodotto originale devi introdurre molti prodotti di prova per vedere se funziona bene. Una volta avviato il prodotto principale, è meglio eliminare i prodotti di prova.
Risorsa correlata: tipi di prodotti che puoi creare utilizzando WooCommerce!
A voi
Potrebbero esserci diverse situazioni in cui è necessario eliminare in blocco i prodotti WooCommerce. E non sarebbe difficile come utente di WordPress. Ma incontri difficoltà quando, dopo aver eliminato un prodotto, le relative immagini del prodotto rimangono ancora nella libreria multimediale.
La guida sopra ti aiuta a includere un processo automatico per eliminare le immagini quando elimini un prodotto in WooCommerce.
Hai ancora domande su come eliminare in massa i prodotti WooCommerce e le immagini dei prodotti con gli action hook? Fateci sapere nei commenti!