SlideMe Out of Spam – Privacy-Friendly CAPTCHA for WordPress

Notas de lançamento

Todas as versões do SOS Captcha, da mais recente à mais antiga. As novas versões estão disponíveis na tela “Plugins” do painel de administração do WordPress.

1.0.85 — 2026-10-12

  • Correção (Premium): a página de Estatísticas agora registra efetivamente as validações. Sua tabela no banco de dados nunca havia sido criada e os contadores eram carregados apenas no painel de administração, de modo que a página permanecia com a mensagem “Ainda sem dados”.
  • Novo (Premium): dados do controle deslizante nas Estatísticas — número médio de pontos de verificação e tempo de resolução por formulário, além de um detalhamento das tentativas bloqueadas por motivo, mostrando até onde o controle deslizante chegou (um bot que nunca o toca não acumula nenhum ponto de verificação). As estatísticas são mantidas por um ano e continuam sem conter dados pessoais.
  • Novo: as ações soscaptcha_validation_success e soscaptcha_validation_failed recebem os dados do controle deslizante (pontos de verificação, dados coletados, tempo de resolução) como um argumento adicional.

1.0.84 — 2026-10-12

  • Segurança (formulários de login, versão Premium): a verificação por controle deslizante na página de login do WordPress e no login da seção “Minha conta” do WooCommerce foi reforçada. Agora, ela é executada antes da verificação do nome de usuário e da senha, e toda tentativa de login que não for aprovada pelo controle deslizante recebe a mesma resposta. O login com o controle deslizante resolvido funciona como antes.

1.0.83 — 2026-10-12

  • Correção (Contact Form 7): uma mensagem rejeitada pelo controle deslizante agora é bloqueada na própria etapa antispam do Contact Form 7, antes que outros complementos processem o envio. Até agora, a rejeição apenas cancelava o e-mail, de modo que complementos que salvam envios no banco de dados (como o Contact Form CFDB7) ainda podiam manter as mensagens rejeitadas. Os visitantes veem a mesma mensagem de erro de antes.
  • Novo (Contact Form 7): ação soscaptcha_cf7_result e SOSCAPTCHA_CF7::get_instance()->get_last_result(), para registrar ou armazenar como cada envio foi verificado (status, pontos de verificação, erro).

1.0.82 — 2026-10-06

  • Correção: após uma atualização automática bem-sucedida, o WordPress poderia tentar atualizar para a mesma versão um pouco mais tarde e exibir a mensagem “não foi possível atualizar (de X para X), versão anterior restaurada”. O atualizador comparava a versão do servidor com a que ainda estava carregada na memória, em vez da que estava no disco, deixando para trás uma entrada desatualizada de “atualização disponível”. Agora, ele compara com a versão que o WordPress lê do arquivo do plugin. Os links de download emitidos pelo sos-captcha.com também são válidos por 3 dias, em vez de 1 hora, de modo que uma atualização agendada não pode mais acessar um link expirado.

1.0.81 — 2026-10-06

  • Correção (Premium, Ninja Forms): a verificação do lado do servidor do controle deslizante nos envios do Ninja Forms foi reformulada e agora é aplicada de forma confiável. Os valores do controle deslizante são transmitidos na própria carga de envio do Ninja Forms, e um envio que falhar na verificação é rejeitado com um erro exibido acima do formulário: nada é salvo ou enviado.
  • Melhoria: agora, um desafio fica vinculado ao formulário para o qual foi emitido, e o tipo de formulário é verificado sempre que o desafio é consultado.
  • Desenvolvimento: o conjunto de testes foi reconstruído — o conjunto do lado do servidor foi reparado (estava com falhas desde a renomeação da versão 1.0.54), foram adicionadas asserções negativas estritas, um teste de envio do lado do servidor por integração com captura de e-mail e um script bin/test-all.sh não interativo. Consulte CLAUDE.md “Regras de teste”.

