Find All Products without An Image in WooCommerce

Just paste the following at the bottom of your functions.php file. It will print an array of products without images to a file called no_woo_images.log in your theme’s root directory.

// ********* Get all products and variations and sort alphbetically, return in array (title, sku, id)*******
function get_woocommerce_product_list() {
    $full_product_list = array();
    $loop = new WP_Query( array( 'post_type' => array('product'), 'posts_per_page' => -1 ) );
 
    while ( $loop->have_posts() ) : $loop->the_post();

        $theid = get_the_ID();
        $product = new WC_Product($theid);

        if (!has_post_thumbnail($theid)) {
            
            $sku = get_post_meta($theid, '_sku', true );
            $thetitle = get_the_title();
            // add product to array but don't add the parent of product variations
            if (!empty($sku)) {
                $full_product_list[] = array(
                    'Title' => $thetitle, 
                    'SKU/Item #' => $sku, 
                    'Item ID' => $theid
                );
            }
        }

    endwhile; wp_reset_query();
    // sort into alphabetical order, by title
    sort($full_product_list);

    $no_match_file = get_stylesheet_directory();
    $no_match_file .= '/no_woo_image.log';
    file_put_contents($no_match_file, print_r($full_product_list, true));
}
get_woocommerce_product_list();