Como corrigir o layout quebrado do Pricing Menu no Happy Addons
O que é layout quebrado do Pricing Menu no Happy Addons?
O Pricing Menu (Price Menu na documentação oficial) e um widget premium do Happy Addons para Elementor usado para exibir cardapios e listas de precos, com título, descrição, imagem, preco original e preco atual de cada item. Ele depende de uma folha de estilo própria do Happy Addons para posicionar imagem, alinhar o conteúdo e desenhar a caixa de cada item; quando esse CSS não chega ao navegador, o widget aparece como uma lista crua, sem colunas, sem espacamento e com a imagem fora do lugar.
O Happy Addons carrega o estilo dos widgets de duas maneiras: o CSS global do plugin e, quando ativado o recurso On Demand Asset, apenas o CSS e o JS dos widgets realmente usados na página. Quando o cache do Elementor fica defasado, quando o On Demand Asset não consegue mapear o widget na página, ou quando um plugin de cache e minificacao remove os arquivos do Happy Addons, o navegador renderiza o Pricing Menu sem as regras de layout. O conteúdo continua intacto no banco; o que falta e a folha de estilo que organiza esse conteúdo na tela.
Como identificar
- O Pricing Menu aparece como uma lista de texto sem colunas, sem espacamento e sem a caixa de cada item, como se nenhum estilo tivesse sido aplicado.
- A imagem de cada item fica empilhada acima ou abaixo do texto em vez de alinhada ao lado, ignorando a posicao definida no painel do widget.
- O layout esta correto dentro do editor do Elementor, mas quebra no site publicado (frontend) ao visitar a página como visitante.
- No console do navegador (F12) aparece um erro de arquivo não encontrado para um CSS do Happy Addons, com a mensagem ‘Failed to load resource: net::ERR_ABORTED 404’.
- O preco e o título aparecem desalinhados ou sobrepostos apenas no mobile, enquanto no desktop o widget parece quase correto.
Como prevenir
- Sempre regenere os arquivos de CSS do Elementor depois de atualizar o Happy Addons ou editar o widget Pricing Menu, para evitar servir um estilo defasado.
- Configure exclusoes de cache e minificacao para os arquivos de CSS do Happy Addons no seu plugin de cache, evitando que o estilo do widget seja removido da página.
- Ao usar o recurso On Demand Asset, teste as páginas que inserem o Pricing Menu por template, popup ou bloco reutilizavel, garantindo que o CSS do widget realmente carregue.
- Mantenha o Happy Addons Free e Pro na mesma versão estavel e a licenca do Pro ativa, validando atualizações em staging antes de aplicar em producao.
Causa
- O cache de CSS do Elementor esta desatualizado e ainda serve um arquivo antigo sem as regras do Pricing Menu, o que acontece tipicamente após atualizar o Happy Addons ou editar o widget.
- O recurso On Demand Asset do Happy Addons esta ativo e não incluiu o CSS do Pricing Menu na página, porque a documentação define que ele 'so carrega o CSS e o JS dos widgets em uso' e o widget foi inserido por template, shortcode ou bloco que o detector não reconhece.
- Um plugin de cache e minificacao (como WP Rocket ou Perfmatters) combinou ou removeu o arquivo de CSS do Happy Addons, ou serviu uma versão cacheada da página anterior a inclusão do widget.
- O Happy Addons Pro não esta ativo ou esta com a licenca expirada, e o Pricing Menu, que e um widget premium, deixa de carregar seus assets premium e renderiza sem estilo.
- Uma regra de CSS do tema ou de um tema filho (por exemplo Astra Pro) tem especificidade maior e sobrescreve o layout do widget, desalinhando imagem, preco e descrição mesmo com o CSS do Happy Addons presente.
Como resolver
- Regenere os arquivos de CSS do Elementor: A causa mais comum e um cache de estilo defasado. Em Elementor, use a opção de regenerar arquivos e dados para forcar o Elementor a reconstruir o CSS de todas as páginas, incluindo o estilo do Pricing Menu.
Painel WP -> Elementor -> Ferramentas -> aba Geral Em 'Regenerar Arquivos e Dados', clique em 'Regenerar Arquivos' - Limpe o cache do plugin de cache e do servidor: Se você usa um plugin de cache ou minificacao, limpe todo o cache para que a página volte a servir o CSS atualizado do Happy Addons. Limpe também o cache da CDN ou do host se houver, pois eles podem reter a versão sem estilo.
Painel WP -> limpe o cache do seu plugin (ex.: WP Rocket -> Limpar Cache) Desative temporariamente a minificacao e a combinacao de CSS para testar Purgue o cache da CDN/host (ex.: Cloudflare -> Purge Everything) - Reveja o recurso On Demand Asset do Happy Addons: O On Demand Asset so carrega o CSS dos widgets que ele detecta na página. Se o Pricing Menu vem de um template, popup ou bloco reutilizavel, o detector pode não incluir o estilo. Desative o recurso para confirmar a causa; se o layout voltar, mantenha desativado nas páginas afetadas.
Painel WP -> Happy Addons -> Settings (Configurações) Localize 'On Demand Asset' e desative-o Recarregue a página do frontend e verifique o layout do widget - Confirme que o Happy Addons Pro esta ativo: O Pricing Menu e um widget premium. Verifique se o Happy Addons Pro esta instalado, ativo e com a licenca valida. Um Pro inativo ou com licenca expirada faz o widget renderizar sem os assets premium de estilo.
Painel WP -> Plugins -> confirme 'Happy Addons Pro' ativo Painel WP -> Happy Addons -> verifique o status da licenca - Isole um conflito de CSS do tema: Se o CSS do Happy Addons já carrega mas o layout continua desalinhado, o tema pode estar sobrescrevendo o widget. Troque temporariamente para um tema padrão e recarregue a página; se o layout corrigir, o conflito esta no tema e você deve ajustar a especificidade com CSS adicional do Pricing Menu.
Painel WP -> Aparencia -> Temas -> ative um tema padrão (ex.: Hello Elementor) Recarregue a página do frontend e compare o layout Reative seu tema e use Painel WP -> Aparencia -> CSS Adicional para reforcar o estilo do widget
<?php
// Forca o Happy Addons a sempre enfileirar o CSS dos widgets,
// ignorando o On Demand Asset na pagina onde o Pricing Menu quebra.
add_filter( 'happyaddons_optimize_css_load', '__return_false' );
add_filter( 'happyaddons_optimize_js_load', '__return_false' );
// Reforca a especificidade do layout do Pricing Menu contra o tema.
add_action( 'wp_head', 'full_pricing_menu_css_fix', 99 );
function full_pricing_menu_css_fix() {
echo '<style id="full-ha-pricing-menu-fix">
.ha-price-menu .ha-price-menu-item { display: flex; align-items: center; gap: 16px; }
.ha-price-menu .ha-price-menu-thumb img { max-width: 80px; height: auto; }
</style>';
}