1.0.80 — 2026-10-06

  • Correção (Premium, WPForms): a verificação do controle deslizante no lado do servidor para envios do WPForms foi reformulada e agora é aplicada de forma confiável. Um envio que não passar na verificação é rejeitado com uma mensagem explícita: “Falha na verificação antispam”.
  • Novo (Premium, WPForms): tags inteligentes {soscaptcha_status} e {soscaptcha_checkpoints} para e-mails de notificação, a contraparte do WPForms das tags do Contact Form 7 adicionadas na versão 1.0.78. Adicione-as no construtor de formulários em Configurações → Notificações → Mensagem de e-mail, após {all_fields} (que, por si só, nunca as inclui). Calculadas no lado do servidor; um visitante não pode alterá-las.

1.0.79 — 2026-10-06

  • Correção: em algumas situações, a opção “Ignorar após o primeiro acerto” podia aceitar um envio que não deveria. O processo de verificação foi reforçado: o status “já verificado” agora é verificado de forma mais rigorosa no servidor e expira após um período configurável. Os status registrados pelas versões anteriores são reiniciados, de modo que os visitantes que retornam precisam resolver o desafio do controle deslizante mais uma vez.
  • Novo: configuração “Duração da exceção” (Configurações → Redução do desafio) — por quanto tempo um desafio resolvido permanece válido antes que o controle deslizante seja exibido novamente, de 1 minuto a 24 horas (padrão: 60 minutos). Anteriormente, ele durava toda a sessão do navegador.
  • Desenvolvimento: novos filtros soscaptcha_solved_cookie_ttl e soscaptcha_solved_cookie_context (o último permite vincular o estado de verificação ao IP do visitante, por exemplo).

1.0.78 — 2026-10-06

  • Novidade: duas tags especiais de e-mail para e-mails de notificação do Contact Form 7, [_soscaptcha_status] e [_soscaptcha_checkpoints]. Elas informam, para cada mensagem recebida, se o controle deslizante foi realmente verificado (e com quantos pontos de verificação), se foi ignorado para um usuário conectado ou em uma sessão já verificada, ou se não foi executado de forma alguma. Calculadas no servidor, de modo que um visitante não pode falsificá-las. Adicione-as ao corpo do e-mail em Contact Form 7 → seu formulário → E-mail.

1.0.77 — 2026-10-05

  • Correção: em sites multilíngues, os textos do controle deslizante ficavam fixos no idioma do administrador para todos os visitantes. Agora, os textos padrão seguem o idioma de cada visitante; os textos personalizados são mantidos e passam a ser traduzíveis com o WPML ou o Polylang.
  • Novo: quando o desafio já tiver sido resolvido na sessão atual do navegador, os formulários protegidos exibem “✓ Já verificado nesta sessão” em vez de não exibir nenhum controle deslizante.
  • Correção: o texto de confirmação do controle deslizante estava sempre em francês; agora ele está traduzido.
  • Correção: corrigimos a tradução de “Slide” (traduzido erroneamente como “slide de apresentação”) na maioria dos idiomas, e de “Slide to check” em alemão, árabe, italiano e chinês.

1.0.76 — 2026-10-02

  • Correção: novas strings permaneciam em inglês em sites traduzidos. Agora, o plugin sempre carrega suas traduções integradas (sempre o catálogo mais recente), em vez de um pacote de idiomas desatualizado do WordPress.org ou do catálogo premium antigo.
  • Correção: caminho incorreto para as traduções do JavaScript do controle deslizante.

1.0.75 — 2026-10-02

  • Novo: aba de configurações “Atualizações” com um botão para ativar ou desativar as atualizações automáticas (a mesma configuração do link “Ativar atualizações automáticas” na tela Plugins).
  • Novo: quando as atualizações automáticas estão desativadas, um aviso ao administrador anuncia cada nova versão com as opções “Atualizar agora”, “Ativar atualizações automáticas” e “Ignorar esta versão”.
  • Correção: o selo “Protegido pelo SOS Captcha” agora é exibido abaixo do controle deslizante em todos os formulários protegidos (Contact Form 7, WPForms, login…), e não apenas nos formulários de comentários.
  • Correção: o preenchimento colorido do controle deslizante agora acompanha a alça instantaneamente, em vez de ficar atrasado em relação a ela.

