Documentação do MevvCode

Rode código pequeno com uma fronteira de segurança de verdade.

O MevvCode gerencia snippets de PHP, JavaScript, CSS, HTML e texto sem consultar um registro editável do banco de dados a cada requisição. Este guia cobre a instalação, o modelo de runtime, a migração do Code Snippets, o modo seguro, a portabilidade e a fronteira exata entre Free e Pro.

Para que serve o MevvCode

O MevvCode é uma casa para pequenos pedaços de comportamento específico do site: uma regra de frete do WooCommerce, um campo do checkout, uma tag de verificação, uma pequena ferramenta administrativa, um ajuste visual em CSS ou HTML/texto reutilizável. Ele dá ao código um dono, um local, condições, histórico e um caminho protegido até a produção.

Use quando
A mudança é menor que um plugin completo, mas importante o suficiente para não desaparecer dentro de um arquivo do tema.
Não use quando
O requisito é um produto de domínio completo, com seu próprio modelo de dados, telas e ciclo de vida de releases; nesse caso, construa um plugin convencional.
Propriedade do código
Escreva o código você mesmo ou traga código revisado de um desenvolvedor ou fonte em que confie. O MevvCode gerencia e protege código; ele não torna confiável um snippet desconhecido.

Comece todo snippet emprestado como inativo. Leia-o, remova segredos e identificadores específicos do site e valide-o antes de ativar.

Instalação

Instale e ative primeiro o plugin gratuito MevvCode. Ele exige WordPress 6.6 ou superior e PHP 8.1 ou superior. O Pro é um plugin complementar separado e nunca substitui o runtime gratuito.

  1. Envie mevvcode-1.1.0.zip e ative-o.
  2. Abra MevvCode → Trechos de código. O diretório de armazenamento e seus arquivos de proteção do servidor web são criados automaticamente.
  3. Crie um snippet inativo, escolha o tipo e o local, e salve.
  4. Use a prévia e o resultado de sintaxe antes de ativá-lo.
  5. Instale mevvcode-pro-1.1.0.zip apenas se precisar das telas do Pro e ative depois a sua licença MEVD em MevvCode → Licença.

Mantenha o plugin gratuito ativo quando o Pro estiver instalado. O runtime executável pertence ao Free, de modo que uma licença vencida nunca faz desaparecer um comportamento já publicado.

Seu primeiro snippet

Crie o primeiro registro inativo. Dê a ele um nome que descreva o propósito, selecione PHP e o local global apenas se o próprio código se conectar a um hook específico do WordPress ou do WooCommerce, e salve.

add_filter( 'woocommerce_package_rates', function ( $rates ) {
    if ( ! WC()->cart || WC()->cart->get_subtotal() < 1000 ) {
        return $rates;
    }
    return array_filter( $rates, function ( $rate ) {
        return 'free_shipping' === $rate->method_id;
    } );
} );
  1. Leia o resultado da validação; um erro de análise deve deixar o registro inativo.
  2. Confirme que a sua loja já tem um método de frete grátis configurado.
  3. Ative o snippet no ambiente de homologação e teste carrinhos abaixo e acima do limite.
  4. Exporte uma cópia em JSON antes de levar o registro para produção.
  5. Publique e depois verifique o carrinho público e o endpoint de saúde do MevvCode.

O exemplo demonstra o fluxo de trabalho, não uma política de frete universal. Impostos, cupons, moedas e zonas de entrega podem mudar qual subtotal a sua regra de negócio deve usar.

Painel em turco e linha do plugin

Free e Pro 1.1.0 trazem catálogos PO editáveis, MO compilados e POT. Quando o idioma do site WordPress é Türkçe (tr_TR), o painel, os estados da migração, os erros de validação e a tela de licença carregam em turco automaticamente.

  • A tela de Plugins mostra a descrição traduzida.
  • Configurações abre diretamente a aba de configurações do MevvCode.
  • Documentação abre esta página e Suporte abre a página de contato.
  • O tratamento de dependências do WordPress impede que o Free seja removido enquanto o MevvCode Pro precisar dele.

Se o painel em turco não carregar, verifique Configurações → Geral → Idioma do site e depois atualize Free e Pro para a mesma versão. Não renomeie arquivos dentro do diretório de idiomas.

O modelo de runtime

Os registros editáveis ficam em wp-content/mevvcode-snippets/records. Salvar uma alteração ativa constrói uma nova geração em um diretório temporário, valida cada arquivo PHP, escreve um manifesto e só então troca o ponteiro atual.

