🎉 USE O CUPOM DESCONTO.FULL | 20% OFF acima de R$ 50,00

Como corrigir scripts essenciais do WooCommerce removidos pelo Perfmatters

Time Full Services Time Full Services
Tipo Performance & Velocidade
Nome do erro Scripts essenciais do WooCommerce removidos pelo Perfmatters EN: Perfmatters removing essential WooCommerce scripts
Severidade Crítico
Descrição Scripts do WooCommerce removidos pelo Perfmatters acontecem quando o Script Manager desativa assets como wc-cart-fragments, woocommerce e wc-checkout marcados como Everywhere, em vez de Current URL. Sem esses arquivos, o carrinho Ajax para de atualizar e o checkout fica sem o JavaScript que processa o pedido.

O que é scripts do WooCommerce removidos pelo Perfmatters?

Os scripts do WooCommerce removidos pelo Perfmatters são os arquivos de JavaScript e CSS da loja que o Script Manager do plugin deixou de carregar na página. O Script Manager é uma ferramenta de performance que desativa assets por post, página ou Everywhere para reduzir requisições HTTP, e isso é ótimo para scripts que carregam onde não precisam. O problema surge quando um asset essencial da loja é desativado no lugar errado. O WooCommerce enfileira handles como wc-cart-fragments (atualização Ajax do mini-carrinho), woocommerce, wc-cart, wc-checkout, wc-add-to-cart e a biblioteca selectWoo nas páginas de loja, carrinho, finalizar compra e minha conta. Se um desses é marcado como desativado Everywhere, ele some também das páginas onde a loja depende dele, e a compra trava mesmo com o restante do site mais rápido.

Como identificar

  • O contador do carrinho não muda ao adicionar produto: a mensagem aparece, mas o ícone continua zerado até atualizar a página (sinal de wc-cart-fragments desativado).
  • Na página de finalizar compra, os campos de país e estado deixam de ter o autocomplete (selectWoo/select2 ausente) e o botão Finalizar compra não responde ao clique.
  • O console do navegador (DevTools) mostra Uncaught ReferenceError: wc_add_to_cart_params is not defined ou erro semelhante apontando para um objeto do WooCommerce que não existe mais.
  • No Script Manager do Perfmatters, o grupo WooCommerce aparece com Status Off e a opção Everywhere selecionada, sem exceção para as páginas da loja.

Como prevenir

  • Desative assets do WooCommerce apenas por Current URL ou por página, nunca Everywhere, para que carrinho, checkout, loja e minha conta nunca fiquem sem os scripts da loja
  • Use o modo de teste do Script Manager (Testing Mode) para validar cada disable como admin logado antes de aplicar para os visitantes
  • Depois de qualquer mudança no Script Manager, faça um pedido de teste completo e confira o console do navegador em busca de objetos do WooCommerce ausentes

Causa

  • O grupo WooCommerce foi desativado com a opção Everywhere no Script Manager, o que remove os assets também das páginas de carrinho, checkout, loja e minha conta.
  • O handle wc-cart-fragments foi desativado para reduzir requisições, mas é justamente ele que faz a atualização Ajax do mini-carrinho sem recarregar a página.
  • Um disable por Regex casou um padrão amplo como woocommerce e capturou wc-checkout, wc-cart e selectWoo junto, em vez de mirar um único arquivo.
  • O script de um gateway de pagamento (por exemplo wc-stripe ou o JavaScript do PayPal) foi desativado Everywhere, e sem ele o checkout não consegue tokenizar o cartão.
  • O modo MU (must-use) do Perfmatters foi usado para desativar o plugin WooCommerce inteiro em uma página que, na verdade, precisa dos assets da loja.