1.0.74 — 2026-06-19

  • Novidade: atualizações automáticas integradas. O plugin agora verifica e instala suas próprias atualizações diretamente do site sos-captcha.com, para que você permaneça atualizado sem precisar recorrer ao diretório do WordPress.org.
  • Interno: consolidamos o plugin em uma única base de código (os recursos premium são carregados a partir de um módulo interno restrito por licença, em vez de um complemento separado). Nenhuma alteração nos recursos — a versão gratuita permanece inalterada, e as instalações licenciadas recebem a mesma funcionalidade premium.
  • As novas instalações agora usam as configurações padrão otimizadas e mais fáceis de usar logo de cara (4 a 6 pontos de verificação, mínimo de 0,5 s por ponto de verificação, limite de taxa de 30 s, pular para usuários conectados). Os sites existentes mantêm suas configurações salvas.

1.0.73 — 2026-06-15

  • Plugin gratuito totalmente funcional — sem configurações bloqueadas. Todos os controles exibidos no plugin gratuito agora funcionam; não há opções desativadas, limitadas ou restritas à versão premium, nem qualquer tipo de verificação de licença. Os recursos que pertencem ao complemento separado SOS Captcha Pro (integrações extras, detecção avançada de bots, cores personalizadas, estatísticas, remoção de emblemas) aparecem apenas como avisos informativos simples, nunca como controles desativados.
  • O intervalo dos pontos de verificação agora é o mesmo para todos (2–12), sem solicitação de atualização.
  • As cores personalizadas do controle deslizante foram transferidas integralmente para o complemento Pro: o plugin gratuito vem com cores padrão fixas. Os sites gratuitos já existentes não são afetados (a versão gratuita nunca salvava cores personalizadas).

1.0.72 — 2026-05-26

  • Padrões mais amigáveis: o tempo mínimo por ponto de verificação foi reduzido de 1 s para 0,5 s, a janela de limite de taxa de 60 s para 30 s, o número de pontos de verificação agora é aleatório entre 4 e 6 (antes era fixo em 6), a validade padrão do desafio foi ajustada para 10 minutos (era de 1 minuto, enquanto o texto da notificação exibida ao usuário “expirou após 10 minutos” já assumia 10). Sites existentes mantêm seus valores salvos; apenas novas instalações adotam os novos padrões.

1.0.71 — 2026-05-06

  • Novos métodos auxiliares SOSCAPTCHA_Generator::pro_extra_fields() / pro_extra_fields_html() — fonte única de informações para o honeypot Pro + campos ocultos de impressão digital do navegador que as integrações precisam renderizar. Cada um dos 9 adaptadores de integração (CF7, Comentários, WPForms, Gravity Forms, Ninja Forms, avaliações/finalização de compra/cadastro do WooCommerce, login/cadastro/senha perdida do WP) agora exibe esses campos quando suas opções estão ativadas
  • O Slider JS agora calcula uma impressão digital JSON codificada em base64 ({ ua, lang, tz, screen }) na inicialização do controle deslizante e a grava no campo de entrada oculto — em conjunto com o validador reescrito da versão Pro 1.0.10, que verifica se o UA declarado corresponde a $_SERVER['HTTP_USER_AGENT'] para detectar kits de ferramentas de automação

1.0.70 — 2026-05-06

  • **Crítico: falha na validação do controle deslizante no último ponto de verificação.** O código “destaque do próximo ponto de verificação” em assets/challenge-slider.js executou checkpointDots[lastCheckpoint + 1].style.borderColor = … depois que o bloco AJAX já havia avançado lastCheckpoint para o índice final — portanto, ele referenciou um valor indefinido assim que o último ponto foi alcançado. O TypeError interrompeu o restante do `updatePosition`, incluindo o `setTimeout` que grava os tokens coletados no campo oculto `soscaptcha_tokens ` do formulário. Resultado final: formulário enviado com tokens vazios → rejeitado pelo servidor com “invalid_tokens”. Adicionamos uma proteção para que o destaque só seja executado quando houver realmente um próximo ponto de verificação.

