=== Remove Admin Notices ===
Contributors: agenciabiema
Tags: admin notices, dashboard, notifications, clean admin, white label
Requires at least: 5.8
Tested up to: 6.8
Requires PHP: 7.0
Stable tag: 2.0.7
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Remove o spam de avisos que outros plugins injetam no painel. Bloqueia tudo por padrão; você libera só o que quiser receber.

== Description ==

Chega de anúncio pentelho no seu painel WordPress. Pedidos de avaliação de 5 estrelas, promoções da versão Pro, avisos de licença expirando, banners de Black Friday, "conheça nosso novo recurso", alertas de configuração que você já ignorou trinta vezes. Cada plugin instalado empilha mais uma faixa colorida no topo de toda tela, até o painel virar um mural de propaganda onde o que importa, uma atualização de segurança, um erro real, se perde no meio.

**Remove Admin Notices apaga esse spam.** Ele intercepta os avisos antes que apareçam, descobre qual plugin, tema ou o próprio WordPress gerou cada um, e bloqueia todos por padrão.

O bloqueio é total desde a instalação, mas não é cego: nada é jogado fora. Tudo que foi bloqueado fica listado na página de configurações, com a origem e o texto da mensagem. De lá você libera o que quiser continuar recebendo, um plugin inteiro, ou só uma mensagem específica dele.

É ideal para sites entregues a clientes: o cliente entra num painel silencioso, sem ser puxado para telas de upgrade de plugins que ele nem sabe que existem, e você continua com acesso a tudo que decidir liberar.

= 100% gratuito =

Sem versão paga, sem limite de uso, sem upsell e sem coleta de dados. A única requisição de rede que o plugin faz é a verificação de atualização no servidor do próprio autor.

= Como funciona =

O plugin intercepta os hooks de aviso do painel (`admin_notices`, `all_admin_notices`, `network_admin_notices`, `user_admin_notices`) antes que rodem, executa cada callback isoladamente e identifica, por reflexão, o arquivo onde ele foi definido, ou seja, exatamente qual plugin, tema, must-use ou o núcleo do WordPress gerou aquele aviso. Só então decide se a saída vai para a tela ou para o registro.

== Installation ==

1. Suba a pasta `remove-admin-notices` para `wp-content/plugins/`.
2. Ative o plugin no menu Plugins.
3. Vá em Configurações → Remove Admin Notices e libere o que quiser receber.

Alternativa: coloque `remove-admin-notices.php` em `wp-content/mu-plugins/` para virar must-use. Ele carrega sempre e não pode ser desativado pelo cliente, mas must-use plugins não recebem atualizações automáticas.

== Frequently Asked Questions ==

= O plugin esconde também os avisos do WordPress? =

Sim, por padrão. Atualização de segurança, erro de PHP e falha de conexão também são avisos e também são bloqueados. Eles continuam registrados na página de configurações, mas ninguém é alertado no momento. Marque a origem `core` na lista de origens aceitas para voltar a recebê-los.

= Um plugin continua mostrando um banner mesmo bloqueado. Por quê? =

Alguns plugins desenham banners fora dos hooks de aviso, direto no HTML da página. Inspecione o elemento, copie o seletor CSS e cole no campo "Seletores CSS extras".

= Os avisos bloqueados são apagados? =

Não. Cada aviso bloqueado fica no registro da página de configurações, com origem, trecho do conteúdo e quantas vezes foi bloqueado.

= Funciona em multisite? =

Sim. O hook `network_admin_notices` é interceptado, e as configurações são por site.

== Changelog ==

= 2.0.7 =
* A verificação de atualização passou a consultar o servidor toda vez que o WordPress pede. O cache de 6 horas ficava empilhado sobre o controle de frequência do próprio WordPress e só atrasava a descoberta de uma versão nova.
* O cache do manifesto caiu para 15 minutos e agora serve só a janela "Ver detalhes".
* Uma falha recente do servidor continua em cache por 1 hora, para não deixar o painel lento quando ele está fora do ar.


= 2.0.6 =
* Coluna lateral na página de configurações, aproveitando o espaço que estava vazio.
* Caixa do Post Ping, com cupom RAN30, e um botão de dispensar que é definitivo: quem dispensa nunca mais vê.
* A caixa vive só na página de configurações. Não é um aviso do painel e não aparece em nenhuma outra tela.
* Travessões removidos de todos os textos do plugin.


= 2.0.5 =
* A página de configuração passa a bloquear avisos como qualquer outra tela. Antes ela era isenta, e era justamente onde se avaliava se o plugin funcionava, dava a impressão de estar quebrado. A confirmação de "Configurações salvas" continua aparecendo, porque não depende dos hooks de aviso.

= 2.0.4 =
* CORREÇÃO CRÍTICA: da 2.0.0 à 2.0.3 o plugin não fazia absolutamente nada. Uma guarda contra dupla declaração de classe, combinada com o early binding do PHP, fazia o arquivo desistir antes de registrar qualquer hook, sem menu, sem bloqueio de avisos e sem atualizações, e sem nenhum erro visível. Atualize.

= 2.0.3 =
* Descrição do plugin alinhada ao posicionamento da página: o alvo é o anúncio intrusivo, não a publicidade.

= 2.0.2 =
* "Verificar novamente", em Painel → Atualizações, passa a consultar o servidor direto, ignorando o cache de 6 horas do manifesto.

= 2.0.1 =
* O link "Visitar o site do plugin" passa a levar para a página do plugin, e não para o repositório.

= 2.0.0 =
* Lógica invertida: em vez de escolher o que ocultar, tudo é bloqueado por padrão e você libera o que aceita.
* Lista de permissão por origem (plugin, tema, must-use, núcleo do WordPress).
* Lista de permissão por aviso individual, com impressão digital estável a números, "3 atualizações" e "5 atualizações" continuam sendo o mesmo aviso liberado.
* Migração automática das configurações da 1.0, preservando o comportamento anterior.
* A própria página de configuração nunca é filtrada, para não engolir a confirmação de "Configurações salvas".
* Interruptor para pausar a filtragem e ação de voltar ao padrão.
* Atualizações auto-hospedadas via cabeçalho Update URI.
* Limpeza completa das opções na desinstalação.

= 1.0.0 =
* Versão inicial: lista de bloqueio por origem, registro do que foi ocultado e seletores CSS extras.

== Upgrade Notice ==

= 2.0.0 =
O padrão passou a ser bloquear tudo. Configurações da 1.0 são migradas automaticamente e o comportamento anterior é preservado.
