Quando for criar um formulário no painel do plugin, eu editar algum, é preciso padronizar os mesmos tipos de input para usarem sempre os mesmos nomes (por ex.: 'email' para email, 'nome' para nome, etc), assim seu formulário ficará mais ou menos assim:
<p>Seu email (obrigatório) [email* email]</p>
<p>Seu nome [text nome]</p>
É obrigatório a presença de um campo email ou email_lead.
É possível utilizar uma lista de outros campos já cadastrados na ferramenta de CRM do RD Station. Segue uma breve lista de opções:
- nome
- telefone
- empresa
- cargo
É preciso também incluir dois novos campos para passar o identificador do formulário/página e o cookie utmz do Google Analytics (*preenchido automaticamente com um código Javascript presente também no fragmento abaixo):
<div style="display:none;">
[text identificador "pagina contato"]
[text c_utmz id:cookieutmz ""]
</div>
<script type="text/javascript">
function read_cookie(a){var b=a+"=";var c=document.cookie.split(";");for(var d=0;d<c.length;d++){var e=c[d];while(e.charAt(0)==" ")e=e.substring(1,e.length);if(e.indexOf(b)==0){return e.substring(b.length,e.length)}}return null}try{document.getElementById("cookieutmz").value=read_cookie("__utmz")}catch(err){}
</script>
Para enviar os dados do formulário para o RD Station, insira o código abaixo no final do arquivo functions.php
do seu tema do Wordpress.
Antes de salvar, é preciso alterar o código inserindo o token RD Station de sua conta (encontrado em https://www.rdstation.com.br/docs/api ).
<?php
/**
* RD Station - Integrações
* addLeadConversionToRdstationCrm()
* Envio de dados para a API de leads do RD Station
*
* Parâmetros:
* ($rdstation_token) - token da sua conta RD Station ( encontrado em https://www.rdstation.com.br/docs/api )
* ($identifier) - identificador da página ou evento ( por exemplo, 'pagina-contato' )
* ($data_array) - um Array com campos do formulário ( por exemplo, array('email' => '[email protected]', 'name' =>'Fulano') )
*/
function addLeadConversionToRdstationCrm( $rdstation_token, $identifier, $data_array ) {
$api_url = "http://www.rdstation.com.br/api/1.2/conversions";
try {
if (empty($data_array["token_rdstation"]) && !empty($rdstation_token)) { $data_array["token_rdstation"] = $rdstation_token; }
if (empty($data_array["identificador"]) && !empty($identifier)) { $data_array["identificador"] = $identifier; }
if (empty($data_array["email"])) { $data_array["email"] = $data_array["your-email"]; }
if (empty($data_array["c_utmz"])) { $data_array["c_utmz"] = $_COOKIE["__utmz"]; }
unset($data_array["password"], $data_array["password_confirmation"], $data_array["senha"],
$data_array["confirme_senha"], $data_array["captcha"], $data_array["_wpcf7"],
$data_array["_wpcf7_version"], $data_array["_wpcf7_unit_tag"], $data_array["_wpnonce"],
$data_array["_wpcf7_is_ajax_call"], $data_array["your-email"]);
if ( !empty($data_array["token_rdstation"]) && !( empty($data_array["email"]) && empty($data_array["email_lead"]) ) ) {
$data_query = http_build_query($data_array);
if (in_array ('curl', get_loaded_extensions())) {
$ch = curl_init($api_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_query);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_exec($ch);
curl_close($ch);
} else {
$params = array('http' => array('method' => 'POST', 'content' => $data_query, 'ignore_errors' => true));
$ctx = stream_context_create($params);
$fp = @fopen($api_url, 'rb', false, $ctx);
}
}
} catch (Exception $e) { }
}
function addLeadConversionToRdstationCrmViaWpCf7( $cf7 ) {
$token_rdstation = "SEU_TOKEN_RDSTATION_AQUI";
$form_data = $cf7->posted_data;
addLeadConversionToRdstationCrm($token_rdstation, null, $form_data);
}
add_action('wpcf7_mail_sent', 'addLeadConversionToRdstationCrmViaWpCf7');
?>
É possível também inserir outros parâmetros do POST para enviar ao RD Station
O RD Station pode lhe enviar um email quando uma nova conversão for realizada em seu site. Para isso, basta colocar o seu email na configuração da página da API https://www.rdstation.com.br/docs/api
A API pode retornar erro caso:
- (401) seu token RD Station esteja errado ou inválido;
- (400) não esteja recebendo um identificador;
- (400) não esteja recebendo a informação email ou email_lead do formulário;