Как автоматически удалять изображения товаров в WooCommerce вместе с товаром

Несмотря на то, что 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».

Как автоматически удалять изображения товаров в WooCommerce вместе с товаром
Удалить изображение продукта WooCommerce

Вместе с товарами, удаленными из интернет-магазина 3336 изображений также были удалены связанные. Довольно важный номер, который занял бы лишнее место на сервере веб-хостинга.

Не используйте эту опцию, если вы используете одни и те же изображения для нескольких товаров. Они будут удалены автоматически, если будет удален продукт, в котором они присутствуют.

Как записаться » WordPress » Как автоматически удалять изображения товаров в WooCommerce вместе с товаром

Увлечен технологиями, мне нравится тестировать и писать руководства по операционным системам. macOS, Linux, Windowsо WordPress, WooCommerce и настроить веб-серверы LEMP (Linux, NGINX, MySQL и PHP). я пишу на StealthSettings.com с 2006 года, а несколько лет спустя я начал писать на iHowTo.Tips обучающие программы и новости об устройствах в экосистеме. Apple: iPhone, айпад, Apple Часы, HomePod, iMac, MacBook, AirPods и аксессуары.

Оставьте комментарий