Дори и да WooCommerce е много стабилна платформа за пазаруване, която се разви много през последните години, все още има много липсващи опции. Една от тях е възможността за автоматично изтриване на изображенията на продукта WooCommerce когато даден продукт бъде изтрит.
По-точно, когато изтрием продукт от WooCommerce, свързаните с него изображения остават на сървъра. Онлайн магазин с хиляди продукти ще събере значителен брой изображения. Ако тези снимки не бъдат изтрити заедно с продуктите, с течение на времето те ще заемат значително количество място за съхранение.
Когато в WooCommerce добавен нов продукт, най-малко изображението на презентацията ще бъде дублирано поне три - четири пъти, в различни размери. Има няколко themes от 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 Съвети]
- Как да премахнете отметката по подразбиране “Ship to different address” от страницата за плащане на Woocommerce
Не използвайте тази опция, ако използвате едни и същи изображения за няколко продукта. Те ще бъдат изтрити автоматично, ако бъде премахнат продукт, в който присъстват.
Това помогна, благодаря!
Grazie mille, ти реши голям проблем за мен.
Genau was ich gesucht bzw. нужда от хабе 👍
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