Como resolver

  1. Confirme o asset que sumiu: abra a página de carrinho ou finalizar compra com o DevTools na aba Console e identifique o objeto do WooCommerce que está faltando. O nome do objeto aponta direto para o handle que precisa voltar.
    Uncaught ReferenceError: wc_add_to_cart_params is not defined
    Uncaught ReferenceError: wc_cart_fragments_params is not defined
  2. Abra o Script Manager na página afetada: navegue até a própria página de carrinho ou checkout e abra o Script Manager pela barra de admin, ou pela URL com o parâmetro de consulta, para ver os assets daquela página específica.
    https://sualoja.com.br/finalizar-compra/?perfmatters
  3. Troque Everywhere por exceção na loja: no grupo WooCommerce que está com Status Off, em vez de desativar Everywhere sem ressalva, adicione uma exceção para reabilitar os assets nas páginas da loja. O Perfmatters permite manter o disable global e abrir exceção por Current URL, por página ou por post.
    Status: Off
    Disable: Everywhere
    Exception: Current URL  (cart, checkout, my-account, shop)
  4. Garanta o wc-cart-fragments na loja: reative especificamente o handle responsável pela atualização Ajax do carrinho. Sem ele, o contador do mini-carrinho só muda ao recarregar a página.
    Handle: wc-cart-fragments  ->  Status On nas páginas da loja
  5. Salve e limpe o cache: clique em Save no rodapé do Script Manager e limpe o cache de página e o cache do navegador. Configurações do Script Manager só refletem depois que a página é servida sem a versão antiga em cache.
  6. Teste a compra de ponta a ponta: adicione um produto, confirme que o contador do carrinho muda na hora, avance até finalizar compra e verifique que os campos de país e estado e o botão de pagamento voltaram a funcionar. Use o modo de teste do Perfmatters para validar com o site ainda fora do ar para visitantes se precisar.
PHP
<?php
/**
 * Rede de seguranca: garante que o script Ajax do carrinho (wc-cart-fragments)
 * continue carregando nas paginas da loja, mesmo que uma regra do Script Manager
 * tente desativa-lo Everywhere. Cole em um snippet (Code Snippets) ou no functions.php
 * do tema filho.
 */
add_action( 'wp_enqueue_scripts', function () {
	if ( ! function_exists( 'is_woocommerce' ) ) {
		return;
	}

	$pagina_de_loja = is_woocommerce() || is_cart() || is_checkout() || is_account_page();

	if ( $pagina_de_loja && ! wp_script_is( 'wc-cart-fragments', 'enqueued' ) ) {
		wp_enqueue_script( 'wc-cart-fragments' );
	}
}, 99 );

Perguntas frequentes

Por que o Perfmatters quebrou meu carrinho do WooCommerce?
Porque um asset essencial da loja, em geral o wc-cart-fragments, foi desativado com a opção Everywhere no Script Manager. Esse handle faz a atualização Ajax do mini-carrinho. Sem ele, o contador só muda ao recarregar a página e a experiência de compra parece quebrada.
Quais scripts do WooCommerce nunca devo desativar?
Mantenha sempre ativos nas páginas da loja os handles woocommerce, wc-cart, wc-cart-fragments, wc-checkout, wc-add-to-cart, selectWoo e o script do seu gateway de pagamento. Eles tratam carrinho, finalização e processamento do pedido. Desativá-los nessas páginas trava a compra.
Como reativar um script removido pelo Perfmatters sem perder a otimização?
Não use Everywhere puro. Deixe o disable global e adicione uma exceção por Current URL ou por página para reabilitar o asset nas páginas de loja, carrinho, finalizar compra e minha conta. Assim o script some no resto do site e continua presente onde a loja precisa.
O que é o wc-cart-fragments e por que ele importa tanto?
É o script do WooCommerce que atualiza o mini-carrinho via Ajax sem recarregar a página, sincronizando o contador e o total a cada item adicionado. Quando o Perfmatters o desativa, o carrinho parece não responder. Ele é o asset mais comum por trás desse problema.
Como descobrir qual asset o Script Manager removeu?
Abra a página afetada com o DevTools na aba Console e procure mensagens do tipo objeto is not defined, como wc_add_to_cart_params is not defined. O nome do objeto indica o handle que sumiu. No Script Manager, esse grupo aparecerá com Status Off.
Posso testar mudanças no Script Manager sem afetar os clientes?
Sim. O Perfmatters tem o Testing Mode, que restringe a configuração do Script Manager aos administradores logados. Você valida o efeito de cada disable enquanto os visitantes continuam vendo o site normal, e só então aplica as mudanças para todos.
Desativar scripts do WooCommerce realmente acelera a loja?
Acelera quando você remove assets de páginas onde a loja não roda, como posts de blog e páginas institucionais. O ganho vem de cortar requisições onde elas são inúteis. Nas páginas de loja, carrinho e checkout, os scripts são necessários e não devem ser cortados.

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.

Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes