O Contact Form 7 é um dos plugins de formulário mais populares do Wordpress. A SharpSpring só pode integrar-se ao Contact Form 7 4.8 ou superior.
Se você estiver usando uma versão anterior, atualize para a versão mais recente do Contact Form 7 antes da integração com a SharpSpring.
Este artigo detalha como integrar um formulário do Contact Form 7 na SharpSpring com .PHP.
Usuários com acesso:
- Administradores
- Gerentes de Empresa
- Gerentes de Marketing
Usando estas Informações
Este artigo detalha um método para conectar os formulários do Contact Form 7 usando o código .PHP. Ao usar esse método, o código do formulário nativo não deve estar na página com o formulário, pois tudo será feito a partir do código .PHP.
Se o código de incorporação do formulário nativo tiver sido colocado anteriormente para o formulário, ele deverá ser removido.
O .PHP detalhado aqui pode ser adicionado ao seu arquivo functions.php no Wordpress. Alguns temas podem solicitar que você coloque seu código personalizado em outro lugar em outro arquivo .PHP.
Enquanto você pode colocá-lo lá, não deixe de testá-lo diretamente de functions.php se houver algum problema, pois a compatibilidade em outros arquivos pode variar com base no seu tema do Wordpress ou em outros plugins.
Notas:
- Antes de seguir os procedimentos deste artigo, tente integrar o Contact Form por meio de JavaScript. Use este método de integração se esse método não funcionar para você.
- A SharpSpring oferece serviços profissionais para ajudar na codificação personalizada.
Antes de começar a integrar
Alguns temas do Wordpress podem ocultar o acesso ao arquivo functions.php. O arquivo functions.php também pode ser acessado usando FTP. Entre em contato com o administrador do site se você não ver o arquivo functions.php.
Além disso, o acesso ao FTP é recomendado caso o arquivo functions.php precise ser revertido, pois o código incorreto aqui pode tornar o site inacessível, exceto pelo FTP. Preste muita atenção ao código que você adiciona ao functions.php. Se você adicionar um código incorreto, poderá ficar bloqueado na sua conta do Wordpress.
Crie um backup do seu functions.php atual antes de fazer essas alterações e esteja preparado para substituí-lo via FTP, se necessário.
Obtendo Informações do Formulário Nativo
Antes de começar a integrar o Contact Form 7 com a SharpSpring, você precisará obter determinadas informações de formulário. Para obter as informações necessárias do formulário, faça o seguinte:
-
Em uma aba do navegador, efetue login na SharpSpring.
-
Na barra de ferramentas superior da SharpSpring, clique em Conteúdo > Formulários.
-
Na janela exibida, revise o código incorporado JavaScript gerado.
-
Mantenha essa aba do navegador aberta.
Importante: não feche a janela modal do código incorporado ou a aba do navegador. Você precisará dessas informações.
Exemplo de Código Incorporado de Formulário Nativo
Depois que o formulário nativo é criado, ele exibe um bloco de código. O código é diferente para cada formulário nativo criado. O código exibido é semelhante ao seguinte exemplo:
<script type="text/javascript">
var __ss_noform = __ss_noform || [];
__ss_noform.push(['baseURI', 'https://app-XXXXXXXXXX.marketingautomation.services/webforms/receivePostback/MzYwN7EwMzcyAgA/']);
__ss_noform.push(['endpoint', '30e3bbfe-a5e7-4207-9237-e9f9e2ff80e9'])
</script>
<script type="text/javascript" src="https://koi-XXXXXXXXXX.marketingautomation.services/client/noform.js?ver=1.24" ></script>
Preparando o Arquivo .PHP
Antes de fazer qualquer coisa específica ao seu formulário, você precisará fazer modificações no seu arquivo functions.php no Wordpress. Para modificar o arquivo functions.php, faça o seguinte:
-
Em outra aba do navegador, faça login no Wordpress.
-
No menu esquerdo, em Aparência, clique em Editor.
-
No menu à direita, abra o arquivo functions.php.
-
Adicione o seguinte código na parte inferior do arquivo:
function submitToSharpSpring($data, $baseURI, $endPoint) {
$params = '';
foreach($data as $key => $value) {
if(!is_array($value)) {
$params = $params . $key . '=' . urlencode($value) . "&";
}
else {
$params = $params . $key . '=' . urlencode(implode(',',$value)) . "&";
}
}
if (isset($_COOKIE['__ss_tk'])) {
$trackingid__sb = $_COOKIE['__ss_tk'];
$params = $params . "trackingid__sb=" . urlencode($trackingid__sb);
}
// Preparar URL
$ssRequest = $baseURI . $endPoint . "/jsonp/?" . $params;
// Enviar solicitação
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $ssRequest);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
ob_start();
var_dump($data);
$data_dump = ob_get_clean();
curl_close($ch);
}
5. Insira o seguinte código diretamente abaixo do bloco de código acima:
add_action( 'wpcf7_before_send_mail', function ($cf7) {
// O código único de cada formulário seu vai aqui!
});
6. Cole o seguinte código abaixo da linha O código único de cada formulário seu vai aqui!
e acima da linha de fechamento });
:
if ($_POST['_wpcf7'] == Your Form ID){
$baseURI = 'your baseURI';
$endpoint = 'your endpoint';
submitToSharpSpring($_POST, $baseURI, $endpoint);
}
// Para conectar outro formulário, insira seu código abaixo deste.
Adicionando Formulários Adicionais
Para adicionar formulários adicionais, repita a Etapa 6 acima. Ao fazer isso, adicione cada bloco de código abaixo do final do código acima antes dele. O código deve ser adicionado logo abaixo do comentário que diz:
Para conectar outro formulário, insira seu código abaixo deste.
Esteja ciente de que o seu baseURI
será o mesmo para todos os formulários em uma instância da SharpSpring.
Adicionando Códigos Únicos aos Formulários
Depois que o arquivo functions.php for modificado, você poderá começar a adicionar códigos únicos a formulários individuais.
Isso só precisa ser feito uma vez para cada formulário do Contact Form 7, independentemente de quantas páginas ele exista.
Para adicionar códigos únicos aos formulários, faça o seguinte:
-
Na aba da SharpSpring com o código incorporado do Formulário Nativo, localize a linha que contém o endereço que acompanha o baseURI.
No exemplo acima, o endereço da web é:https://app-XXXXXXXXXX.marketingautomation.services/webforms/receivePostback/MzYwN7EwMzcyAgA/
-
Copie o endereço da web, incluindo a última barra.
-
Na aba do functions.php do Wordpress, substitua o
seu baseURI
com o endereço da webbaseURI
copiado. Este deve permanecer com aspas únicas. -
Na aba da SharpSpring com o código incorporado do Formulário Nativo, localize a linha que contem um valor alfanumérico que acompanha o
endpoint
.
No exemplo acima, o valor alfanumérico é:30e3bbfe-a5e7-4207-9237-e9f9e2ff80e9
-
Copie o valor.
-
Na aba do functions.php do Wordpress, substitua o seu valor de
endpoint
com o valor deendpoint
copiado. Este deve permanecer em aspas únicas. -
Na aba do functions.php do Wordpress, localize o valor do
Form ID
dentro do Short Code do Contact Form 7.
No seguinte exemplo, o valor doForm ID
é533
:[contact-form-7 id="533" title="php cf7 test"]
-
Na linha
if ($_POST
, substitua oSeu Form ID
com o número doForm ID
dentro do Short Code do Contact Form 7. Este não deve estar entre aspas. -
Salve o arquivo functions.php do Wordpress.
-
Adicione o short code do Contact Form 7 na sua página do Wordpress.
Exemplo de um Código Completo
Abaixo, segue o exemplo de um código completo que conecta dois formulários do Contact Form 7. A primeira parte do código se baseia no exemplo do código de rastreamento mostrado acima. A segunda parte do código serve para conectar um formulário com um Form ID
de 789
no Contact Form 7, mesmo utilizando valores de um código diferente.
function submitToSharpSpring($data, $baseURI, $endPoint, $track = true) {
unset($data['_wpcf7']);
unset($data['_wpcf7_version']);
unset($data['_wpcf7_locale']);
unset($data['_wpcf7_unit_tag']);
unset($data['_wpcf7_container_post']);
$params = '';
foreach($data as $key => $value) {
if(!is_array($value)) {
$params = $params . $key . '=' . urlencode($value) . "&";
}
else {
$params = $params . $key . '=' . urlencode(implode(',',$value)) . "&";
}
}
if (isset($_COOKIE['__ss_tk'])) {
$trackingid__sb = $_COOKIE['__ss_tk'];
$params = $params . "trackingid__sb=" . urlencode($trackingid__sb);
}
$sharpReq = $baseURI . $endPoint . "/jsonp/?" . $params;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $sharpReq);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
ob_start();
var_dump($data);
$data_dump = ob_get_clean();
curl_close($ch);
}
add_action( 'wpcf7_before_send_mail', function ($cf7) {
$baseURI = 'https://app-XXXXXXXXXX.marketingautomation.services/webforms/receivePostback/MzYwN7EwMzcyAgA/';
if ($_POST['_wpcf7'] == 533) {
$baseURI = 'your base URI';
$endpoint = '30e3bbfe-a5e7-4207-9237-e9f9e2ff80e9';
submitToSharpSpring($_POST, $baseURI, $endpoint);
}
// Para conectar outro formulário, insira seu código abaixo deste!
if ($_POST['_wpcf7'] == 789) {
$baseURI = 'https://app-XXXXXXXXXX.marketingautomation.services/webforms/receivePostback/MzYwN7EwMzcyAgA/';
$endpoint = '1234567-a5e7-bfe3-abcd-a956ae605b';
submitToSharpSpring($_POST, $baseURI, $endpoint);
}
// Para conectar outro formulário, insira seu código abaixo deste!
});
Comentários
0 comentário
Artigo fechado para comentários.