How to delete images from database with product

I use WooCommerce REST API for updating/creating/deleting products. When I try to delete a product using $woocommerce-post('products/batch'), an image connected with a product is not deleting from the DB and filesystem. It takes up unnecessary space on the server.

What is the best way to resolve this problem?

Topic woocommerce-offtopic images database Wordpress

Category Web


you can try this

$all_posts = get_posts(array(
    'numberposts' => - 1,
    'post_status' => 'any',
    'post_type' => get_post_types('', 'names') ,
));

foreach($all_posts as $all_post) {
    delete_post_media($all_post->ID);
}

function delete_post_media($post_id)
{
    if (!isset($post_id)) return;
    elseif ($post_id == 0) return;
    elseif (is_array($post_id)) return;
    else {
            $attachments = get_posts(array(
                    'post_type' => 'attachment',
                    'posts_per_page' => - 1,
                    'post_status' => 'any',
                    'post_parent' => $post_id
            ));
            foreach($attachments as $attachment) {
                    if (false === wp_delete_attachment($attachment->ID)) {

                            // Log failure to delete attachment.

                    }
            }
    }
}

I'd first get the attachment ID and with the attachment ID you could use wp_delete_attachment($att_id)

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.