1.0.69 — 2026-05-06

  • **Correção crítica: o desafio do controle deslizante não carregava** (erro admin-ajax 400 com ação: soscaptcha_get_challenge_config). Os três endpoints AJAX do front-end (get_challenge_config, collect_token, refresh_challenge) estavam registrados no lado PHP sob o prefixo legado wp_ajax_sos_*, mas o JS do controle deslizante envia action=soscaptcha_* (em conformidade com a regra de prefixo de 4 ou mais caracteres do WP.org aplicada na versão 1.0.54). A incompatibilidade fazia com que **todas** as chamadas de desafio retornassem 400 — o slider não conseguia ser renderizado e os envios de formulários em páginas protegidas não podiam ser validados. O lado PHP agora usa wp_ajax_soscaptcha_* para corresponder. – Páginas afetadas: todos os formulários protegidos pelo plugin (login, comentários, CF7, página de demonstração etc.) – Mesma família de causas que o erro 400 na ativação da licença (1.0.2) e o erro 400 no salvamento automático das configurações (1.0.65) — finalmente localizamos a terceira instância.

1.0.68 — 2026-05-06

  • Correções do Plugin Check (regressões detectadas após a publicação da versão 1.0.67): escapamento adequado no atributo disabled-input (agora usa o helper disabled() do WordPress em vez de ecoar uma string bruta), /* tradutores: */ comentário movido para ao lado de sua chamada __(), e load_plugin_textdomain() removido (o WP carrega automaticamente as traduções para plugins hospedados no WP.org desde a versão 4.6 — a chamada é sinalizada como desaconselhada)

1.0.67 — 2026-05-06

  • **Correção: falha silenciosa nos botões de ativação/desativação da integração Pro** — a lista de permissões do manipulador de integrações era preenchida inicialmente apenas com as duas integrações gratuitas (comentários, cf7). O filtro da versão Pro (desde a versão 1.0.64) apenas altera os sinalizadores de bloqueio no registro canônico, em vez de adicionar entradas; portanto, qualquer opção da versão Pro (wpforms, gravityforms etc.) era removida silenciosamente durante o salvamento. O manipulador agora obtém os dados de SOSCAPTCHA_Integrations::filtered(), de modo que todas as 9 chaves sejam aceitas, com uma proteção do lado do servidor que ainda bloqueia os botões de ativação da versão Pro quando a licença não estiver ativa

1.0.66 — 2026-05-06

  • Traduções atualizadas para todas as 9 configurações regionais que não são em inglês (sem alterações nas strings de origem; compatível com a versão Pro 1.0.8, que inclui o arquivo .mo correspondente)

1.0.65 — 2026-05-06

  • **Correção: as configurações de administração/integrações não estavam sendo salvas** — Os nomes das ações AJAX estavam registrados como wp_ajax_sos_save_*, mas o JS salvava automaticamente com a ação POST=soscaptcha_save_*. Essa incompatibilidade fazia com que todas as alterações falhassem sem aviso. Agora, ambos os lados usam soscaptcha_save_*
  • **Correção de erro crítico na página “Get Pro”** — O DeepL remove os placeholders %s ao traduzir strings de formato curto, de modo que printf( 'ou %s/ano (economize 20%%)', $price ) gerava erro no PHP 8+ com ArgumentCountError. Reestruturado para duas strings traduzíveis mais simples + uma proteção em tempo de execução que recorre ao inglês caso a tradução não contenha o placeholder
  • Traduções regeneradas; a linha de “economia anual”, que antes estava com erro, agora é exibida corretamente em todas as 9 configurações regionais que não são em inglês