Registros
A origem editável, os metadados, as condições e o histórico.
Geração
Arquivos compilados imutáveis para um estado comprovadamente bom.
Manifesto
O pequeno mapa que o caminho da requisição lê para encontrar a geração atual.

Uma falha de compilação não atualiza o site pela metade. O manifesto antigo continua sendo o atual, a origem que falhou permanece editável e o painel mostra o erro. Não há consulta por requisição para o código dos snippets.

Não edite à mão os arquivos gerados. Eles são saída de build descartável e serão substituídos pela próxima compilação bem-sucedida.

Tipos, locais e condições

O PHP roda através dos hooks do WordPress. JavaScript, CSS, HTML e texto são impressos apenas no local explícito que você selecionar: head, abertura do body, rodapé, antes ou depois do conteúdo, shortcode, manual ou uma única vez.

  • Dentro de um grupo de condições aplica-se E; os grupos são unidos com OU.
  • É possível combinar contexto de administração, front-end, URL, usuário, função e requisição.
  • Tags e grupos organizam os registros; um bloqueio evita edições acidentais e ações em massa.
  • Um snippet manual nunca entra em um hook de requisição até que o seu próprio código o chame.

Use o local e a condição mais restritos que descrevam o requisito. Um hook PHP global deve ser uma escolha deliberada, não o lar padrão de código copiado de um chamado de suporte.

A biblioteca e os packs

O separador Biblioteca tem sessenta snippets revistos para as tarefas comuns que as pessoas de outro modo colam de uma publicação num fórum: desativar o XML-RPC, retirar os recursos de emoji, adicionar um link de salto, marcar links externos como noopener, ajustes ao WooCommerce. Adicionar um copia-o para o seu espaço de trabalho como registo inativo — lê-o e só depois o ativa. Nada se instala já a correr.

Seis packs agrupam-nos por tarefa em vez de por categoria: lançamento da loja, limpeza do checkout, afinação do catálogo, desempenho da loja, reforço básico e arrumação da administração. Um pack é tudo ou nada — se um dos seus snippets não puder ser escrito, os já escritos são revertidos, pelo que nunca fica com meio pack e sem forma de saber qual metade.

Os registos da biblioteca são cópias. Editar um no seu espaço de trabalho nunca altera a biblioteca, e uma atualização posterior do plugin nunca edita o que já personalizou.

Migrando do Code Snippets

Abra MevvCode → Migração. O importador lê a tabela de snippets com o prefixo do site, preserva cada id de origem e os bytes exatos do código, e cria registros do MevvCode preparados sem mudar qual plugin está ativo.

  1. Execute a detecção e verifique a contagem de registros.
  2. Importe para o conjunto preparado e inativo.
  3. Analise cada snippet que esteja ativo no Code Snippets.
  4. Crie um instantâneo de reversão da lista de plugins ativos e do manifesto atual do MevvCode.
  5. Compile uma geração completa.
  6. Inicie a transição. O Code Snippets só é desligado depois que o manifesto existe.
  7. Uma requisição de loopback assinada verifica o site público. Sucesso confirma; falha restaura a lista de plugins e o manifesto automaticamente.

As tabelas de origem não são apagadas. A reversão manual continua disponível depois de uma transição bem-sucedida e reativa exatamente a lista anterior de plugins ativos. No mevvshop.com, em 1 de setembro de 2026, a transição medida em produção preservou 9 registros e 6 estados ativos e produziu 0 divergências em nome, bytes exatos do código, prioridade e status. Isso é evidência para aquela loja, não um parâmetro universal.

Se um snippet importado falhar na análise, corrija a cópia preparada no MevvCode ou deixe-a inativa. Não desative o Code Snippets à mão antes de a transição relatar uma geração saudável.

Modo seguro e recuperação

É possível entrar no modo seguro com a constante documentada ou com uma URL assinada de curta duração gerada para um administrador. No modo seguro, a execução de snippets para enquanto o painel continua disponível para reparo.

  • Um erro de análise de PHP nunca se torna a geração atual.
  • Uma exceção em runtime desativa o registro responsável e deixa os demais snippets disponíveis.
  • A proteção contra erros fatais registra apenas a identidade e o estado do registro necessários para a recuperação — nunca o código-fonte nem os segredos da requisição.
  • A geração anterior comprovadamente boa é mantida até que a substituta passe em todas as verificações.
