Excluir Imagens WooCommerce Automaticamente: Otimize sua Mídia

Mantenha seu site WordPress e sua loja WooCommerce organizados e com desempenho otimizado! Este snippet de código PHP essencial automatiza a exclusão de imagens destacadas e de galeria de produtos WooCommerce. Ao apagar um produto, todas as suas mídias associadas são automaticamente removidas da sua biblioteca, garantindo que você libere espaço de armazenamento e evite arquivos órfãos. Ideal para otimização de mídia, limpeza de banco de dados e melhoria de desempenho em lojas virtuais. Fácil de implementar e altamente eficaz para gerenciar seus produtos WooCommerce e recursos de mídia.


Palavras-chave usadas e seus benefícios para SEO:

  • Excluir Imagens WooCommerce Automaticamente: Direta e focada na funcionalidade principal.
  • Otimize sua Mídia: Apela para um benefício importante para usuários de WordPress.
  • WordPress, WooCommerce: Palavras-chave de plataforma essenciais.
  • Código PHP, Snippet de Código: Para desenvolvedores ou usuários que procuram soluções de código.
  • Imagens Destacadas, Imagens de Galeria: Detalhes específicos do tipo de mídia.
  • Libere Espaço de Armazenamento: Benefício claro e procurado.
  • Otimização de Mídia, Limpeza de Banco de Dados, Melhoria de Desempenho: Termos técnicos que indicam os resultados da aplicação do código.
  • Lojas Virtuais, Produtos WooCommerce: Contexto de e-commerce.
  • Recursos de Mídia: Termo abrangente.
  • Hook before_delete_post: Para usuários técnicos que buscam detalhes de implementação.
function delete_product_images_on_delete($post_id) {
    // Verifica se o post é um produto do WooCommerce
    if (get_post_type($post_id) !== 'product') {
        return;
    }

    // Obtém o ID da imagem destacada e deleta a imagem (junto com suas mídias geradas)
    $featured_image_id = get_post_thumbnail_id($post_id);
    if ($featured_image_id) {
        wp_delete_attachment($featured_image_id, true);
    }

    // Obtém as imagens da galeria de produto e deleta cada uma
    $gallery_image_ids = get_post_meta($post_id, '_product_image_gallery', true);
    if ($gallery_image_ids) {
        $gallery_image_ids = explode(',', $gallery_image_ids);
        foreach ($gallery_image_ids as $image_id) {
            wp_delete_attachment($image_id, true);
        }
    }
}

add_action('before_delete_post', 'delete_product_images_on_delete');
Voltar ao Blog