Opção A (recomendada) — Plugin com shortcode
Mais limpo, separa markup do conteúdo da página e carrega o SDK só
quando o shortcode está presente. Baixe o arquivo
shortcode.php
e siga:
-
Crie a pasta do plugin
Via SFTP ou File Manager, crie:
/wp-content/plugins/celetus-upsell/celetus-upsell.phpCole o conteúdo do arquivo baixado dentro de
celetus-upsell.php. -
Ative o plugin
No admin, vá em Plugins → Plugins Instalados → ative Celetus Upsell.
-
Pegue a
keyno painel CeletusNo painel, em Funil de vendas, clique no ícone
</>da etapa desejada e copie o valor dakey. -
Insira o shortcode na página
Crie uma página nova (ex:
/upsell) e adicione o shortcode com akey:[celetus_upsell key="SUA_KEY_AQUI"]OsfidNÃO vai no shortcode — ele é lido automaticamente de?sfid=…na URL, plantado pelo redirect do checkout pós-compra. -
Configure o redirect no painel Celetus
No passo do funil de upsell, aponte a URL para
https://seusite.com/upsell. O checkout principal redireciona o cliente com?sfid=…automaticamente.
/upsell do cache HTML, senão a query
string do redirect é servida stale ou descartada. Procure por
"Never Cache URLs" / "Cache Exclusions" nas configurações do
plugin.
Opção B — Bloco HTML do Gutenberg
Sem plugin. Bom se você não quer mexer em FTP, mas o HTML fica misturado ao conteúdo da página.
-
Crie uma página em branco
Páginas → Adicionar nova. Use um template "Em branco" ou "Página inteira" se seu tema oferecer.
-
Adicione um bloco "HTML personalizado"
Clique em + → procure "HTML personalizado" (ou "Custom HTML"). Cole o conteúdo de exemplo.html.
-
Cheque se o tema permite
<script>Alguns temas e plugins de segurança removem
<script>do conteúdo. Se nada acontecer ao abrir a página, inspecione o HTML final — se as tags sumiram, use a Opção A (plugin) ou C (Elementor).
Opção C — Elementor / Divi / Beaver Builder
Builders visuais têm widgets de "HTML" ou "Embed Code" que aceitam
<script> sem sanitizar.
-
Elementor
Arraste o widget HTML para a página e cole o conteúdo de exemplo.html.
-
Divi
Use o módulo Code. Cole o mesmo HTML.
-
Beaver Builder / Bricks
Widget HTML ou Raw HTML. Mesmo procedimento.
Encadeamento entre etapas do funil
O shortcode [celetus_upsell] já faz
o encadeamento automaticamente — após pagamento confirmado chama
upsell.next() e redireciona pra
próxima etapa do funil (configurada no painel Celetus). Você
não precisa criar páginas separadas no WordPress
pra cada etapa.
Fluxo típico com 3 etapas: crie uma única página
/upsell com o shortcode e configure
no painel Celetus as URLs positiva e negativa de cada etapa
apontando sucessivamente — a mesma página serve todas, porque o
SDK troca a ?key= da URL a cada
redirect.
upsell.next() no seu
próprio timing.
⚠️ Link de uso único (importante para testes)
localStorage por 1 minuto para
sobreviver a reloads da página.
-
Teste com nova compra a cada rodada: depois de
carregar a página de upsell uma vez, o
sfidnão pode ser reusado — faça uma nova compra de teste para gerar outro. -
Caching plugins são inimigos aqui: WP Rocket,
W3TC, LiteSpeed, Cloudflare APO e CDNs que cacheiam HTML podem
servir a página com query string errada ou cacheada, fazendo o
SDK reclamar de link consumido. Exclua
/upselldo cache HTML e da otimização agressiva. - Se aparecer "Link inválido ou já consumido" na tela do cliente real, normalmente é porque ele fechou e reabriu o link depois de 1 minuto — comportamento esperado.
Debug rápido
- Página carrega mas nada acontece? Abra o console do navegador (F12). Verifique se a URL tem todos os parâmetros necessários — eles deveriam ter sido plantados pelo redirect do checkout.
-
CeletusUpsell is not defined? O SDK não carregou. Em WP, desative temporariamente plugins de otimização/minificação JS para isolar o problema. - CORS error? Abra chamado com o suporte Celetus informando o domínio exato do site WordPress para liberação.