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');
