token(), sanitize_text_field( wp_unslash( $_COOKIE[ GIP_COOKIE ] ) ) );
}
public function ajax_login() {
check_ajax_referer( ‘gip_nonce’, ‘nonce’ );
$senha = isset( $_POST[‘senha’] ) ? sanitize_text_field( wp_unslash( $_POST[‘senha’] ) ) : ”;
if ( hash_equals( GIP_SENHA, $senha ) ) {
setcookie( GIP_COOKIE, $this->token(), time() + DAY_IN_SECONDS * 7, COOKIEPATH ? COOKIEPATH : ‘/’, COOKIE_DOMAIN, is_ssl(), true );
wp_send_json_success();
}
wp_send_json_error( array( ‘msg’ => ‘Senha incorreta. Tente novamente.’ ) );
}
public function ajax_logout() {
setcookie( GIP_COOKIE, ”, time() – HOUR_IN_SECONDS, COOKIEPATH ? COOKIEPATH : ‘/’, COOKIE_DOMAIN, is_ssl(), true );
wp_send_json_success();
}
/* ———————————————————————
SHORTCODE
——————————————————————— */
public function render() {
$config = array(
‘ajax’ => admin_url( ‘admin-ajax.php’ ),
‘nonce’ => wp_create_nonce( ‘gip_nonce’ ),
);
ob_start();
echo ‘‘;
echo ‘
‘;
}
private function html_ferramenta() {
return ‘
‘;
}
/* ———————————————————————
CSS (roxo e lilás)
——————————————————————— */
private function css() {
return <<<'CSS'
.gip{--roxo:#5b21b6;--roxo-medio:#7c3aed;--lilas:#c4b5fd;--lilas-claro:#ede9fe;--fundo:#f5f3ff;--texto:#2e1065;
max-width:880px;margin:0 auto;padding:20px;font-family:-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--texto);box-sizing:border-box}
.gip *{box-sizing:border-box}
.gip h2{margin:8px 0;font-size:28px;color:var(--roxo);line-height:1.2}
.gip p{margin:0 0 12px;color:#4c1d95}
.gip-badge{display:inline-block;background:var(--lilas);color:var(--roxo);font-weight:700;font-size:12px;padding:5px 12px;border-radius:999px;letter-spacing:.4px;text-transform:uppercase}
.gip-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;background:linear-gradient(135deg,var(--roxo),var(--roxo-medio));padding:24px;border-radius:20px;margin-bottom:18px}
.gip-header h2,.gip-header p{color:#fff}
.gip-header p{opacity:.92}
.gip-card{background:var(--fundo);border:1px solid var(--lilas);border-radius:20px;padding:22px;margin-bottom:18px;box-shadow:0 6px 20px rgba(91,33,182,.08)}
.gip-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:18px}
.gip label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px;color:var(--roxo)}
.gip input,.gip select{width:100%;padding:12px 14px;border:2px solid var(--lilas);border-radius:12px;background:#fff;font-size:15px;color:var(--texto);outline:none}
.gip input:focus,.gip select:focus{border-color:var(--roxo-medio)}
.gip-btn{background:linear-gradient(135deg,var(--roxo-medio),var(--roxo));color:#fff;border:0;padding:14px 26px;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;transition:transform .15s,opacity .15s}
.gip-btn:hover{transform:translateY(-1px);opacity:.93}
.gip-btn-ghost{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.6);padding:10px 18px;font-size:14px}
.gip-login{max-width:420px;margin:30px auto;text-align:center}
.gip-login input{margin-bottom:12px;text-align:center}
.gip-erro{color:#be123c;font-weight:600;margin-top:10px;min-height:20px}
.gip-idea{background:#fff;border:1px solid var(--lilas);border-left:6px solid var(--roxo-medio);border-radius:16px;padding:20px;margin-bottom:16px;box-shadow:0 4px 14px rgba(91,33,182,.07)}
.gip-idea h3{margin:8px 0 4px;font-size:20px;color:var(--roxo)}
.gip-tag{display:inline-block;background:var(--lilas-claro);color:var(--roxo);font-weight:700;font-size:12px;padding:4px 10px;border-radius:999px;margin-right:6px}
.gip-sub{font-weight:700;color:var(--roxo-medio);margin:14px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.5px}
.gip-roteiro{background:var(--lilas-claro);border-radius:12px;padding:12px 14px;font-size:14px;color:var(--texto)}
.gip-legenda{background:var(--fundo);border:1px dashed var(--lilas);border-radius:12px;padding:14px;white-space:pre-wrap;font-size:15px;line-height:1.55;color:var(--texto)}
.gip-copiar{margin-top:12px;padding:10px 18px;font-size:14px}
@media(max-width:640px){.gip-grid{grid-template-columns:1fr}.gip-header{flex-direction:column}.gip h2{font-size:23px}}
CSS;
}
/* ---------------------------------------------------------------------
JAVASCRIPT (banco de ideias + geração)
--------------------------------------------------------------------- */
private function js() {
return <<<'JS'
(function(){
var $=function(id){return document.getElementById(id)};
/* ---------- Login / Logout ---------- */
function post(action,extra,cb){
var fd=new FormData();
fd.append('action',action);fd.append('nonce',GIP_CONFIG.nonce);
for(var k in extra){fd.append(k,extra[k])}
fetch(GIP_CONFIG.ajax,{method:'POST',body:fd,credentials:'same-origin'}).then(function(r){return r.json()}).then(cb);
}
if($('gip-entrar')){
var entrar=function(){
post('gip_login',{senha:$('gip-senha').value},function(r){
if(r.success){location.reload()}else{$('gip-erro').textContent=(r.data&&r.data.msg)||'Erro ao entrar.'}
});
};
$('gip-entrar').addEventListener('click',entrar);
$('gip-senha').addEventListener('keydown',function(e){if(e.key==='Enter'){entrar()}});
}
if($('gip-sair')){
$('gip-sair').addEventListener('click',function(){post('gip_logout',{},function(){location.reload()})});
}
if(!$('gip-gerar')){return}
/* ---------- Banco de ideias ---------- */
var BANCO={
marketing:[
{formato:'Carrossel',titulo:'3 erros que travam seu {tema}',
roteiro:'Slide 1: título forte. Slides 2 a 4: um erro por slide com exemplo real. Slide 5: a solução. Slide 6: chamada para ação.',
gancho:'Se o seu {tema} não cresce, talvez você esteja cometendo um desses 3 erros 👇',
corpo:['❌ Erro 1: postar sem estratégia. Cada post precisa ter um objetivo claro: atrair, engajar ou vender.','❌ Erro 2: falar só de você. {publico} quer saber o que vai ganhar, não só o que você faz.','❌ Erro 3: não ter chamada para ação. Se você não diz o próximo passo, ninguém dá.','✅ A solução é planejar o conteúdo em ciclos: atrair, conectar e converter.']},
{formato:'Reels',titulo:'Mito x Verdade sobre {tema}',
roteiro:'0-3s: "Pare de acreditar nisso!". 3-20s: mito na tela e verdade falada. 20-30s: chamada para ação com texto na tela.',
gancho:'Pare de acreditar nisso sobre {tema}! 🚫',
corpo:['Mito: "preciso aparecer todo dia para vender".','Verdade: consistência vale mais que quantidade. Três posts bem pensados por semana já mudam o jogo.','Mito: "só quem tem muitos seguidores vende".','Verdade: perfil pequeno com público certo vende mais que perfil grande sem direção.','Isso vale muito para {publico}.']},
{formato:'Carrossel',titulo:'Passo a passo: como começar com {tema}',
roteiro:'Capa com promessa. Um passo por slide, com frase curta e um exemplo. Último slide com convite para salvar.',
gancho:'O passo a passo simples para começar com {tema} (salva para não perder) 📌',
corpo:['1️⃣ Defina quem é a sua cliente ideal: {publico}.','2️⃣ Escolha um problema que você resolve e fale dele em todos os posts.','3️⃣ Crie 3 pilares de conteúdo: ensino, prova e oferta.','4️⃣ Planeje uma semana de posts de uma vez só.','5️⃣ Analise os resultados e repita o que funcionou.']},
{formato:'Reels',titulo:'Bastidores: como eu crio conteúdo sobre {tema}',
roteiro:'Grave a tela e o seu processo em cortes rápidos. Fale por cima mostrando ideia, criação e postagem.',
gancho:'Vem ver como eu crio conteúdo sobre {tema} em poucos minutos ⏱️',
corpo:['Primeiro eu anoto as dúvidas que {publico} me manda.','Depois transformo cada dúvida em uma ideia de post.','Em seguida escolho o formato: carrossel, Reels ou stories.','Por fim escrevo a legenda com gancho, história e chamada para ação.','Conteúdo bom nasce de conversa real com o público.']},
{formato:'Estático',titulo:'Antes e depois do perfil com estratégia em {tema}',
roteiro:'Imagem dividida: lado esquerdo "antes" (sem direção) e lado direito "depois" (com estratégia).',
gancho:'Antes: postava sem rumo. Depois: cada post com um objetivo ✨',
corpo:['Antes eu postava quando dava e não sabia o que funcionava.','Hoje eu tenho um calendário, pilares de conteúdo e uma oferta clara sobre {tema}.','O resultado foi mais alcance, mais conversas e mais vendas.','Estratégia não tira a sua criatividade, ela dá direção.']},
{formato:'Carrossel',titulo:'Checklist: seu post está pronto para publicar?',
roteiro:'Cada slide traz um item do checklist com um ícone de check. Peça para salvar e enviar para uma amiga.',
gancho:'Antes de postar sobre {tema}, confira este checklist ✅',
corpo:['✅ O primeiro texto prende a atenção em 3 segundos?','✅ O conteúdo resolve uma dor de {publico}?','✅ A legenda conta uma mini história?','✅ Existe uma chamada para ação clara?','✅ O visual está limpo e fácil de ler?']},
{formato:'Stories',titulo:'Enquete: qual a sua maior dificuldade com {tema}?',
roteiro:'Sequência de 4 stories: pergunta com caixinha, enquete, resposta com dica e link para a oferta.',
gancho:'Me conta: qual é a sua maior dificuldade com {tema}? 👀',
corpo:['Story 1: caixinha de perguntas aberta.','Story 2: enquete com duas opções (ex: falta de ideias ou falta de tempo).','Story 3: responda em vídeo curto com uma dica prática.','Story 4: mostre como o seu produto resolve isso.','Use as respostas para criar os próximos posts.']},
{formato:'Reels',titulo:'Lançamento: chegou {tema} para {publico}',
roteiro:'0-3s: "Chegou o dia!". 3-20s: mostre o produto, o que está incluso e para quem é. 20-30s: valor, prazo e link da bio.',
gancho:'Chegou o dia que você esperava! Apresento {tema} 🚀',
corpo:['Eu criei {tema} pensando em {publico} que quer resultado sem complicação.','Dentro você vai encontrar tudo organizado, do começo ao fim.','Você aprende de forma simples e já pode aplicar no mesmo dia.','As condições de lançamento têm prazo, então não deixe para depois.']},
{formato:'Estático',titulo:'Depoimento: o resultado de quem usou {tema}',
roteiro:'Print do depoimento com destaque na frase principal, foto da cliente (com autorização) e a sua marca no canto.',
gancho:'Olha o que a minha aluna disse depois de aplicar {tema} 💜',
corpo:['Quando ela chegou, estava insegura e sem saber por onde começar.','Depois de aplicar o passo a passo, os resultados começaram a aparecer.','Esse é o tipo de transformação que me motiva a criar conteúdo todos os dias.','Se você é {publico}, esse caminho também pode ser o seu.']},
{formato:'Carrossel',titulo:'Perguntas e respostas sobre {tema}',
roteiro:'Cada slide traz uma pergunta no topo e a resposta curta embaixo. Termine convidando para mandar novas dúvidas.',
gancho:'As perguntas que mais recebo sobre {tema}, respondidas de uma vez 👇',
corpo:['❓ Preciso ter experiência? Não, dá para começar do zero.','❓ Quanto tempo leva para ver resultado? Depende da sua constância, mas as primeiras mudanças aparecem rápido.','❓ Preciso investir muito? Não, o essencial você faz com o celular.','❓ Isso funciona para {publico}? Sim, foi pensado justamente para esse perfil.']}
],
renda:[
{formato:'Reels',titulo:'Como {publico} pode começar renda extra com {tema}',
roteiro:'0-3s: gancho falado. 3-25s: três passos rápidos na tela. 25-30s: convite para conhecer o método.',
gancho:'Quer renda extra sem sair de casa? Começa por aqui 👇',
corpo:['Passo 1: escolha um produto simples que as pessoas já procuram, como {tema}.','Passo 2: mostre o resultado dele em posts curtos.','Passo 3: venda pelo WhatsApp ou pelo link da bio.','Você não precisa de muito dinheiro para começar, precisa de constância.']},
{formato:'Carrossel',titulo:'5 ideias de renda extra usando o celular',
roteiro:'Uma ideia por slide com ícone, descrição curta e para quem serve. Slide final convidando a salvar.',
gancho:'Só com o celular dá para fazer renda extra. Veja 5 ideias 📱',
corpo:['1. Vender produtos digitais como {tema}.','2. Criar conteúdo e prestar serviço de social media.','3. Editar vídeos para outras pessoas.','4. Montar e vender templates e convites.','5. Ensinar o que você sabe em um mini curso.','Escolha uma, comece pequeno e evolua.']},
{formato:'Estático',titulo:'Produto digital: vende várias vezes sem estoque',
roteiro:'Arte limpa com frase de impacto e o valor do produto em destaque.',
gancho:'Você faz uma vez e vende várias. Esse é o poder do produto digital 💜',
corpo:['Sem estoque, sem frete e sem sair de casa.','Você cria uma vez e entrega automaticamente.','{tema} é um ótimo exemplo para {publico} começar.','Quem começa hoje colhe os resultados daqui a poucas semanas.']},
{formato:'Reels',titulo:'Quanto dá para ganhar com {tema}?',
roteiro:'Mostre uma conta simples na tela: preço x número de vendas. Fale de forma realista.',
gancho:'Vamos fazer a conta de quanto dá para ganhar com {tema}? 🧮',
corpo:['Exemplo: um produto de R$ 37 vendido 10 vezes na semana.','Isso são R$ 370 por semana e mais de R$ 1.400 no mês.','Os números dependem de divulgação e constância, não existe mágica.','O primeiro passo é ter uma oferta clara e mostrar para as pessoas certas.']},
{formato:'Carrossel',titulo:'Erros de quem desiste da renda extra antes de vender',
roteiro:'Slides com um erro cada, usando frases curtas e um tom acolhedor.',
gancho:'Se você já desistiu antes do primeiro cliente, leia isso com carinho 💜',
corpo:['Erro 1: esperar estar perfeita para começar.','Erro 2: postar poucos dias e abandonar.','Erro 3: não falar da oferta com medo de incomodar.','Erro 4: comparar o seu começo com o meio de outra pessoa.','Quem sabe falar com {publico} e persiste, vende.']},
{formato:'Stories',titulo:'Minha primeira venda com {tema}',
roteiro:'Conte a história em 5 stories: antes, medo, ação, primeira venda e aprendizado.',
gancho:'Quero te contar como foi a minha primeira venda 🥹',
corpo:['Story 1: como eu estava antes de começar.','Story 2: o medo e as dúvidas que eu tinha.','Story 3: o que eu fiz de diferente.','Story 4: print da primeira venda (se tiver).','Story 5: o que eu aprendi e o convite para você começar também.']},
{formato:'Reels',titulo:'Rotina de 30 minutos para vender {tema}',
roteiro:'Mostre um cronômetro e três blocos de 10 minutos: conteúdo, conversa e oferta.',
gancho:'Só 30 minutos por dia e você já pode vender mais ⏰',
corpo:['10 minutos: poste um conteúdo ou stories.','10 minutos: responda mensagens e comentários.','10 minutos: faça uma oferta direta de {tema}.','Fazendo isso todos os dias o seu resultado muda em poucas semanas.']},
{formato:'Reels',titulo:'Lançamento: {tema} para {publico} começar a lucrar',
roteiro:'0-3s: gancho com a promessa. 3-20s: mostre o produto e os bônus. 20-30s: preço, prazo e chamada para o link da bio.',
gancho:'Chegou a sua chance de começar a lucrar com {tema} 💰',
corpo:['Criei {tema} para {publico} que quer renda extra de um jeito simples.','Você recebe o material pronto e aprende o passo a passo para vender.','Dá para começar pelo celular, no seu tempo.','O valor de lançamento é por tempo limitado.']},
{formato:'Estático',titulo:'Depoimento de aluna: primeiros resultados com {tema}',
roteiro:'Print da conversa ou do depoimento em destaque, com uma frase de impacto na arte e a sua marca.',
gancho:'Ela começou do zero e olha o que aconteceu 🥹💜',
corpo:['Esse é o depoimento de uma aluna que decidiu dar o primeiro passo com {tema}.','Ela não tinha experiência e ainda assim começou a vender.','O segredo foi seguir o passo a passo e ser constante.','Você também pode começar, mesmo sem experiência.']},
{formato:'Carrossel',titulo:'Perguntas que {publico} mais faz sobre {tema}',
roteiro:'Uma pergunta por slide com resposta curta e direta. Último slide convida a enviar novas dúvidas.',
gancho:'Todas as suas dúvidas sobre {tema} respondidas aqui 👇',
corpo:['❓ Preciso de CNPJ para começar? Para começar pequeno, muitas pessoas começam sem, mas vale se informar sobre a sua situação.','❓ Preciso aparecer no vídeo? Não, dá para vender sem mostrar o rosto.','❓ Quanto custa começar? Dá para começar com pouco e crescer aos poucos.','❓ Qual a melhor forma de divulgar? Conteúdo no Instagram e WhatsApp são ótimos pontos de partida.']}
]};
var CTA={
vender:['Quer começar agora? Clica no link da bio e garanta o seu 💜','Comenta "EU QUERO" que te envio todos os detalhes no direct 📩','Corre no link da bio, as vagas e o valor especial são por tempo limitado ⏳'],
engajar:['Comenta aqui o que você achou, eu leio todos 💬','Salva esse post e compartilha com uma amiga que precisa ver 💜','Me conta nos comentários: qual a sua maior dúvida sobre esse assunto?'],
autoridade:['Salva esse conteúdo para consultar sempre que precisar 📌','Segue o perfil para receber mais conteúdos como esse toda semana ✨','Quer que eu aprofunde esse tema? Comenta "MAIS" que eu faço um conteúdo completo'],
atrair:['Segue o perfil para não perder os próximos conteúdos 💜','Marca uma amiga que precisa ver isso 👭','Ativa o sininho e acompanha nos stories todos os dias 🔔']
};
var HASHTAGS={
marketing:'#marketingdigital #marketingdeconteudo #infoprodutos #estrategiadeconteudo #conteudoquevende #empreendedorasdigitais #socialmedia #instagramparanegocios',
renda:'#rendaextra #rendaextraonline #trabalharemcasa #produtosdigitais #empreendedorismofeminino #ganhardinheironainternet #mulheresempreendedoras #negociodigital'
};
/* ---------- Funções ---------- */
function embaralhar(a){var b=a.slice(),i,j,t;for(i=b.length-1;i>0;i–){j=Math.floor(Math.random()*(i+1));t=b[i];b[i]=b[j];b[j]=t}return b}
function preencher(txt,tema,publico){return txt.replace(/\{tema\}/g,tema).replace(/\{publico\}/g,publico)}
function el(tag,cls,txt){var e=document.createElement(tag);if(cls){e.className=cls}if(txt!==undefined){e.textContent=txt}return e}
function montarLegenda(item,tema,publico,objetivo,nicho,i){
var ctas=CTA[objetivo];
var corpo=item.corpo.map(function(l){return preencher(l,tema,publico)}).join(‘\n\n’);
return preencher(item.gancho,tema,publico)+’\n\n’+corpo+’\n\n’+ctas[i%ctas.length]+’\n\n’+HASHTAGS[nicho];
}
function gerar(){
var nicho=$(‘gip-nicho’).value,objetivo=$(‘gip-objetivo’).value;
var tema=$(‘gip-tema’).value.trim()||’o seu produto digital’;
var publico=$(‘gip-publico’).value.trim()||’o seu público’;
var qtd=parseInt($(‘gip-qtd’).value,10);
var base=embaralhar(BANCO[nicho]);
var box=$(‘gip-resultado’);box.innerHTML=”;
for(var i=0;i
‘;
if ( $this->autenticado() ) {
echo $this->html_ferramenta();
} else {
echo $this->html_login();
}
echo ‘
‘;
echo ‘‘;
return ob_get_clean();
}
private function html_login() {
return ‘
Área exclusiva
Gerador de Ideias de Posts
Digite a senha para acessar a ferramenta.
Marketing de conteúdo & renda extra
Gerador de Ideias de Posts
Escolha o nicho, o objetivo e o tema. Receba ideias prontas com legenda detalhada.