Несмотря на то, что WooCommerce — очень надежная платформа для покупок, которая сильно развилась за последние годы, все еще есть много недостающих опций. Одним из них является возможность автоматического удаления изображений продукта в WooCommerce при удалении продукта.
Точнее, когда мы удаляем товар из WooCommerce, связанные с ним изображения остаются на сервере. Интернет-магазин с тысячами товаров соберет значительное количество изображений. Если эти картинки не удалить вместе с товарами, то со временем они займут значительный объем памяти.
Когда в WooCommerce добавляется новый товар, как минимум презентационное изображение будет продублировано минимум три-четыре раза, в разных размерах. Есть некоторые themes by Woo, который может создавать до 10 копий исходного изображения для разных макетов.
Лучшим решением для оптимизации места, занимаемого изображениями товаров на сервере веб-хостинга, является их удаление вместе с товарами, удаленными из интернет-магазина.
Как автоматически удалять изображения товаров в WooCommerce при удалении товаров
У меня есть интернет-магазин, в котором есть лен media library 23.567 XNUMX изображений, большинство продуктов 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 — переходные процессы, wpseo_sitemap _cache_validator
- Как быстро удалить все заказы WooCommerce [Советы по SQL]
- ИСПРАВИТЬ ОГРОМНЫЕ таблицы SQL: wp_actionscheduler_actions и wp_actionscheduler_logs [Советы WooCommerce]
- Как снять отметку с пункта «Отправить в разные address »со страницы оформления заказа Woocommerce.
Не используйте эту опцию, если вы используете одни и те же изображения для нескольких товаров. Они будут удалены автоматически, если будет удален продукт, в котором они присутствуют.