Como corrigir scripts essenciais do WooCommerce removidos pelo Perfmatters
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
- 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 - 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 - 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) - 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 - 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.
- 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
/**
* 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 );














