=== Sendora ===
Contributors: sendora
Tags: whatsapp, crm, woocommerce, contact-form-7, marketing-automation, chatbot, meta, leads
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 8.0
Stable tag: 0.8.7
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Plugin oficial WordPress da Sendora — CRM no WhatsApp, agentes de IA e automações de vendas para sua loja e formulários.

== Description ==

A **Sendora** é uma plataforma de CRM e mensagens focada em WhatsApp, feita para times de vendas e atendimento. Este é o **plugin oficial para WordPress**: ele conecta o seu site à conta Sendora para que leads, pedidos e conversas fiquem no mesmo lugar.

Use para capturar contatos no WordPress, sincronizar eventos do WooCommerce, embutir o widget de chat da Sendora e disparar mensagens ou fluxos — direto do painel admin.

[Site da Sendora](https://sendora.com.br) · [App](https://app.sendora.com.br) · [Documentação](https://sendora.com.br)

= O que é a Sendora? =

A Sendora ajuda empresas a vender e atender no **WhatsApp** (e canais relacionados) com:

* **Inbox e CRM** unificados para contatos e conversas
* **Modelos de mensagem** e templates da **Meta Cloud API**
* **Fluxos e automações** (e agentes de IA no app Sendora)
* Funis, etapas, tags e follow-ups para o pipeline comercial

O plugin WordPress é a ponte: o site coleta os dados; a Sendora cuida de mensagens, CRM e automação.

= O que este plugin faz =

* **Conexão segura** — Cole uma API key no servidor (`sk_…`), teste a conexão e acompanhe o status do workspace no admin do WordPress.
* **Formulários de lead** — O shortcode `[sendora_form]` cria ou atualiza contatos na Sendora e pode iniciar um fluxo.
* **Contact Form 7** — Mapeie nome, telefone e e-mail quando o CF7 estiver instalado.
* **Widget de chat** — Embed opcional do widget oficial da Sendora (com segmentação por página).
* **WooCommerce** — Ações por evento (pedido criado, pago, carrinho abandonado, enviado e mais): enviar mensagem e/ou atualizar o CRM (funil, etapa, tags).
* **Dois modos de WhatsApp**
  * **WhatsApp (QR Code)** — Seus próprios modelos com variáveis como `{{nome}}` e `{{pedido}}`, gerenciados no app Sendora.
  * **WhatsApp Oficial (Meta)** — Templates WABA aprovados via Meta Cloud API.
* **Automações** — Regras no WordPress (gatilho, condições, atraso) que chamam a Sendora (mensagem, CRM, fluxo).
* **Onboarding** — Assistente e checklist que explicam modelos QR vs templates Meta.
* **Logs locais** — Tabela de logs no admin, com API keys ocultadas.

Os dados fluem **do WordPress para a Sendora via HTTPS**. Nesta versão o plugin não recebe webhooks de entrada da Sendora.

= Para quem é =

* Lojas **WooCommerce** que querem eventos de pedido e carrinho no WhatsApp
* Sites que capturam leads com **formulários** ou **Contact Form 7**
* Equipes que já usam (ou vão começar a usar) a **Sendora** para CRM e mensagens

WooCommerce e Contact Form 7 são opcionais. As configurações deles só aparecem quando esses plugins estão ativos.

= Requisitos =

* Uma conta na [Sendora](https://sendora.com.br)
* Uma API key (`sk_…`) com os escopos adequados (veja abaixo)
* WordPress 6.2+, PHP 8.0+

**Escopos recomendados da API key:** `contacts:write`, `messages:write` (ou `messages:send`) e, opcionalmente, `flows:write` para disparar fluxos.

== External services ==

Este plugin se conecta à plataforma SaaS **Sendora**. Isso é necessário para o plugin funcionar depois que um administrador salva uma API key e ativa recursos.

* **Serviço:** CRM, mensagens e automações Sendora
* **API:** https://api.sendora.com.br
* **App:** https://app.sendora.com.br
* **Termos de Uso:** https://sendora.com.br/termos-de-uso/
* **Política de Privacidade:** https://sendora.com.br/politica-de-privacidade/

**Quais dados são enviados e quando**

* Depois que um admin salva uma API key (`sk_…`): o teste de conexão pode chamar `/api/me` (metadados da conta/workspace).
* Quando formulários, Contact Form 7, eventos WooCommerce ou automações rodam: campos de contato (nome, telefone, e-mail, tags), funil/etapa opcionais, metadados de pedido e payloads de mensagem/template via HTTPS.
* Quando o widget de chat está ativo: o script oficial de embed é carregado de `https://api.sendora.com.br/public/widget/embed` (navegador do visitante → Sendora).
* Sem analytics ou telemetria na instalação. Só instalar o plugin não envia dados.

É necessário ter conta Sendora e API key. Entrega de mensagens e recursos de CRM são fornecidos por esse serviço (Guideline 6 — integração SaaS genuína).

== Installation ==

1. Envie a pasta `sendora` para `/wp-content/plugins/`, ou instale o ZIP em **Plugins → Adicionar novo → Enviar plugin**.
2. Ative o **Sendora**.
3. Abra **Sendora** no menu do admin. Siga o assistente de onboarding, se aparecer.
4. Vá em **Conexão**, cole a API key (`sk_…`), salve e clique em **Testar conexão**.
5. Opcionalmente configure:
   * **Configurações** — código do país padrão e telefone de teste
   * **Formulários** — `[sendora_form]` e/ou Contact Form 7
   * **Widget** — ative o chat e informe o ID do widget
   * **WooCommerce** — ative eventos de pedido e escolha modelos QR ou templates Meta
   * **Automações** — regras híbridas opcionais
6. Adicione `[sendora_form]` em qualquer página ou post para capturar leads.

== Frequently Asked Questions ==

= Onde consigo uma API key? =

Na sua conta Sendora em [app.sendora.com.br](https://app.sendora.com.br), crie uma Public API key que começa com `sk_`. Todas as chamadas usam apenas HTTPS.

= Qual a diferença entre modelos QR e templates Meta? =

* **QR / modelos de mensagem** — Seus textos com `{{variáveis}}`, criados em **Templates** no app Sendora. Usados com **WhatsApp (QR Code)**.
* **Templates oficiais Meta** — Templates aprovados da Cloud API (WABA). Usados com **WhatsApp Oficial (Meta API)**.

Eles aparecem em listas separadas no plugin, conforme o canal escolhido.

= Por que a lista de mensagens está vazia? =

Para **QR Code**, crie um modelo em app.sendora.com.br/templates e recarregue o admin (o plugin faz cache breve e não mantém cache vazio).

Para **Meta**, é preciso ter ao menos um template **APPROVED** na WABA conectada.

= A API key fica visível para visitantes do site? =

Não. A key fica na tabela de options do WordPress com autoload desativado. Depois de salvar, o admin mostra só os últimos quatro caracteres. Ela nunca é impressa no JavaScript do front-end.

= O plugin envia dados sozinho sem consentimento? =

Não há analytics ou telemetria na instalação. Dados só vão para a Sendora depois que um administrador salva uma API key e ativa recursos (formulários, WooCommerce, widget, automações ou envio de teste).

= Ativar o widget de chat carrega um script remoto? =

Sim. Com o widget ativo e um ID definido, o script oficial de embed é carregado da base da API (`/public/widget/embed` em `https://api.sendora.com.br`). É o embed do produto Sendora, não um CDN de anúncios de terceiros.

= Este plugin recebe webhooks da Sendora? =

Não. Nesta versão o fluxo é só de saída: o WordPress chama a API REST da Sendora.

= Preciso do WooCommerce ou do Contact Form 7? =

Não. O shortcode e o widget funcionam sem eles.

= Como os telefones são formatados? =

Os dígitos são normalizados com o código de país padrão configurado (Brasil `55` por padrão) antes do upsert do contato.

== Screenshots ==

1. Dashboard — status da conexão, checklist de onboarding e atividade recente.
2. Conexão — API key, teste e desconectar.
3. WooCommerce — cards de evento com canal (QR ou Meta) e seleção de mensagem.
4. Formulários — formulário nativo e mapeamentos do Contact Form 7.
5. Automações — gatilho, condições, atraso e ações na Sendora.

== Changelog ==

= 0.8.7 =
* Seção External services com links de Termos de Uso e Política de Privacidade.

= 0.8.6 =
* Plugin Check: nonce no deep-link do wizard, wp_unslash em AJAX admin, version no enqueue do widget.

= 0.8.5 =
* Plugin Check: Plugin URI e Author URI distintos (app vs site).

= 0.8.4 =
* Fix: Finalizar/Concluir gravam flag permanente (onboarding não volta após reload).

= 0.8.3 =
* Onboarding: botões (ex. Ir para Conexão) sem underline/azul padrão do wp-admin.

= 0.8.2 =
* Onboarding: “Finalizar” / “Concluir” fecham o guia de forma permanente (não reaparece).

= 0.8.1 =
* Preparação para WordPress.org: readme, header GPL-2.0-or-later, uninstall mais completo.
* Clarificação de modelos QR vs templates Meta; Contributors: sendora.

= 0.8.0 =
* Assistente de onboarding e checklist no dashboard (somente plugin).
* Ajuda inline distinguindo modelos QR (/templates) de templates Meta.

= 0.7.1 =
* Não cachear lista vazia de templates QR (novos modelos aparecem após refresh).

= 0.7.0 =
* Automações híbridas: gatilho/condições/atraso no WordPress; mensagem, CRM e fluxos na Sendora.
* Gatilhos: formulário Sendora, Contact Form 7, eventos WooCommerce (incluindo carrinho abandonado).

= 0.6.2 =
* Rótulo do canal: “WhatsApp (QR Code)” (sem branding Evolution na UI).

= 0.6.1 =
* Envio de teste: campo de telefone ao lado do botão; configurações guardam o número padrão de teste.

= 0.6.0 =
* Seletor de canal: WhatsApp QR Code ou Meta Oficial WABA por evento/formulário.
* Listas de instância via GET /api/connections e GET /api/meta/waba.
* Envio Meta: templates aprovados e POST /api/messages/send-template.

= 0.5.0 =
* CRM WooCommerce: funil, etapa e tags por evento.
* Cards suportam só mensagem, só CRM, ou ambos.

= 0.4.1 =
* Seletor de país e máscara de telefone no `[sendora_form]`.

= 0.4.0 =
* Formulários: UX em cards alinhada ao WooCommerce (mensagem por formulário + CF7).
* Evento de checkout abandonado com atraso configurável.
* “Enviar teste” nos cards de evento/formulário.

= 0.3.0 =
* Evento WooCommerce → modelos de mensagem Sendora (GET /api/templates, POST /api/messages/send).
* Processamento assíncrono via Action Scheduler quando disponível, senão WP-Cron.
* Variáveis de template alinhadas à Sendora (`{{nome}}`, `{{pedido}}`, etc.).

= 0.2.0 =
* Shell admin estilo Fluent, workspace de conexão, segmentação do widget por página, base do event bus.

= 0.1.0 =
* Lançamento inicial: conexão API, `[sendora_form]`, mapeamento Contact Form 7, widget oficial, sync WooCommerce, logs locais.
* Endurecimento para review: SQL preparado, escaping, nonces/capabilities, API só HTTPS, limpeza no uninstall, declaração HPOS.

== Upgrade Notice ==

= 0.8.7 =
Links de Termos de Uso e Política de Privacidade na seção External services.

= 0.8.1 =
Recomendado para envio ao WordPress.org: docs mais claras e uninstall mais seguro.

= 0.8.0 =
Adiciona onboarding do plugin. Sites existentes podem ver o assistente uma vez; dá para dispensar no dashboard.

= 0.3.0 =
Reconfigure os eventos WooCommerce: escolha uma mensagem Sendora (ou ação de CRM) por evento de pedido.

== Privacy ==

Este plugin envia dados para a API da Sendora (`https://api.sendora.com.br`) somente depois que um administrador configura uma API key e ativa recursos.

* **API key** — Armazenada em `sendora_settings` (autoload off). Mascarada no admin. Nunca exposta a visitantes.
* **Formulários / Contact Form 7 / WooCommerce / Automações** — Nome, telefone, e-mail, tags, funil/etapa e metadados de pedido relacionados podem ser enviados via HTTPS.
* **Widget de chat** — Desligado por padrão. Quando ativo, carrega o embed oficial do host da API Sendora.
* **Logs** — Tabela local `{prefix}sendora_logs`. Segredos são redigidos. Removidos no uninstall junto com as configurações.

Nenhum rastreador de anúncio está incluído. Termos e privacidade do SaaS:

* Termos de Uso: https://sendora.com.br/termos-de-uso/
* Política de Privacidade: https://sendora.com.br/politica-de-privacidade/