1.0.64 — 2026-05-06

  • A grade de integrações agora exibe as integrações de formulários da versão Pro (WPForms, Gravity Forms, Ninja Forms, WooCommerce, login/cadastro/senha perdida do WP) como visualizações bloqueadas, mesmo quando o plugin Pro não está instalado — os usuários veem o que está disponível sem precisar instalar a versão Pro primeiro
  • O novo arquivo de dados compartilhados inclui o /data/integrations.php (fonte única de verdade, que reflete o padrão de matriz de camadas), acessado por meio do novo auxiliar SOSCAPTCHA_Integrations
  • As três predefinições de cores com gradiente (Clássico / Roxo / Oceano) foram adicionadas novamente à aba “Aparência”; ficam bloqueadas quando não há nenhuma licença Pro ativa
  • Traduções: atualizadas para as novas strings de visualização bloqueada, predefinições e estatísticas

1.0.63 — 2026-05-05

  • A página de configurações foi reformulada para exibir os recursos da versão Pro como visualizações bloqueadas — visitantes e administradores podem ver o que cada nível desbloqueia sem precisar instalar a versão Pro primeiro – Guia “Validação”: nova seção “Detecção avançada de bots” (análise de comportamento, honeypot, impressão digital do navegador) exibida como desativada com um selo “Pro” até que a licença seja ativada – Guia “Redução de desafios”: novo botão de alternância “Recarregar automaticamente ao expirar o tempo”, bloqueado até que a licença seja ativada – Nova guia “Aparência” com seletores de cores em gradiente e um botão de alternância “Mostrar/ocultar emblema”, ambos bloqueados até que a licença seja ativada
  • Nova entrada no submenu “Estatísticas” na barra lateral de administração (com um ícone de cadeado) quando a versão Pro não estiver ativa — clique nela para ver a página de venda adicional da versão Pro
  • Novo helper SOSCAPTCHA_Tiers::is_pro_active(), apoiado pelo filtro soscaptcha_pro_active; a versão Pro o ativa quando sua licença está válida

1.0.61 — 2026-05-05

  • Novo: fonte única de informações para níveis de planos e matriz de recursos em includes/data/tier-matrix.php (acessível por meio da classe auxiliar SOSCAPTCHA_Tiers ). Tanto a página gratuita “Get Pro” quanto a página “Licença” do plugin Pro são geradas a partir dela, mantidas em sincronia com os preços do site sos-captcha.com
  • Página “Get Pro” reformulada: comparação em quatro níveis (Grátis / Starter / Pro / Agência) com preços mensais e anuais, selo “MAIS POPULAR” na versão Pro e CTAs específicas para cada nível direcionando para sos-captcha.com
  • Traduções: todos os arquivos .pot/.po/.mo foram regenerados com as strings de código-fonte mais recentes (os arquivos .mo anteriores datavam da versão 1.0.50 e não incluíam dezenas de strings adicionadas pelas renomeações de prefixos)

1.0.60 — 2026-05-05

  • Traduções: chame explicitamente a função ` load_plugin_textdomain()` para que as strings de administração sejam traduzidas em instalações feitas manualmente (não apenas nas distribuídas pelo WordPress.org)
  • Tabela de integrações: exibe as integrações da versão Pro com um selo de cadeado “Pro” + botão de chamada à ação (CTA) para atualização quando nenhuma licença Pro estiver ativa (depende do novo sinalizador premium_locked exposto pelo filtro soscaptcha_integrations do plugin Pro)
  • Adicionado o filtro soscaptcha_show_get_pro_menu; o plugin Pro (1.0.2+) o utiliza para ocultar o submenu de upsell “Get Pro” assim que uma licença estiver ativa

1.0.59 — 2026-05-05

  • Correção do erro 404 no JS de administração: renomeie admin/js/sos-admin.{js,min.js} para admin/js/soscaptcha-admin.{js,min.js}, para que o arquivo corresponda ao caminho de enfileiramento com prefixo introduzido na versão 1.0.54

1.0.57 — 2026-05-05

  • Correção de erro fatal na ativação: renomeie os arquivos de classe de class-sos-*.php para class-soscaptcha-*.php para que correspondam aos caminhos do `require_once` introduzidos na versão 1.0.54 (a renomeação afetou os caminhos do `require`, mas não os arquivos no disco)
  • Verificação de plugins do WordPress.org: prefixe as variáveis de escopo de visualização em admin/views/{settings,integrations,get-pro}.php com soscaptcha_ para eliminar os avisos de WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound

