Как автоматически удалять изображения товаров в 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 изображений также были удалены связанные. Довольно важный номер, который занял бы лишнее место на сервере веб-хостинга.

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

Поклонник технологий, с 2006 года с удовольствием пишу на StealthSettings.com. Обширный опыт работы с операционными системами: macOS, Windows и Linux, а также с языками программирования и платформами для блогов (WordPress) и онлайн-магазинов (WooCommerce, Magento, PrestaShop).

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

3 мысли о «Как автоматически удалять изображения товаров в WooCommerce, вместе с продуктом"

  1. Генау был 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

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