define( 'MEVVCODE_SAFE_MODE', true );

Remova a constante depois que o registro quebrado for corrigido ou desativado. Deixá-la no lugar mantém, de propósito, todos os snippets desligados.

Portabilidade e backups

Exporte os registros selecionados como MevvCode JSON v1 para uma ida e volta sem perdas, ou como PHP legível quando o destino não deva depender do MevvCode. As importações do Code Snippets e do WPCode são adaptadores para esse mesmo formato canônico de registro.

  • Uma exportação em JSON inclui metadados, condições e status.
  • Uma exportação em PHP é feita para revisão e propriedade manual, não para reimportar metadados ocultos.
  • O carregador must-use pode carregar o comportamento compilado quando o plugin normal precisar ser removido.
  • O Pro pode empacotar snippets selecionados como um ZIP de plugin de funcionalidades convencional depois de validar nomes, caminhos e PHP.

Guarde uma cópia das exportações fora do servidor antes de uma importação grande, uma ativação em massa ou uma migração. As revisões são um histórico de edição, não um backup de recuperação de desastres.

Free e Pro

O Free é o gerenciador local seguro de snippets, completo. Ele inclui os cinco tipos, o runtime atômico, os locais e as condições básicas, a proteção contra erros fatais, o modo seguro, a migração do Code Snippets, a importação/exportação, os geradores, as revisões, as capacidades por função, o REST somente leitura e o carregador must-use.

O Pro é a camada de colaboração e entrega. Acrescenta condições reutilizáveis e agendadas; contexto de dispositivo, referenciador, geografia, carrinho e encomenda; histórico de auditoria ilimitado; builds CSS/JS e recursos externos; eventos de píxel de comércio eletrónico com um monitor ao vivo; automação assinada; exportação de plugin; análises agregadas locais; espaços de trabalho na nuvem cifrados; revisão por IA opcional e rascunho por IA com a sua própria chave de fornecedor; e uma API compatível com REST/MCP com ações restringidas.

A nuvem e a IA são ativações separadas. A IA recebe a cópia com dados ocultados e devolve um diff de revisão; ela nunca aplica o diff automaticamente. As gravações na nuvem usam um HMAC assinado com a chave de licença, e as revisões otimistas rejeitam atualizações desatualizadas.

Rascunhar um excerto com IA

O Pro pode rascunhar um excerto a partir de uma descrição do que precisa. É estritamente com a sua própria conta: escolhe o fornecedor — OpenAI ou Anthropic — e cola a sua própria chave de API, e o pedido vai do seu site diretamente para esse fornecedor. A geração não passa de todo pelos nossos servidores. A IA está desligada até que a ligue.

  • O que volta é sempre guardado como rascunho inativo. O código gerado nunca é aplicado, ativado nem executado por si só.
  • Uma proposta que não passa a mesma barreira de sintaxe PHP que o compilador gratuito aplica antes da ativação não é sequer guardada, pelo que um excerto que deitaria o site abaixo nunca chega à sua lista.
  • Podem rascunhar-se os cinco tipos de excerto: PHP, JavaScript, CSS, HTML e texto.

A revisão por IA e o rascunho por IA são funcionalidades diferentes e seguem caminhos diferentes. A revisão envia uma cópia expurgada do código que já tem para o nosso próprio ponto de acesso com a sua chave de licença e devolve um diff; o rascunho fala apenas com o fornecedor que escolheu, com a sua própria chave. Ambas se ativam em separado e nenhuma aplica seja o que for por si só.

Condição de país e SCSS (Pro)

Correr um snippet apenas em alguns países

A Pro adiciona uma condição de país ao mesmo editor de regras que a edição gratuita usa. O país é resolvido a partir da própria morada de faturação ou envio do cliente WooCommerce, e na falta dessa, a partir de uma base de dados de geolocalização instalada no seu servidor. Nunca é perguntado a um serviço de consulta de terceiros, e nenhuma morada de visitante é armazenada — a pergunta é respondida localmente ou não é respondida de todo.

Escrever SCSS

O ecrã Estilos compila SCSS ou LESS e regista o resultado como um novo snippet CSS, inativo, para você ler antes de o ativar. É um desvio deliberado, e não um atalho no editor de CSS: o que corre no seu site continua a ser CSS simples que pode abrir.

