如何從您的 Dokan 市場中刪除未使用的 WooCommerce 圖像

已發表: 2022-04-06

在批量刪除 WooCommerce 產品時尋找刪除圖像的解決方案?

在經營在線業務時,您必須保持警惕。 您應該了解一切,例如流行時尚、新趨勢和商店的過時產品。 您可以使用更有可能售出的最新產品來更新您的網站。

為了使您的商店保持最新狀態,有時您需要刪除一些長時間未銷售的產品或過季的產品。 對於 WooCommerce 商店,您可以使用默認的 WooCommerce 設置或運行 SQL 命令輕鬆地執行此操作。

但問題是 WordPress 在刪除帖子時不會刪除媒體。 對於擁有數千張高質量圖像的電子商務網站或市場來說,這可能是一個主要問題。

在下面的博客中,您將了解如何在為單一商店和多供應商市場刪除產品時從圖庫中刪除 WooCommerce 圖像。

為什麼您應該在刪除該產品後刪除 WooCommerce 產品圖片

您需要為您的電子商務商店上傳包含數千張相關圖片的大量產品。 並且有時由於某些原因從您的站點中刪除某些產品也是很正常的。 刪除產品後,如果您檢查媒體庫,您會發現所有用於已刪除產品的圖像。

這意味著在 WooCommerce 中刪除產品後,系統會刪除與其關聯的大部分數據。 但該產品的圖像將保留在數據庫和媒體文件夾中。 它會使您的網站不必要地沉重。

刪除產品後刪除產品圖片的好處
1.提高網站性能
2. 通過最小化服務器存儲來提高存儲速度
3.保持網站輕量級
4. 為進一步上傳創造更多空間
5.優化店鋪數據庫

對於市場所有者來說,情況要復雜一些。 監控不同供應商上傳的所有媒體文件非常困難。 由於供應商可能每天上傳大量產品並刪除許多現有產品。 反過來,他們的產品圖片可能會減少您的服務器空間,這對您的網站性能不利。

在這種情況下,如果用戶/供應商刪除任何產品,刪除所有特色圖像和畫廊圖像將是有益的。

但如果有人在多個帖子中使用相同的圖片,就會出現另一個問題。

那麼,今天我們將向您展示解決所有這些障礙的解決方案。

刪除產品後如何刪除 Woocommerce 圖像?

批量刪除 WooCommerce 產品

在這裡,我們將使用鉤子: before_delete_post 。 在此處查看有關此掛鉤的詳細信息。

按照以下步驟在批量刪除 WooCommerce 產品期間刪除未使用的圖像:

  • 第一步:創建子主題
  • 第 2 步:在您的子主題中實施代碼
  • 第 3 步:檢查您的在線商店的結果

第 1 步:創建子主題

首先,創建一個兒童主題。 您需要修改此子主題,因為此增強功能與主題相關。

為子主題創建一個文件夾

您可以按照本指南輕鬆創建子主題。 或者使用任何 WordPress 插件創建子主題。

第 2 步:在您的子主題中實施代碼

接下來,打開您的子主題functions.php並粘貼以下代碼 -

 // 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 ); } } }

第 3 步:檢查您的在線商店的結果

插入代碼後保存 functions.php。 現在去你的 WooCommerce 商店並刪除一個產品。 它還將刪除關聯的圖像。

刪除圖片

如何刪除 Dokan Marketplace 中的 WooCommerce 產品圖片

現在我們將向您展示如何在刪除市場內的產品後刪除 Woocommerce 圖像。 它可以幫助您釋放服務器空間並減少媒體庫的混亂情況。

在這種情況下,將以下代碼片段粘貼到主題的 functions.php 文件中 -

 <?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 ); } } } );

現在,只要任何供應商從市場上刪除產品,相關的產品圖像就會自動從媒體庫中消失。

獎勵:當您需要批量刪除 WooCommerce 產品時

批量刪除 WooCommerce 產品

從媒體庫中刪除未使用的圖片是個好主意。 這些圖像不會為您的商店增加任何價值。 相反,它會妨礙您的網站性能。 但首先,您需要決定需要從在線商店中移除哪些產品。

我們突出顯示了您可能需要批量刪除的產品類型-

  • 季節性產品
  • 循環產品
  • 缺貨產品
  • 非暢銷產品
  • 測試產品

季節性產品:某些產品可能會在特定時間段後失去需求。 例如,您可以在商店中針對一年中最冷的時間段添加新的冬季產品。 但春季到來後,這類產品的需求量就會下降,很快就會完全過時。 並且您需要從您的商店中批量刪除 WooCommerce 產品。

週期性產品:需要定期用新產品補充庫存。 例如,在特殊的節日之後,您必須從商店中刪除舊產品並上傳新產品。

缺貨商品:庫存中沒有的商品,再次進貨的可能性較小,最好擺脫這些商品。

非銷售產品:如果您的庫存中有不常銷售的產品,您應該從商店中刪除這些產品。 因為這些產品只會增加您的責任並浪費您的空間。

測試產品:很多時候在推出原始產品之前,你必須引入許多測試產品,看看它是否有效。 一旦你推出主要產品,最好刪除測試產品。

相關資源:您可以使用 WooCommerce 創建的產品類型!

交給你

當您需要批量刪除 WooCommerce 產品時,可能有幾種情況。 作為 WordPress 用戶,這並不困難。 但是當刪除產品後,相關產品圖像仍然保留在媒體庫中時,您會遇到困難。

上述指南可幫助您在 WooCommerce 中刪除產品時包含一個自動刪除圖像的過程。

您是否仍然對如何使用操作掛鉤批量刪除 WooCommerce 產品和產品圖片有疑問? 讓我們在評論中知道!

訂閱 weDevs 博客

我們發送每週時事通訊,肯定沒有垃圾郵件