1.0.56 — 2026-05-05

  • Adicione um prefixo aos três nomes de campos de entrada que transitam pelos formulários (challenge_session, challenge_nonce, collected_tokens → soscaptcha_session, soscaptcha_nonce, soscaptcha_tokens) para evitar conflitos com outros plugins nos formulários do host
  • Atualizamos todas as integrações (Contact Form 7, Comentários + adaptadores premium) e os seletores JS do controle deslizante de acordo com as alterações

1.0.55 — 2026-05-04

  • Estenda o prefixo “soscaptcha-” para classes CSS e identificadores de scripts (prefixo de 4 ou mais caracteres em todos os lugares) para conformidade com o WordPress.org

1.0.54 — 2026-05-04

  • Renomear o prefixo da classe PHP de SOS_ para SOSCAPTCHA_ e o prefixo da função de sos_ para soscaptcha_ (prefixo de 4 ou mais caracteres, conforme as diretrizes do WordPress.org)

1.0.53 — 2026-05-03

  • Arquitetura: o plugin foi dividido em uma versão gratuita (este plugin) e um plugin complementar opcional, o sos-captcha-pro, carregado por meio de filtros/ações do WordPress
  • O plugin gratuito não contém mais nenhum código premium — resolve a preocupação do WordPress.org em relação a softwares em versão de teste
  • O plugin complementar declara “Plugins necessários”: sos-captcha (WP 6.5+)

1.0.52 — 2026-05-03

  • Os arquivos-fonte incluídos no ZIP agora estão sem os comentários de desenvolvimento (CSS e JS), mantendo o código legível para revisores sem vazar notas internas
  • Carregadores de plug-ins inalterados: os arquivos .min.js e .min.css são carregados na produção, enquanto os arquivos-fonte são carregados com SCRIPT_DEBUG=true
  • Removido o link do repositório do GitHub do arquivo README (o código-fonte vem incluído no próprio plugin)

1.0.51 — 2026-05-03

  • Conformidade com o WordPress.org – 2ª rodada (resposta aos comentários dos revisores)
  • Versão de avaliação: um pós-processador de compilação remove todas as condições $is_licensed do ZIP gratuito (novo arquivo bin/strip-license-checks.php)
  • Visibilidade do código-fonte: forneça arquivos .js e .css não minificados junto com suas versões .min; documente o repositório do GitHub no arquivo readme
  • Segurança: os endpoints AJAX agora exigem um nonce HMAC vinculado à sessão (compatível com cache). Os envios de formulários verificam o nonce no validador. Todas as 8 integrações exibem o campo do nonce.

1.0.50 — 2026-04-29

  • Reestruturação da marca: o plugin foi renomeado de “SOS Anti-Spam” para “SOS Captcha” — o slug, o domínio de texto e os arquivos de idioma foram atualizados para “sos-captcha”
  • Arquivo principal renomeado: slide-out-spam.php → sos-captcha.php
  • Nenhuma alteração funcional para instalações existentes; identidade visual mais clean, alinhada com o site sos-captcha.com

1.0.49 — 2026-04-27

  • Aprovado em conformidade com o WordPress.org
  • Prefixe todas as ações AJAX com “sos_” para evitar colisões
  • Remova o `load_plugin_textdomain` (desnecessário para plugins hospedados no WordPress.org)
  • Substitua a página de Licença na versão gratuita por uma página de Comparação de planos (sem inserção de licença, sem chamada de API externa)
  • A atualização para a versão Premium agora deve ser baixada manualmente em sos-captcha.com (Plugins → Adicionar novo → Enviar)
  • Lançamento público inicial
  • Proteção do Contact Form 7 e dos comentários do WordPress
  • Proteção para login, cadastro e recuperação de senha no WordPress (Premium)
  • Até 8 pontos de verificação (Versão Gratuita) / 15 (Versão Premium)
  • Suporte a 10 idiomas