O compilador é escrito para esta única tarefa — variáveis, aninhamento, o e comercial, e regras de media, supports, layer e container extraídas para fora. O que não implementa, recusa com um erro: mixins, extends, imports, diretivas de controlo e interpolação. Recusar é o objetivo. Um compilador que suporta parcialmente uma diretiva produz CSS que é subtilmente diferente do que escreveu, e descobre-o no front-end.

Eventos de píxel ao vivo

O Pro normaliza os eventos de comércio eletrónico para Meta, Google e TikTok — ver artigo, adicionar ao carrinho, iniciar finalização e compra — e pode mostrá-los a chegar enquanto trabalha, para que veja que um evento dispara mesmo e leva os valores que espera. A captura está desligada por omissão e tem de ser ligada deliberadamente.

  • Os eventos ficam no seu próprio site. Não há nenhum recolector de terceiros em nenhum ponto desse caminho.
  • Apenas os últimos duzentos eventos são guardados, num buffer rotativo. Nada mais antigo sobrevive e não há tabela nenhuma a crescer.
  • Não é guardado qualquer endereço IP, cookie, identificador ou cadeia de consulta. Quando um endereço de e-mail ou um número de telefone pertence ao evento, é primeiro submetido a hash SHA-256.

Isto é um monitor para verificar os seus eventos, não uma ferramenta de análise. Não guarda histórico a partir do qual pudesse construir um relatório, nem é essa a intenção.

Encontrar e ativar uma licença Pro

Uma licença adquirida fica associada ao e-mail do checkout e aparece em mevvsoft.com/account. A chave começa com MEVD; nunca a cole em um chamado de suporte, URL ou log público.

  1. Instale e ative o pacote gratuito do MevvCode.
  2. Instale e ative o pacote correspondente do MevvCode Pro.
  3. Entre na conta criada para o e-mail do checkout e copie a chave do MevvCode Pro.
  4. Abra MevvCode → Licença, cole a chave MEVD e ative-a.
  5. Confirme que o status está ativo e que o site aparece vinculado à licença na sua conta.

Se a licença não estiver na conta, confirme primeiro que você entrou com o mesmo e-mail usado no checkout. Se ela estiver lá mas a ativação informar um limite de sites, libere um site antigo pela conta ou entre em contato com o suporte sem enviar a chave completa.

Atualizações

As atualizações chegam através do próprio WordPress. O plugin pergunta à nossa loja se existe uma versão mais recente e entrega a resposta ao próprio fluxo de atualização do WordPress, pelo que uma nova versão aparece no ecrã de plugins com um botão Atualizar vulgar, em vez de esperar que alguém descarregue um zip à mão. Na edição gratuita, esse pedido leva apenas o nome do pacote e a versão instalada — sem endereço do site, sem endereço de e-mail, sem chave de licença e sem inventário de plugins. Como nada nele o identifica, a confiança assenta na assinatura: a resposta é assinada com a nossa chave Ed25519, e uma resposta sem assinatura, mal assinada, repetida a partir de um carimbo temporal antigo ou que aponte a transferência para outro anfitrião que não o nosso é descartada sem tocar no site.

Perguntas frequentes e solução de problemas

Um snippet foi salvo mas não rodou
Verifique se ele está ativo, se o local corresponde à requisição, se cada grupo de condições pode ser satisfeito e se o modo seguro está desligado.
O plugin antigo continua ativo depois da migração
A transição não foi confirmada. Leia o resultado da migração; uma verificação de análise, de compilação ou de integridade por loopback falhou, e a reversão protegeu o site.
O site entrou em modo seguro
Abra o painel pela URL de recuperação assinada, inspecione o registro desativado mais recentemente, corrija-o ou deixe-o desativado, compile e depois saia do modo seguro.
A nuvem informa um conflito
Outro cliente alterou o espaço de trabalho depois da revisão que você carregou. Compare o registro remoto com o seu registro local e envie de novo usando a nova revisão base.
A revisão por IA está indisponível
Tanto a licença Pro quanto a ativação explícita da IA precisam estar ativas, e o adaptador do serviço precisa estar configurado. Os snippets locais continuam funcionando.

Ao pedir suporte, envie as versões dos plugins, as versões de WordPress/PHP, o UUID do registro e o texto exato do erro. Remova segredos e dados de clientes. Não envie uma chave de licença de produção nem o código-fonte completo, a menos que seja necessário e você o tenha revisado.