=== Chat App Brasil === Contributors: lupeedesign Tags: whatsapp, woocommerce, whatsapp notifications, abandoned cart, whatsapp button Requires at least: 6.0 Tested up to: 6.9 Requires PHP: 7.4 Stable tag: 3.0.2 WC requires at least: 7.0 WC tested up to: 9.8 License: GPLv2 or later 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. == Changelog == = 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