Skip to content

Instantly share code, notes, and snippets.

@thiesen
Created September 11, 2014 21:40
Show Gist options
  • Save thiesen/08bd9df5411c294ce4b9 to your computer and use it in GitHub Desktop.
Save thiesen/08bd9df5411c294ce4b9 to your computer and use it in GitHub Desktop.

Revisions

  1. Nathan Thiesen revised this gist Sep 11, 2014. 1 changed file with 0 additions and 2 deletions.
    2 changes: 0 additions & 2 deletions index.markdown
    Original file line number Diff line number Diff line change
    @@ -41,7 +41,6 @@ Para enviar os dados do formulário para o RD Station, insira o código abaixo n
    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
    <?php
    /**
    * RD Station - Integrações
    * addLeadConversionToRdstationCrm()
    @@ -89,7 +88,6 @@ function addLeadConversionToRdstationCrmViaWpCf7( $cf7 ) {
    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
  2. @pedrobachiega pedrobachiega revised this gist Apr 23, 2013. 1 changed file with 3 additions and 2 deletions.
    5 changes: 3 additions & 2 deletions index.markdown
    Original file line number Diff line number Diff line change
    @@ -58,13 +58,14 @@ function addLeadConversionToRdstationCrm( $rdstation_token, $identifier, $data_a
    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["_wpcf7_is_ajax_call"], $data_array["your-email"]);

    if ( !empty($data_array["token_rdstation"]) && !( empty($data_array["email"]) && empty($data_array["email_lead"]) && empty($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);
  3. @pedrobachiega pedrobachiega revised this gist Mar 20, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion index.markdown
    Original file line number Diff line number Diff line change
    @@ -11,7 +11,7 @@ Se você ainda não tem tanta familiaridade com o plugin Contact Form 7, veja al

    ### Criar ou configurar formulários do Contact Form 7

    Quando for criar um formulário, 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:
    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:

    ```HTML
    <p>Seu email (obrigatório) [email* email]</p>
  4. @pedrobachiega pedrobachiega revised this gist Mar 20, 2013. 1 changed file with 6 additions and 0 deletions.
    6 changes: 6 additions & 0 deletions index.markdown
    Original file line number Diff line number Diff line change
    @@ -3,6 +3,12 @@

    Para as pessoas que usam o Wordpress como ferramenta de gerenciamento de conteúdo do seu site, e também a facilidade do plugin Contact Form 7 para criar formulários, a integração com RD Station fica bem simples.

    ### Ainda não conhece o Contact Form 7

    Se você ainda não tem tanta familiaridade com o plugin Contact Form 7, veja alguns tutoriais:
    [http://www.webmaster.pt/como-criar-formulario-wordpress-contact-form-7-parte1-12914.html#post-12914](http://www.webmaster.pt/como-criar-formulario-wordpress-contact-form-7-parte1-12914.html#post-12914)
    [http://www.comocriarmeusite.com.br/wordpress-2/formulario-de-contato-no-wordpress-contact-form-7/#middle-post](http://www.comocriarmeusite.com.br/wordpress-2/formulario-de-contato-no-wordpress-contact-form-7/#middle-post)

    ### Criar ou configurar formulários do Contact Form 7

    Quando for criar um formulário, 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:
  5. @pedrobachiega pedrobachiega revised this gist Nov 23, 2012. 1 changed file with 0 additions and 2 deletions.
    2 changes: 0 additions & 2 deletions index.markdown
    Original file line number Diff line number Diff line change
    @@ -79,8 +79,6 @@ function addLeadConversionToRdstationCrm( $rdstation_token, $identifier, $data_a
    function addLeadConversionToRdstationCrmViaWpCf7( $cf7 ) {
    $token_rdstation = "SEU_TOKEN_RDSTATION_AQUI";
    $form_data = $cf7->posted_data;
    $form_data["email"] = $form_data["your-email"];
    $form_data["nome"] = $form_data["your-name"];
    addLeadConversionToRdstationCrm($token_rdstation, null, $form_data);
    }
    add_action('wpcf7_mail_sent', 'addLeadConversionToRdstationCrmViaWpCf7');
  6. @pedrobachiega pedrobachiega revised this gist Nov 14, 2012. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion index.markdown
    Original file line number Diff line number Diff line change
    @@ -58,7 +58,7 @@ function addLeadConversionToRdstationCrm( $rdstation_token, $identifier, $data_a
    $data_array["_wpcf7_version"], $data_array["_wpcf7_unit_tag"], $data_array["_wpnonce"],
    $data_array["_wpcf7_is_ajax_call"]);

    if ( !empty($data_array["token_rdstation"]) && !( empty($data_array["email"]) && empty($data_array["email_lead"]) ) ) {
    if ( !empty($data_array["token_rdstation"]) && !( empty($data_array["email"]) && empty($data_array["email_lead"]) && empty($data_array["your-email"]) ) ) {
    $data_query = http_build_query($data_array);
    if (in_array ('curl', get_loaded_extensions())) {
    $ch = curl_init($api_url);
    @@ -79,6 +79,8 @@ function addLeadConversionToRdstationCrm( $rdstation_token, $identifier, $data_a
    function addLeadConversionToRdstationCrmViaWpCf7( $cf7 ) {
    $token_rdstation = "SEU_TOKEN_RDSTATION_AQUI";
    $form_data = $cf7->posted_data;
    $form_data["email"] = $form_data["your-email"];
    $form_data["nome"] = $form_data["your-name"];
    addLeadConversionToRdstationCrm($token_rdstation, null, $form_data);
    }
    add_action('wpcf7_mail_sent', 'addLeadConversionToRdstationCrmViaWpCf7');
  7. @pedrobachiega pedrobachiega revised this gist Oct 29, 2012. 1 changed file with 0 additions and 2 deletions.
    2 changes: 0 additions & 2 deletions index.markdown
    Original file line number Diff line number Diff line change
    @@ -28,8 +28,6 @@ function read_cookie(a){var b=a+"=";var c=document.cookie.split(";");for(var d=0
    </script>
    ```

    > Perceba que estamos usando uma classe CSS <em>hidden</em> que esconde os campos (ou use uma extensão do Contact Form 7 que faz isso http://wordpress.org/extend/plugins/contact-form-7-modules/ ).
    ### Editar tema

    Para enviar os dados do formulário para o RD Station, insira o código abaixo no final do arquivo <code>functions.php</code> do seu tema do Wordpress.
  8. @pedrobachiega pedrobachiega revised this gist Oct 29, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion index.markdown
    Original file line number Diff line number Diff line change
    @@ -81,7 +81,7 @@ function addLeadConversionToRdstationCrm( $rdstation_token, $identifier, $data_a
    function addLeadConversionToRdstationCrmViaWpCf7( $cf7 ) {
    $token_rdstation = "SEU_TOKEN_RDSTATION_AQUI";
    $form_data = $cf7->posted_data;
    addLeadConversionToRdstationCrm($token_rdstation, nil, $form_data);
    addLeadConversionToRdstationCrm($token_rdstation, null, $form_data);
    }
    add_action('wpcf7_mail_sent', 'addLeadConversionToRdstationCrmViaWpCf7');
    ?>
  9. @pedrobachiega pedrobachiega revised this gist Oct 29, 2012. 1 changed file with 39 additions and 45 deletions.
    84 changes: 39 additions & 45 deletions index.markdown
    Original file line number Diff line number Diff line change
    @@ -40,40 +40,50 @@ Antes de salvar, é preciso alterar o código inserindo o token RD Station de su
    <?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 addLeadConversionToRdstationCrmViaWpCf7WithCurl( $cf7 ) {
    try {
    $token_rdstation = "SEU_TOKEN_RDSTATION_AQUI";
    $data_array = $cf7->posted_data;
    unset($data_array["_wpcf7"], $data_array["_wpcf7_version"], $data_array["_wpcf7_unit_tag"], $data_array["_wpnonce"], $data_array["_wpcf7_is_ajax_call"]);
    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["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"]);

    if ( !empty($data_array["token_rdstation"]) && !( empty($data_array["email"]) && empty($data_array["email_lead"]) ) ) {
    $data_query = http_build_query($data_array);

    if ( !empty($data_array["identificador"]) && !(empty($data_array["email"]) && empty($data_array["email_lead"])) ) {
    $postparams = 'token_rdstation=' . urlencode($token_rdstation) . '&' . $data_query;
    $ch = curl_init("https://www.rdstation.com.br/api/1.2/conversions");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postparams);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1 );
    curl_exec($ch);
    curl_close($ch);
    }
    } catch (Exception $e) { }
    }
    function addLeadConversionToRdstationCrmViaWpCf7WithFopen( $cf7 ) {
    try {
    $token_rdstation = "SEU_TOKEN_RDSTATION_AQUI";
    $data_array = $cf7->posted_data;
    unset($data_array["_wpcf7"], $data_array["_wpcf7_version"], $data_array["_wpcf7_unit_tag"], $data_array["_wpnonce"], $data_array["_wpcf7_is_ajax_call"]);
    $data_query = http_build_query($data_array);

    if ( !empty($data_array["identificador"]) && !(empty($data_array["email"]) && empty($data_array["email_lead"])) ) {
    $params = array('http' => array('method' => 'POST', 'content' => ('token_rdstation=' . urlencode($token_rdstation) . '&' . $data_query), 'ignore_errors' => true));
    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("https://www.rdstation.com.br/api/1.2/conversions", 'rb', false, $ctx);
    $fp = @fopen($api_url, 'rb', false, $ctx);
    }
    } catch (Exception $e) { }
    }
    } catch (Exception $e) { }
    }
    function addLeadConversionToRdstationCrmViaWpCf7( $cf7 ) {
    $token_rdstation = "SEU_TOKEN_RDSTATION_AQUI";
    $form_data = $cf7->posted_data;
    addLeadConversionToRdstationCrm($token_rdstation, nil, $form_data);
    }
    add_action('wpcf7_mail_sent', 'addLeadConversionToRdstationCrmViaWpCf7WithCurl');
    add_action('wpcf7_mail_sent', 'addLeadConversionToRdstationCrmViaWpCf7');
    ?>
    ```

    @@ -84,22 +94,6 @@ add_action('wpcf7_mail_sent', 'addLeadConversionToRdstationCrmViaWpCf7WithCurl')
    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

    ### cURL ou fopen

    Existem duas funções prontas para fazer a integração. A mais recomendada (e padrão) é a que utiliza a biblioteca cURL.
    Se seu servidor não possui cURL instalado, pode usar a função que utiliza fopen mudando a última linha para:
    ```PHP
    add_action('wpcf7_mail_sent', 'addLeadConversionToRdstationCrmViaWpCf7WithFopen');
    ```

    ### Uso de HTTPS

    As requisições são feitas via conexão segura HTTPS, mas caso esteja tendo problemas para usar a conexão segura, pode-se usar somente HTTP que também é suportado.
    Basta apenas mudar o endereço da API para:
    ```PHP
    $ch = curl_init("http://www.rdstation.com.br/api/1.2/conversions");
    ```

    ### Erros

    A API pode retornar erro caso:
  10. @pedrobachiega pedrobachiega revised this gist Oct 16, 2012. 1 changed file with 6 additions and 4 deletions.
    10 changes: 6 additions & 4 deletions index.markdown
    Original file line number Diff line number Diff line change
    @@ -19,8 +19,10 @@ Quando for criar um formulário, eu editar algum, é preciso padronizar os mesmo
    É 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):

    ```HTML
    [text identificador class:hidden "pagina contato"]
    [text c_utmz id:cookieutmz class:hidden ""]
    <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>
    @@ -48,7 +50,7 @@ function addLeadConversionToRdstationCrmViaWpCf7WithCurl( $cf7 ) {

    if ( !empty($data_array["identificador"]) && !(empty($data_array["email"]) && empty($data_array["email_lead"])) ) {
    $postparams = 'token_rdstation=' . urlencode($token_rdstation) . '&' . $data_query;
    $ch = curl_init("https://staging.rdstation.com.br/api/1.2/conversions");
    $ch = curl_init("https://www.rdstation.com.br/api/1.2/conversions");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postparams);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1 );
    @@ -67,7 +69,7 @@ function addLeadConversionToRdstationCrmViaWpCf7WithFopen( $cf7 ) {
    if ( !empty($data_array["identificador"]) && !(empty($data_array["email"]) && empty($data_array["email_lead"])) ) {
    $params = array('http' => array('method' => 'POST', 'content' => ('token_rdstation=' . urlencode($token_rdstation) . '&' . $data_query), 'ignore_errors' => true));
    $ctx = stream_context_create($params);
    $fp = @fopen("https://staging.rdstation.com.br/api/1.2/conversions", 'rb', false, $ctx);
    $fp = @fopen("https://www.rdstation.com.br/api/1.2/conversions", 'rb', false, $ctx);
    }
    } catch (Exception $e) { }
    }
  11. @pedrobachiega pedrobachiega revised this gist Oct 4, 2012. 1 changed file with 31 additions and 15 deletions.
    46 changes: 31 additions & 15 deletions index.markdown
    Original file line number Diff line number Diff line change
    @@ -38,23 +38,17 @@ Antes de salvar, é preciso alterar o código inserindo o token RD Station de su
    <?php
    /**
    * RD Station - Integrações
    * addLeadConversionToRdstationCrmViaWpCf7()
    * Envio de dados para a API de leads do RD Station
    */
    function addLeadConversionToRdstationCrmViaWpCf7( $cf7 ) {
    function addLeadConversionToRdstationCrmViaWpCf7WithCurl( $cf7 ) {
    try {
    $token_rdstation = "SEU_TOKEN_RDSTATION_AQUI";
    $identificador = $cf7->posted_data["identificador"];
    $lead_email = $cf7->posted_data["email"];
    $lead_nome = $cf7->posted_data["nome"];
    $lead_empresa = $cf7->posted_data["empresa"];
    $lead_cargo = $cf7->posted_data["cargo"];
    $lead_telefone = $cf7->posted_data["telefone"];
    $c_utmz = $cf7->posted_data["c_utmz"];

    if ( !empty($identificador) && !empty($lead_email) ) {
    $postparams = 'token_rdstation=' . urlencode($token_rdstation) . '&identificador=' . urlencode($identificador) . '&email_lead=' . urlencode($lead_email) . '&nome=' . urlencode($lead_nome) . '&empresa=' . urlencode($lead_empresa) . '&cargo=' . urlencode($lead_cargo) . '&telefone=' . urlencode($lead_telefone) . '&c_utmz=' . urlencode($c_utmz);
    $ch = curl_init("https://www.rdstation.com.br/api/1.2/conversions");
    $data_array = $cf7->posted_data;
    unset($data_array["_wpcf7"], $data_array["_wpcf7_version"], $data_array["_wpcf7_unit_tag"], $data_array["_wpnonce"], $data_array["_wpcf7_is_ajax_call"]);
    $data_query = http_build_query($data_array);

    if ( !empty($data_array["identificador"]) && !(empty($data_array["email"]) && empty($data_array["email_lead"])) ) {
    $postparams = 'token_rdstation=' . urlencode($token_rdstation) . '&' . $data_query;
    $ch = curl_init("https://staging.rdstation.com.br/api/1.2/conversions");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postparams);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1 );
    @@ -63,7 +57,21 @@ function addLeadConversionToRdstationCrmViaWpCf7( $cf7 ) {
    }
    } catch (Exception $e) { }
    }
    add_action('wpcf7_mail_sent', 'addLeadConversionToRdstationCrmViaWpCf7');
    function addLeadConversionToRdstationCrmViaWpCf7WithFopen( $cf7 ) {
    try {
    $token_rdstation = "SEU_TOKEN_RDSTATION_AQUI";
    $data_array = $cf7->posted_data;
    unset($data_array["_wpcf7"], $data_array["_wpcf7_version"], $data_array["_wpcf7_unit_tag"], $data_array["_wpnonce"], $data_array["_wpcf7_is_ajax_call"]);
    $data_query = http_build_query($data_array);

    if ( !empty($data_array["identificador"]) && !(empty($data_array["email"]) && empty($data_array["email_lead"])) ) {
    $params = array('http' => array('method' => 'POST', 'content' => ('token_rdstation=' . urlencode($token_rdstation) . '&' . $data_query), 'ignore_errors' => true));
    $ctx = stream_context_create($params);
    $fp = @fopen("https://staging.rdstation.com.br/api/1.2/conversions", 'rb', false, $ctx);
    }
    } catch (Exception $e) { }
    }
    add_action('wpcf7_mail_sent', 'addLeadConversionToRdstationCrmViaWpCf7WithCurl');
    ?>
    ```

    @@ -74,6 +82,14 @@ add_action('wpcf7_mail_sent', 'addLeadConversionToRdstationCrmViaWpCf7');
    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

    ### cURL ou fopen

    Existem duas funções prontas para fazer a integração. A mais recomendada (e padrão) é a que utiliza a biblioteca cURL.
    Se seu servidor não possui cURL instalado, pode usar a função que utiliza fopen mudando a última linha para:
    ```PHP
    add_action('wpcf7_mail_sent', 'addLeadConversionToRdstationCrmViaWpCf7WithFopen');
    ```

    ### Uso de HTTPS

    As requisições são feitas via conexão segura HTTPS, mas caso esteja tendo problemas para usar a conexão segura, pode-se usar somente HTTP que também é suportado.
  12. @pedrobachiega pedrobachiega revised this gist Aug 9, 2012. 1 changed file with 6 additions and 1 deletion.
    7 changes: 6 additions & 1 deletion index.markdown
    Original file line number Diff line number Diff line change
    @@ -69,6 +69,11 @@ add_action('wpcf7_mail_sent', 'addLeadConversionToRdstationCrmViaWpCf7');

    > É possível também inserir outros parâmetros do POST para enviar ao RD Station
    ### Avisos de conversão por email

    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

    ### Uso de HTTPS

    As requisições são feitas via conexão segura HTTPS, mas caso esteja tendo problemas para usar a conexão segura, pode-se usar somente HTTP que também é suportado.
    @@ -82,4 +87,4 @@ $ch = curl_init("http://www.rdstation.com.br/api/1.2/conversions");
    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 <strong>email</strong> ou <strong>email_lead</strong> do formulário;
    - (400) não esteja recebendo a informação <strong>email</strong> ou <strong>email_lead</strong> do formulário;
  13. @pedrobachiega pedrobachiega revised this gist Aug 6, 2012. 1 changed file with 16 additions and 1 deletion.
    17 changes: 16 additions & 1 deletion index.markdown
    Original file line number Diff line number Diff line change
    @@ -67,4 +67,19 @@ add_action('wpcf7_mail_sent', 'addLeadConversionToRdstationCrmViaWpCf7');
    ?>
    ```

    > É possível também inserir outros parâmetros do POST para enviar ao RD Station
    > É possível também inserir outros parâmetros do POST para enviar ao RD Station
    ### Uso de HTTPS

    As requisições são feitas via conexão segura HTTPS, mas caso esteja tendo problemas para usar a conexão segura, pode-se usar somente HTTP que também é suportado.
    Basta apenas mudar o endereço da API para:
    ```PHP
    $ch = curl_init("http://www.rdstation.com.br/api/1.2/conversions");
    ```

    ### Erros

    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 <strong>email</strong> ou <strong>email_lead</strong> do formulário;
  14. @pedrobachiega pedrobachiega created this gist Aug 6, 2012.
    70 changes: 70 additions & 0 deletions index.markdown
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,70 @@
    # Integrações RD Station
    ## Wordpress e Contact Form 7

    Para as pessoas que usam o Wordpress como ferramenta de gerenciamento de conteúdo do seu site, e também a facilidade do plugin Contact Form 7 para criar formulários, a integração com RD Station fica bem simples.

    ### Criar ou configurar formulários do Contact Form 7

    Quando for criar um formulário, 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:

    ```HTML
    <p>Seu email (obrigatório) [email* email]</p>
    <p>Seu nome [text nome]</p>
    ```

    É obrigatório a presença de um campo <strong>email</strong> ou <strong>email_lead</strong>.

    > É possível utilizar uma lista de outros campos já cadastrados na ferramenta de CRM do RD Station. Segue uma breve lista de opções:<ul><li>nome</li><li>telefone</li><li>empresa</li><li>cargo</li><li>twitter</li></ul>
    É 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):

    ```HTML
    [text identificador class:hidden "pagina contato"]
    [text c_utmz id:cookieutmz class:hidden ""]
    <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>
    ```

    > Perceba que estamos usando uma classe CSS <em>hidden</em> que esconde os campos (ou use uma extensão do Contact Form 7 que faz isso http://wordpress.org/extend/plugins/contact-form-7-modules/ ).
    ### Editar tema

    Para enviar os dados do formulário para o RD Station, insira o código abaixo no final do arquivo <code>functions.php</code> 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
    <?php
    /**
    * RD Station - Integrações
    * addLeadConversionToRdstationCrmViaWpCf7()
    * Envio de dados para a API de leads do RD Station
    */
    function addLeadConversionToRdstationCrmViaWpCf7( $cf7 ) {
    try {
    $token_rdstation = "SEU_TOKEN_RDSTATION_AQUI";
    $identificador = $cf7->posted_data["identificador"];
    $lead_email = $cf7->posted_data["email"];
    $lead_nome = $cf7->posted_data["nome"];
    $lead_empresa = $cf7->posted_data["empresa"];
    $lead_cargo = $cf7->posted_data["cargo"];
    $lead_telefone = $cf7->posted_data["telefone"];
    $c_utmz = $cf7->posted_data["c_utmz"];

    if ( !empty($identificador) && !empty($lead_email) ) {
    $postparams = 'token_rdstation=' . urlencode($token_rdstation) . '&identificador=' . urlencode($identificador) . '&email_lead=' . urlencode($lead_email) . '&nome=' . urlencode($lead_nome) . '&empresa=' . urlencode($lead_empresa) . '&cargo=' . urlencode($lead_cargo) . '&telefone=' . urlencode($lead_telefone) . '&c_utmz=' . urlencode($c_utmz);
    $ch = curl_init("https://www.rdstation.com.br/api/1.2/conversions");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postparams);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1 );
    curl_exec($ch);
    curl_close($ch);
    }
    } catch (Exception $e) { }
    }
    add_action('wpcf7_mail_sent', 'addLeadConversionToRdstationCrmViaWpCf7');
    ?>
    ```

    > É possível também inserir outros parâmetros do POST para enviar ao RD Station