Title: Chat App Brasil
Author: Luiz Mariano
Published: <strong>July 15, 2024</strong>
Last modified: September 10, 2026

---

Search plugins

![](https://ps.w.org/chat-app-brasil/assets/banner-772x250.png?rev=3653475)

![](https://ps.w.org/chat-app-brasil/assets/icon-256x256.png?rev=3653475)

# Chat App Brasil

 By [Luiz Mariano](https://profiles.wordpress.org/lupee87/)

[Download](https://downloads.wordpress.org/plugin/chat-app-brasil.3.5.1.zip)

 * [Details](https://en-ca.wordpress.org/plugins/chat-app-brasil/#description)
 * [Reviews](https://en-ca.wordpress.org/plugins/chat-app-brasil/#reviews)
 * [Development](https://en-ca.wordpress.org/plugins/chat-app-brasil/#developers)

 [Support](https://wordpress.org/support/plugin/chat-app-brasil/)

## Description

Envie mensagens WhatsApp automáticas para clientes WooCommerce. Notificações, carrinho
abandonado, PIX, rastreamento e botão WhatsApp.

### Descrição

**Chat App Brasil** é o plugin WhatsApp para WooCommerce mais completo do Brasil.
Conecte sua loja ao WhatsApp e envie mensagens automáticas para seus clientes em
cada etapa da jornada de compra — do novo pedido até o pós-venda.

Integração oficial com a plataforma **ChatAppBrasil** — sem necessidade de WhatsApp
Business API direta.

#### Por que usar o Chat App Brasil?

 * ✅ **WhatsApp + WooCommerce nativos** — sem configurações complexas
 * ✅ **Botão flutuante WhatsApp** customizável com rastreamento de cliques
 * ✅ **Recuperação de carrinho abandonado** via WhatsApp (CartBounty)
 * ✅ **PIX via WhatsApp** — QR code automático (Mercado Pago e Asaas)
 * ✅ **Rastreamento de pedidos** — Correios e Melhor Envio
 * ✅ **Assinaturas WooCommerce** — notificações de renovação e cancelamento
 * ✅ **Back In Stock** — avisa cliente quando produto volta ao estoque
 * ✅ **HPOS compatível** — WooCommerce 7.1+

#### Funcionalidades Principais

**Notificações Automáticas de Pedido**
 Cada status do WooCommerce dispara mensagem
personalizada ao cliente e opcionalmente ao administrador. Toggle individual por
notificação — a mensagem permanece salva mesmo quando desativada. Status suportados:*
Novo pedido, pendente, em espera, processando, concluído, cancelado, reembolsado,
falhado, nota de pedido, status personalizados

**Aba Pagamentos — Mercado Pago PIX**
 Envio automático do QR code e código copia
e cola. Dois modos: * Imediato: envia em tempo real * Lembrete: envia somente se
não pago após X minutos (cancela se pagar antes) * Notificação de PIX expirado: 
avisa o cliente quando o tempo expira

**Aba Pagamentos — Asaas PIX**
 Integração completa com o gateway Asaas para pagamentos
via PIX. Mesmas opções de imediato/lembrete do Mercado Pago. QR code + código copia
e cola.

**Aba Pagamentos — Asaas Boleto**
 Envio automático do link do boleto quando um 
pedido Asaas Boleto é criado. Use %boleto_url% na mensagem para incluir o link.

**Aba Pagamentos — PIX Expirado**
 Notificação unificada para Mercado Pago e Asaas
quando o PIX expira sem pagamento. Configura quantos minutos após a geração do PIX
disparar o aviso.

**Aba Rastreamento — Correios e Melhor Envio**
 Notificação automática quando o 
pedido é concluído e há código de rastreio. Detecta automaticamente Correios (WooCommerce
Correios) e Melhor Envio. Tags: %tracking_code%, %tracking_url%

**Recuperação de Carrinho Abandonado**
 Até 3 follow-ups via CartBounty Free ou 
Pro, com intervalo configurável. Toggle independente por follow-up.

**Pós-venda (Aftersales)**
 Mensagem X horas após conclusão do pedido.

**Back In Stock**
 Notificação via WhatsApp quando produto volta ao estoque.

**Easy Digital Downloads (EDD)**
 Notificações de novo pedido e pedido completo 
para produtos digitais.

**Contact Form 7 / Caldera Forms**
 Mensagens disparadas via formulários com substituição
de tags e quebras de linha.

**Botão Flutuante WhatsApp**
 SVG configurável: posição, tamanho (40-200px), distância
da borda (0-300px), efeito pulsante, tooltip, mensagem pré-preenchida, ocultar por
dispositivo.

**Rastreamento de Cliques**
 Cada clique no botão é registrado via AJAX (visitantes
e logados).

**Disparo em Massa**
 Posts/produtos para lista de números, mensagens personalizadas,
importação de clientes.

**Logs de Mensagens**
 Estatísticas (enviadas, erros, dedup), linhas expansíveis
com link ao pedido, botão de reenvio, abas por tipo, paginação, link direto ao pedido
WooCommerce.

**Notas Privadas nos Pedidos**
 Nota automática a cada envio WhatsApp com status,
número e link de reenvio.

**Proteção e Segurança**
 Deduplicação configurável, rate limiting, filtro de horário,
monitoramento de erros (pausa automática após 1h de falhas), erros técnicos em linguagem
amigável.

**Compatibilidade HPOS**
 Totalmente compatível com HPOS (WooCommerce 7.1+).

### Instalação

 1. Plugins > Adicionar Novo > Enviar Plugin > selecione o .zip
 2. Ative o plugin
 3. Chat App Brasil > Configuração > insira seu Access Token
 4. Configure mensagens em Notificações, Pagamentos, Rastreamento e demais abas

### Tags Disponíveis

#### Pedido

%id%, %order_key%, %order_date%, %order_time%, %order_link%, %order_status%,
 %product%,%
product_name%, %order_subtotal%, %order_shipping%, %order_total%, %order_discount%,%
currency%, %cust_note%, %shipping_method%, %payment_method_title%, %payment_url%

#### Cliente

%billing_first_name%, %billing_last_name%, %billing_email%, %billing_phone%,
 %billing_city%,%
billing_state%, %billing_address_1%

#### Entrega

%shipping_first_name%, %shipping_address_1%, %shipping_city%, %shipping_state%

#### Rastreamento

%tracking_code% — código de rastreio (Correios ou Melhor Envio)
 %tracking_url% —
link de rastreamento

#### Pagamentos

%pix_code% — código copia e cola PIX (Mercado Pago ou Asaas)
 %boleto_url% — link
do boleto (Asaas) %payment_url% — link de pagamento pendente do WooCommerce

#### Outros

%shop_name%, %note%
 Spintax: {Olá|Oi|Bom dia} — variação aleatória por envio

## FAQ

### Como enviar mensagem WhatsApp automática no WooCommerce?

Configure seu token em Chat App Brasil > Configuração e defina as mensagens em Chat
App Brasil > Notificações. O WhatsApp é enviado automaticamente em cada mudança 
de status do pedido.

### É possível enviar o QR code do PIX pelo WhatsApp?

Sim. O plugin integra com Mercado Pago PIX e Asaas PIX. O QR code é enviado automaticamente
como imagem junto com o código copia e cola quando o pedido é criado.

### Funciona com WhatsApp Business?

Sim. A plataforma ChatAppBrasil usa a API do WhatsApp Business. Você precisa de 
uma conta ativa em chatappbrasil.com.

### Como recuperar carrinho abandonado pelo WhatsApp?

Instale o CartBounty Free ou Pro, configure os follow-ups na aba Carrinho Abandonado
e o plugin envia mensagens automáticas via WhatsApp para clientes que abandonaram
o carrinho.

### Posso enviar código de rastreamento pelo WhatsApp?

Sim. Instale WooCommerce Correios ou Melhor Envio. Quando o pedido for concluído
com código de rastreio, o plugin envia automaticamente na aba Rastreamento.

### O botão não aparece

Preencha o número em Chat App Brasil > Botão.

### Mensagens não enviadas

Confirme o Access Token, verifique os Logs e certifique que a mensagem não está 
vazia.
 Veja se há alerta de “Envios pausados” no painel.

### PIX Asaas não envia

Verifique se o plugin WooCommerce Asaas está ativo e se o método de pagamento
 do
pedido é “asaas-pix”. O meta __ASAAS_ORDER precisa estar salvo.

### Tracking não envia

O código de rastreio precisa estar disponível no momento em que o pedido é
 marcado
como Concluído. Verifique se WooCommerce Correios ou Melhor Envio está ativo e com
código cadastrado no pedido.

### Vi “Envios pausados”

WhatsApp desconectado. Acesse dashboard.chatappbrasil.com, reconecte e clique
 em“
Reativar envios” no alerta do painel.

## Reviews

![](https://secure.gravatar.com/avatar/d4ea90231051d0eae3edafa7e6012827bff889b147db88b91e4e9637c04e5f73?
s=60&d=retro&r=g)

### 󠀁[Ótimo atendeu muito bem!](https://wordpress.org/support/topic/otimo-atendeu-muito-bem/)󠁿

 [medinasupply](https://profiles.wordpress.org/medinasupply/) April 28, 2026

Gostamos bastante atende as expectativas, as mensagens são envidas em real time 
sem duvidas o melhor que testamos nos ultimos dias!

 [ Read all 2 reviews ](https://wordpress.org/support/plugin/chat-app-brasil/reviews/)

## Contributors & Developers

“Chat App Brasil” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Luiz Mariano ](https://profiles.wordpress.org/lupee87/)

[Translate “Chat App Brasil” into your language.](https://translate.wordpress.org/projects/wp-plugins/chat-app-brasil)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/chat-app-brasil/), 
check out the [SVN repository](https://plugins.svn.wordpress.org/chat-app-brasil/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/chat-app-brasil/)
by [RSS](https://plugins.trac.wordpress.org/log/chat-app-brasil/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 3.5.1

 * CORREÇÃO: notificação de rastreio que falhava no envio dava o pedido por avisado
   assim mesmo. O pedido era marcado como “rastreio enviado” sem olhar o resultado,
   e essa marca é justamente o que faz a nova tentativa e o robô do Melhor Envio
   pularem o pedido — um erro da plataforma e o cliente ficava sem o código para
   sempre. Agora só é marcado o que saiu de verdade
 * NOVO: rastreio que não saiu é tentado de novo sozinho — 5 minutos depois, 15,
   1 hora e 12 horas. Esgotadas as tentativas, o plugin desiste (em vez de insistir
   de hora em hora por 30 dias) e escreve uma nota no pedido dizendo o último erro
   e como reenviar
 * CORREÇÃO: quando o envio passava pela fila anti-ban, a falha acontecia depois
   que o plugin já tinha dado o rastreio por enviado, e ninguém mais olhava para
   aquele pedido. A fila agora avisa, a marca é desfeita e o rastreio volta para
   a fila de tentativas
 * CORREÇÃO: salvar no pedido o código de rastreio que já estava gravado não enviava
   nada e não dizia por quê — quem gera a etiqueta no plugin do Melhor Envio abre
   o pedido com o campo já preenchido, clicava em salvar, lia “Código salvo” e o
   cliente não recebia nada. Agora o botão avisa o cliente sempre que o pedido ainda
   não foi avisado, e a tela diz o que aconteceu de verdade: enviado, na fila, já
   avisado antes, ou o erro do envio
 * NOVO: você escolhe em quais status do pedido o rastreio é procurado e enviado(
   aba Rastreamento  “Quando procurar o rastreio”). Antes era “Concluído” e ponto:
   loja que despacha em “Processando” ou num status próprio nunca via o aviso sair
   sozinho. Nada marcado continua valendo como Concluído, e o robô do Melhor Envio
   passa a varrer exatamente os mesmos status
 * CORREÇÃO: erro interno da plataforma de envio (ERR_INTERNAL_ERROR) em mensagem
   com link agora é repetido uma vez sem a prévia do link. A prévia é montada pelo
   servidor de envio, que precisa abrir a URL da mensagem: link que ele não consegue
   abrir derrubava a mensagem inteira. Sem a prévia perde-se o cartãozinho do link,
   não o aviso
 * MELHORIA: ERR_INTERNAL_ERROR aparecia cru no log e na nota do pedido. Agora vira
   texto em português, como os outros erros

#### 3.5.0

 * CORREÇÃO: mensagem recusada com “mensagem idêntica já enviada hoje” sem ter sido
   enviada. A marca de duplicata era gravada ANTES do envio e ficava de pé mesmo
   quando a API recusava — o cliente ficava sem o aviso e toda retentativa levava
   a mesma recusa. Agora a marca só vale para o que saiu de verdade: envio que falha
   apaga a própria marca
 * CORREÇÃO: o botão Reenviar (na nota do pedido, na lista de pedidos e no log) 
   e o Teste de envio eram barrados como duplicata. São ações intencionais — mandar
   de novo o mesmo texto para o mesmo número é exatamente o que se pediu — e agora
   saem sempre
 * CORREÇÃO: pedidos diferentes com o mesmo texto disputavam a mesma marca. A chave
   passou a ser do evento (pedido + número + mensagem), então dois pedidos do mesmo
   cliente, ou dois clientes, nunca se bloqueiam
 * CORREÇÃO: número e texto eram grudados sem separador para formar a chave, e dois
   clientes cujo número e mensagem se encaixavam viravam a mesma chave — o segundo
   nunca recebia nada
 * CORREÇÃO: janela de bloqueio salva em branco ou em zero valia PARA SEMPRE (o 
   prazo 0 nunca expira). Em branco vale 24h, e o teto é uma semana
 * MELHORIA: a recusa por duplicata agora diz o que houve com a gêmea — “já entregue
   há X (origem: Y)” ou “está na fila, aguardando o disparo” — em vez de anunciar
   um envio que talvez não tenha acontecido
 * MELHORIA: a nota no pedido de uma duplicata deixa de dizer “falhou ✗” para uma
   mensagem que foi entregue, e a linha do log passa a levar o pedido e a origem,
   para achar a gêmea
 * NOVO: Consulta de pedidos pela IA — a loja passa a responder “cadê meu pedido?”
   para a inteligência artificial do WhatsApp, com status, itens, rastreio e link
   de pagamento. Ligue em Chat App Brasil  Configuração, no cartão “Consulta de 
   pedidos pela IA”: um botão gera o token e a tela mostra o endereço e o token 
   prontos para copiar
 * A consulta nasce DESLIGADA. Sem token gerado, o endereço recusa qualquer pergunta—
   atualizar o plugin não abre nada sozinho
 * SEGURANÇA: a IA só enxerga pedidos do telefone de quem está conversando. Quem
   comprou usando outro telefone consegue pelo par número do pedido + CPF/CNPJ, 
   e nunca só pelo documento
 * SEGURANÇA: “pedido não existe” e “documento não confere” respondem exatamente
   a mesma coisa, para ninguém descobrir a existência de um pedido chutando números
 * SEGURANÇA: a resposta nunca inclui CPF, e-mail ou endereço. Saem só status, data,
   total, itens, rastreio e link de pagamento — e o link de pagamento apenas em 
   pedido que ainda aguarda pagamento
 * O telefone é comparado por DDD + os 8 dígitos finais, então o nono dígito e a
   máscara do checkout não separam o cliente dos próprios pedidos
 * O rastreio da consulta sai do mesmo resolvedor das mensagens (Correios  Melhor
   Envio  API do Melhor Envio), para a consulta e o WhatsApp nunca discordarem sobre
   o mesmo pedido
 * Botões para gerar outro token e para desligar a consulta a qualquer momento
 * MELHORIA: Um clique liga a consulta — o plugin registra esta loja no XMetric 
   Whats sozinho, usando a chave de envio que ele já tem, e confirma que o gateway
   conseguiu consultar. Nada para copiar entre painéis
 * O cartão “Consulta de pedidos pela IA” só aparece para quem usa o XMetric Whats
   como servidor de envio. Com uma exceção: se a consulta já estiver ligada, o cartão
   continua visível mesmo com o servidor de volta no ChatApp Brasil, porque esconder
   uma chave ligada deixaria a loja sem como desligá-la
 * Desligar a consulta avisa o XMetric Whats, para ele parar de perguntar em vez
   de acumular erro numa tela que o lojista já desligou

#### 3.4.0

 * NOVO: Opção de servidor de envio — além do ChatApp Brasil (padrão), o plugin 
   passa a poder enviar pelo XMetric Whats. A opção é discreta, fica no rodapé do
   cartão de Access Token em Configuração, e só aparece como uma linha de texto 
   até ser ligada
 * O ChatApp Brasil continua sendo o padrão: quem nunca abrir essa opção não tem
   nenhuma mudança de comportamento, e quem atualizar do 3.3.1 continua enviando
   exatamente como antes
 * NOVO: Ao ligar o XMetric Whats, o cartão troca os campos — endereço do servidor(
   já preenchido com https://whats.xmetric.com.br) e o rótulo do token vira “Chave
   do cliente”. A opção “Salvar mensagens no ticket” some, porque não se aplica 
   a esse servidor
 * MELHORIA: Testar Conexão passou a responder duas coisas no XMetric Whats — se
   a chave vale e se existe número pareado. Antes, um token bom em loja sem número
   conectado era anunciado como pronto para enviar
 * MELHORIA: Trocar o servidor ou o endereço invalida a validação anterior do token,
   como já acontecia ao trocar o token — chave aprovada por uma plataforma não diz
   nada sobre a outra
 * MELHORIA: O endereço do XMetric aceita ser colado de qualquer jeito (sem https,
   com barra no fim, ou o painel inteiro copiado do navegador) e é normalizado antes
   de gravar
 * INTERNO: As três chamadas que montavam o endereço da API por conta própria (envio
   de texto, envio de mídia e teste de token) passaram a usar um resolvedor único.
   O filtro wlp_api_url continua valendo, e vale por último

#### 3.3.1

 * NOVO: Integração direta com a API do Melhor Envio — configure o token de acesso
   na aba Rastreamento e o plugin busca o código de rastreio automaticamente, sem
   depender do plugin ME para salvar os dados
 * NOVO: Card de rastreamento no painel do pedido — adicione ou edite o código de
   rastreio manualmente e o WhatsApp é disparado na hora para o cliente
 * NOVO: Poller automático (a cada hora) que verifica novos códigos no Melhor Envio
   para pedidos concluídos ainda sem rastreio enviado
 * NOVO: Retry automático via Action Scheduler se o código de rastreio ainda não
   estiver disponível quando o pedido for concluído
 * CORRECAO: Mensagem de PIX expirado duplicada — idempotência via meta _wlp_pix_expired_sent
   impede que AS e hook de cancelamento enviem duas mensagens consecutivas para 
   o mesmo pedido (MP e Asaas)
 * CORRECAO: Verificação do método de pagamento em wlp_mp_pix_expired corrigida 
   para strpos, compatível com variações do gateway Mercado Pago PIX
 * CORRECAO: Tag %rt_total% no carrinho abandonado agora funciona como alias de %
   cart_total%

#### 3.3.0

 * CORRECAO: Compatibilidade com a nova plataforma (Whaticket) — o sucesso do envio
   agora é determinado pelo código HTTP da resposta, e não mais pelo campo “status”
   da API antiga. Mensagens entregues não aparecem mais como “Desconhecido”/erro
   no log e nas notas do pedido, e o aviso falso de “Envios pausados” deixa de ser
   disparado
 * CORRECAO: Endpoint de envio atualizado para o endereço documentado da plataforma(
   dashboard.chatappbrasil.com/backend/api/messages/send), personalizável via filtro
   wlp_api_url
 * NOVO: Sistema anti-banimento — espaçamento mínimo configurável entre envios (
   padrão 20s) + variação aleatória (padrão até 15s). Envios em rajada entram em
   uma fila e saem um por vez, imitando o ritmo humano; a fila é processada em toda
   requisição e por cron de 1 minuto
 * NOVO: Mensagens que estouram o limite por minuto agora entram na fila anti-ban
   em vez de serem descartadas
 * NOVO: Opção “Salvar mensagens no ticket do painel” (saveOnTicket) — registra 
   os envios da loja na conversa do contato na plataforma; linkPreview habilitado
   nos envios de texto
 * CORRECAO: Teste de token compatível com o formato de erro da plataforma nova (
   HTTP 401/403 e códigos ERR_*)
 * CORRECAO: A frequência do carrinho abandonado escolhida na tela de configuração
   agora é persistida ao salvar (antes revertia para 5 min)
 * CORRECAO: Os toggles “Bloquear mensagens idênticas” e “Janela de horário” agora
   podem ser desativados (o estado desligado não era salvo)
 * MELHORIA: Novos códigos de erro da plataforma traduzidos no log (ERR_SENDING_WAPP_MSG,
   ERR_SESSION_EXPIRED, ERR_WAPP_INVALID_CONTACT)
 * SEGURANÇA: Diretório de logs agora usa sufixo secreto no nome (uploads/woosend-
   logs-xxxx) — em servidores Nginx o .htaccess não é lido e os logs (com telefones
   e mensagens de clientes) ficavam acessíveis por URL previsível; migração do diretório
   antigo é automática
 * CORRECAO: Janela de horário de envio agora suporta período que atravessa a meia-
   noite (ex: 22h–8h) — antes essa configuração bloqueava todos os envios
 * CORRECAO: Números locais do DDD 55 (região de Santa Maria-RS) agora recebem o
   DDI 55 corretamente — antes eram enviados sem DDI e não chegavam
 * CORRECAO: Carrinho abandonado (CartBounty Pro): follow-ups 2 e 3 nunca disparavam—
   a janela de elegibilidade de 24h era menor que os prazos deles (48h/72h); janela
   agora cobre o horizonte completo dos follow-ups
 * CORRECAO: Carrinho abandonado (CartBounty Free): adicionada janela de elegibilidade—
   antes, ativar o plugin com carrinhos históricos podia disparar mensagens para
   carrinhos de meses atrás
 * CORRECAO: Carrinho abandonado (Free): carrinho não fica mais travado permanentemente
   após 3 tentativas bloqueadas por horário/erro temporário
 * CORRECAO: Boleto Asaas e mensagem de novo pedido não são mais reenviados quando
   o cliente recarrega a página de obrigado (guard por meta no pedido)
 * CORRECAO: Back In Stock: assinante notificado via hook direto agora é marcado
   como processado — o cron não reenvia mais a mesma notificação depois de 5 minutos
 * CORRECAO: Pós-venda: cálculo do tempo desde a conclusão não mistura mais fusos(
   desvio de ±3h) e a janela de horário de envio passou a valer para o pós-venda
 * CORRECAO: Envio de mídia não exige mais a extensão cURL (usa a API HTTP do WordPress)
 * MELHORIA: Pós-venda, nota do pedido e lembrete PIX agora registram nota no pedido
   e aparecem categorizados corretamente no log
 * MELHORIA: Rastreamento de cliques do botão flutuante reescrito em JavaScript 
   puro com sendBeacon — funciona em temas sem jQuery e não atrasa a navegação do
   visitante
 * LIMPEZA: Removido o painel de ações de instância (status/reconectar/reiniciar/
   resetar/webhook/QR) — os endpoints /api/instance/* eram da plataforma antiga 
   e não existem no Whaticket; a conexão é gerenciada no painel dashboard.chatappbrasil.
   com
 * MELHORIA: Controle de step do carrinho abandonado (Pro) migrado do post meta 
   para colunas próprias (wlp_step/wlp_last_sent) na tabela do CartBounty, com migração
   automática dos valores antigos
 * CORRECAO: Contagem de cliques do botão não depende mais de nonce — páginas servidas
   por cache (WP Rocket etc.) entregavam nonce vencido e os cliques paravam de ser
   contados após ~12h; proteção mantida via checagem de origem + rate limit por 
   IP
 * CORRECAO: Reenvio pela lista de pedidos agora redireciona após disparar (padrão
   PRG) — recarregar a página não reenvia mais a mensagem; adicionado aviso de confirmação
   no admin
 * CORRECAO: Corrigido erro de sintaxe latente no JS do admin (handler órfão do 
   antigo bloco de autoresponders)

#### 3.2.1

 * CONFIABILIDADE: Lembretes de PIX (Mercado Pago e Asaas) migrados do WP-Cron para
   o Action Scheduler — funciona mesmo com DISABLE_WP_CRON=true e WP Rocket, pois
   o AS tem runner próprio ativado por requisições AJAX, REST e admin
 * CONFIABILIDADE: Dupla garantia para lembretes PIX — além do AS, uma fila em wp_options
   é processada em toda requisição WordPress (frontend, admin, AJAX), garantindo
   disparo em segundos independente de cron ou tráfego
 * CONFIABILIDADE: Trava de idempotência (transient 2h) impede duplo envio quando
   Action Scheduler e fila de requests disparam o mesmo lembrete quase simultaneamente
 * CONFIABILIDADE: Helpers internos wlp_schedule_single e wlp_unschedule_all com
   fallback automático para WP-Cron quando o Action Scheduler não estiver disponível
 * CORRECAO: Quando um pedido PIX é cancelado pelo gateway (PIX expirado sem pagamento),
   a mensagem de “PIX expirado” é enviada IMEDIATAMENTE via hook woocommerce_order_status_cancelled—
   antes dependia do AS executar ação agendada, podendo demorar minutos sem avisar
   o cliente
 * CORRECAO: Notificação de novo pedido (wlp_wa_order_receive) agora passa order_id
   corretamente para o log e para as notas de pedido
 * LIMPEZA: Removido método morto wlp_mp_pix_delayed_send que tinha hook registrado
   mas nunca era chamado
 * MELHORIA: Toda mensagem WhatsApp relacionada a pedidos (status, PIX, lembrete,
   expirado, rastreamento, novo pedido) registra automaticamente nota privada no
   pedido WooCommerce com: fonte, telefone mascarado, status de envio, prévia e 
   link ↺ Reenviar
 * LOG: wlp_debug_log registra agendamento via AS ou WP-Cron (fallback), aviso se
   AS indisponível, e cada disparo da fila de requests com atraso em segundos
 * DIAGNÓSTICO: Relatório de debug exibe status do Action Scheduler (versão, disponibilidade,
   ações pendentes do plugin)

#### 3.1.0

 * NOVO: Notificação do admin e formulários CF7/Caldera aceitam múltiplos números
   separados por vírgula — envia para cada destinatário individualmente
 * SEGURANÇA: Verificação do header Content-Length antes do download de imagens 
   externas — rejeita arquivos acima de 2 MB sem desperdiçar banda
 * SEGURANÇA: Rate limiting por IP no endpoint de rastreamento de cliques do botão(
   máx. 10 cliques/hora por IP) para evitar flood na tabela
 * SEGURANÇA: Hash de deduplicação migrado de MD5 para SHA-256
 * SEGURANÇA: Construção da URL do botão WhatsApp corrigida (esc_url_raw em vez 
   de esc_attr) e número sanitizado com regex antes de compor a URL
 * CONFIABILIDADE: file_put_contents do QR PIX verifica retorno e registra erro 
   no log de debug se a escrita falhar
 * CONFIABILIDADE: Resposta HTTP 4xx/5xx da API ChatAppBrasil agora é tratada como
   erro (antes era registrada como sucesso se o JSON fosse válido)
 * CONFIABILIDADE: Lock do cron de carrinho abandonado usa transient atômico (além
   do UPDATE condicional) para prevenir envios duplicados em crons paralelos
 * CONFIABILIDADE: normalize_phone_number valida tamanho mínimo (DDI + 7 dígitos)
   e máximo (15 dígitos E.164) — números inválidos são descartados antes de chegar
   à API
 * FLEXIBILIDADE: Timeouts da API (60s) e de download de imagens (30s) agora são
   configuráveis via filtros wlp_api_timeout e wlp_download_timeout
 * LIMPEZA: Blocos de comentário vazios remanescentes da refatoração para traits
   removidos de wlp-main.php

#### 3.0.7

 * CORRECAO: Adicionado o callback que faltava para o retry do Asaas PIX (wlp_asaas_pix_retry).
   Antes o evento era agendado quando o meta __ASAAS_ORDER ainda nao estava salvo,
   mas nunca era tratado, e a mensagem podia nunca ser enviada
 * CORRECAO: A deduplicacao deixou de bloquear lembretes, PIX expirado e reenvios
   manuais (envios com parametro resend), que agora sempre passam
 * MELHORIA: Unificado o log das mensagens de Back In Stock (removida a gravacao
   manual duplicada); agora ha um unico registro por envio, identificado como Back
   in Stock e com o nome do cliente
 * MELHORIA: A aba Debug agora exibe um quadro fixo com as integracoes suportadas
   e suas versoes instaladas (Melhor Envio, Mercado Pago, Asaas, Correios, CartBounty,
   Back In Stock Notifier, WooCommerce, etc), indicando ativo/nao instalado, alem
   da versao do plugin, do WordPress e do PHP

#### 3.0.6

 * CORRECAO: Back In Stock voltou a disparar o WhatsApp quando o e-mail de retorno
   ao estoque e enviado. O handler resolvia o produto do assinante por uma chave
   de meta errada (cwginstock_product_id) e abortava; agora usa cwginstock_pid/cwginstock_bypass_pid.
   Tambem passou a ouvir os eventos de envio automatico e manual (cwginstock_auto_email_sent
   e cwginstock_manual_email_sent)
 * MELHORIA: Nova aba Back In Stock no log, no mesmo estilo dos Carrinhos abandonados,
   listando os assinantes elegiveis (com telefone) com status “Aguardando estoque”(
   ampulheta), “E-mail enviado” e “WhatsApp enviado”, alem do status de estoque 
   atual do produto

#### 3.0.5

 * CORRECAO: PIX expirado nao era agendado quando o modo de envio estava em “Lembrete”(
   a funcao retornava antes de agendar). Agora o PIX expirado e agendado em qualquer
   modo, no Mercado Pago e no Asaas
 * CORRECAO: A mensagem de PIX expirado nunca disparava porque exigia o pedido em
   pending/on-hold, mas ao expirar o gateway ja cancela o pedido. Agora ela e enviada
   a menos que o cliente tenha pago (processando/concluido/reembolsado)
 * MELHORIA: Back In Stock mais robusto na leitura do telefone do assinante (tenta
   multiplas chaves de meta, incluindo subscriber_phone) e o cron deixou de excluir
   assinantes por causa do nome da chave de telefone

#### 3.0.4

 * MELHORIA: Log de mensagens agora tem busca por nome, telefone ou numero do pedido,
   e filtro por tipo de mensagem (pedido concluido, processando, falhou, aguardando,
   PIX gerado, envio de rastreio, carrinho abandonado, assinatura, Back in Stock,
   etc). A busca e o filtro respeitam a paginacao
 * MELHORIA: Cada envio agora registra o nome do cliente no log e a mensagem de 
   carrinho abandonado passou a ser identificada como tal (antes caia em “Pedido”)

#### 3.0.3

 * CORREÇÃO: Deteccao do plugin Melhor Envio na aba Rastreamento. O plugin verificava
   o arquivo melhor-envio-cotacao.php (inexistente) e a classe MelhorEnvio\MelhorEnvio(
   inexistente), exibindo “nao esta instalado ou ativo” mesmo com o Melhor Envio
   ativo. Agora detecta pela constante MELHORENVIO_VERSION, pela classe Melhor_Envio_Plugin
   e pelo arquivo correto melhor-envio-beta.php

#### 3.0.2

 * CORREÇÃO: Lembrete de carrinho abandonado não é mais enviado quando o cliente
   já fez a compra. Antes de disparar, o plugin verifica via wc_get_orders (compatível
   com HPOS) se já existe pedido pago (processando ou concluído) para o e-mail ou
   telefone do carrinho e, em caso positivo, marca o carrinho como concluído para
   não reenviar
 * UX: Tela de Carrinhos abandonados passa a ocultar carrinhos sem número de telefone
   e a exibir apenas carrinhos criados após a ativação do plugin (wlp_install_date).
   Contagem e paginação ajustadas aos mesmos filtros
 * UX: Carrinhos que viraram venda agora exibem o selo “(recuperado)” na coluna 
   Status WA e um aviso no detalhe; o botão de envio manual fica oculto nesses casos
 * FILTRO: Novo hook wlp_converted_order_statuses para personalizar quais status
   de pedido contam como “já comprou” (padrão: processando e concluído)

#### 3.0.1

 * ARQUITETURA: wlp-main.php refatorado de 3.300 para 1.942 linhas com separação
   em 7 PHP Traits
 * ARQUITETURA: Criado includes/trait-wlp-api.php — HTTP client, send_msg, process_variables,
   QR image
 * ARQUITETURA: Criado includes/trait-wlp-orders.php — process_states, order_receive,
   resend
 * ARQUITETURA: Criado includes/trait-wlp-payments.php — MP PIX, Asaas PIX, Asaas
   Boleto, expirados
 * ARQUITETURA: Criado includes/trait-wlp-cart.php — CartBounty, abandoned_order,
   aftersales
 * ARQUITETURA: Criado includes/trait-wlp-subscriptions.php — 7 eventos de assinatura
   WCS
 * ARQUITETURA: Criado includes/trait-wlp-tracking.php — Correios e Melhor Envio
 * ARQUITETURA: Criado includes/trait-wlp-bis.php — Back In Stock + watchers + cron
 * PERFORMANCE: CSS do painel extraído para assets/css/wlp-admin.css (cache do browser)
 * PERFORMANCE: Endpoint público AJAX get_base_url removido; URL injetada via wp_localize_script
 * PERFORMANCE: Limpeza de cliques (90 dias) movida do AJAX público para cron diário
 * SEGURANÇA: Validação de tamanho (máx. 2 MB) e MIME (JPEG/PNG/WebP/GIF) antes 
   do envio de mídia
 * CORREÇÃO: Normalização de posição do botão agora aplica corretamente o mapa de
   variantes legadas
 * LIMPEZA: Variável $curl_err morta removida
 * LIMPEZA: UI de wlp_autoresponders sem backend removida do JS administrativo
 * CONFIABILIDADE: Watchers BIS (save_post, meta, transition_post_status) registrados
   como hooks
 * UX: Aba “📚 Tags” adicionada ao painel de Notificações com referência completa
   de variáveis
 * UX: Frequência do cron de carrinho abandonado configurável na tela de Segurança(
   1/2/5/10 min)
 * DEPRECIADO: wlp_bis_legacy_hook(), remove_emoji(), wlp_wa_encoding() marcados@
   deprecated

#### 2.9.8

 * PERFORMANCE: Cron do carrinho abandonado configurável (1, 2, 5 ou 10 min) com
   padrão de 5 min
 * CONFIABILIDADE: Watchers BIS registrados como hooks formais (save_post, updated_post_meta,
   transition_post_status)
 * DEPRECIADO: wlp_bis_legacy_hook(), remove_emoji(), wlp_wa_encoding() marcados
   com @deprecated
 * UX: Aba “📚 Tags” exposta no painel de Notificações (render_help)

#### 2.9.7

 * SEGURANÇA: Endpoint público AJAX get_base_url removido; URL injetada via wp_localize_script
 * PERFORMANCE: DELETE de retenção de cliques movido do AJAX para cron diário wlp_button_cleanup_clicks
 * SEGURANÇA: Validação de tamanho (máx. 2 MB) e MIME antes do envio de mídia
 * LIMPEZA: Variável $curl_err morta removida
 * CORREÇÃO: Normalização de posição do botão aplica corretamente $pos_map[$val]
 * LIMPEZA: UI wlp_autoresponders removida do JS (backend nunca implementado)

#### 2.9.6

 * SEGURANÇA: MD5 substituído por wp_hash() na validação do Access Token
 * SEGURANÇA: @unserialize substituído por is_serialized() + allowed_classes false
 * SEGURANÇA: cURL manual substituído por WP_Http no envio de imagens
 * PERFORMANCE: Hook admin_init de migração com guard (só registra se necessário)
 * LIMPEZA: Lottie Player removido (hook + método enqueue_lottie)
 * CORREÇÃO: Posições do botão normalizadas (left-bottom  bottom-left)
 * LIMPEZA: uninstall.php remove logs JSONL, flags de migração e transients

#### 2.9.6

 * SEGURANÇA: MD5 substituído por wp_hash() (HMAC-SHA256) na validação do Access
   Token
 * SEGURANÇA: @unserialize substituído por verificação com is_serialized() + allowed_classes
   false
 * SEGURANÇA: cURL manual substituído por WP_Http (wp_remote_post) no envio de imagens
 * SEGURANÇA: Todos os dados de log já usam esc_html() na renderização (proteção
   XSS)
 * PERFORMANCE: Hook admin_init de migração agora só registra se a migração ainda
   não ocorreu
 * PERFORMANCE: Código morto do Lottie Player removido (hook + método enqueue_lottie)
 * CORREÇÃO: Posições do botão flutuante normalizadas (left-bottom  bottom-left)
 * LIMPEZA: uninstall.php agora remove logs JSONL, flags de migração e transients

#### 2.9.0

 * NOVO: Integração Asaas PIX — QR code + código copia e cola, modos imediato/lembrete
 * NOVO: Integração Asaas Boleto — link do boleto via %boleto_url%
 * NOVO: Notificação de PIX expirado — compartilhada entre Mercado Pago e Asaas
 * NOVO: Aba Pagamentos — centraliza Mercado Pago PIX, Asaas PIX, Asaas Boleto e
   PIX Expirado
 * NOVO: Aba Rastreamento — Correios e Melhor Envio com detecção automática
 * NOVO: Tags %tracking_code%, %tracking_url% — código e link de rastreio
 * NOVO: Tags %order_status%, %order_time%, %payment_url% — novas tags para mensagens
 * CORRIGIDO: Notificação de “envios pausados” aparecia duplicada no painel admin
 * ATUALIZADO: readme.txt e readme-en_US.txt completos para v2.9.0

#### 2.8.0

 * NOVO: Lembrete PIX, notas privadas nos pedidos, toggle por notificação
 * NOVO: Linhas expansíveis nos logs, monitoramento de erros, friendly errors
 * CORRIGIDO: Estatísticas de logs, quebra de linha CF7, botão Limpar Logs

#### 2.7.5

 * Rate limiting, filtro de horário, dedup configurável, Back In Stock, debug mode

#### 2.7.0

 * Compatibilidade HPOS, wc_get_order(), WC_Order API

#### 2.0.0

 * Botão flutuante SVG com preview, rastreamento de cliques

#### 1.0.0

 * Lançamento inicial

## Meta

 *  Version **3.5.1**
 *  Last updated: **1 month ago**
 *  Active installations: **10+**
 *  WordPress Version: ** 6.0 or higher **
 *  Tested up to: **6.9.10**
 *  PHP Version: ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/chat-app-brasil/)
 * Tags:
 * [abandoned cart](https://en-ca.wordpress.org/plugins/tags/abandoned-cart/)[whatsapp](https://en-ca.wordpress.org/plugins/tags/whatsapp/)
   [whatsapp button](https://en-ca.wordpress.org/plugins/tags/whatsapp-button/)[WhatsApp notifications](https://en-ca.wordpress.org/plugins/tags/whatsapp-notifications/)
   [woocommerce](https://en-ca.wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://en-ca.wordpress.org/plugins/chat-app-brasil/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  1 5-star review     ](https://wordpress.org/support/plugin/chat-app-brasil/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/chat-app-brasil/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/chat-app-brasil/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/chat-app-brasil/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/chat-app-brasil/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/chat-app-brasil/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/chat-app-brasil/reviews/)

## Contributors

 *   [ Luiz Mariano ](https://profiles.wordpress.org/lupee87/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/chat-app-brasil/)