Ilustração por https://icons8.com

post

Enviar formulário via API contact form 7 no WordPress

Publicado em: 30/03/2020

Categorias: BlogContact Form 7HTTPWordpress

É possível enviar um formulário do Contact Form 7 do WordPress sem o preenchimento pelo site, apenas usando a REST API do próprio plugin.

Para isso você deve fazer uma solicitação POST para a seguinte URL do site que usa o plugin:

https://{DOMINIO}/wp-json/contact-form-7/v1/contact-forms/{ID_FORMULARIO}/feedback

Onde {DOMINIO} é o endereço principal do seu site WordPress, e {ID_FORMULARIO} é o ID do formulario do contact form 7.

O ID do formulário pode ser obtido na listagem ou na própria pagina do mesmo, no shortcode, que tem a seguinte aparência.

Aparência do shortcode dos formulários do contact form 7 no wordpress
Aparência do shortcode dos formulários do contact form 7 no wordpress

No print acima, significa que o id destes formulários CF7 são 14 e 65 respectivamente, neste exemplo.

Para realizar o envio dos dados usando a API do plugin, segue exemplos abaixo:

Via Postman

Exemplo de preenchimento via aplicativo Postman

Via PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://{DOMINIO}/wp-json/contact-form-7/v1/contact-forms/{ID_FORMULARIO}/feedback',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => 'your-name=Bruno&your-email=bruno%40email.com&telefone=11%2090000-9999&preferencia-contato=Manda%20no%20Zap&your-subject=Teste&mensagem=Ola%2C%20mensagem%20teste',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/x-www-form-urlencoded'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Substitua também os nomes dos campos dos exemplos acima, para o nome dos campos do seu formulário.

Lembrando que, caso use o reCAPTCHA em seu formulario, pode ser que não chegue a mensagem para sua caixa de e-mail, pois pode ficar parado no spam.

Use o plugin Flamingo, para registrar todos os preenchimentos de formulários CF7 do seu site, assim poderá verificar se algum e-mail parou no spam do site antes de ser enviado para seu e-mail.

Você pode ver o artigo original que inspirou este post clicando em: https://medium.com/@mahesh_joshi/wordpress-contact-form-7-rest-api-endpoints-bf45907b571c


Link de compartilhamento

Compartilhe esse conteudo nas redes sociais ou por mensagem usando o link curto abaixo. Basta clicar em cima do link para copiar.

bruno.art.br/pb/387

ID de Referência: 387

Sugira uma publicação

Envie uma mensagem para mim, e sugira alguma publicação de algum tema que tenha dificuldades de resolver.

Clique aqui e entre em contato


Comentários