【发布时间】:2019-11-22 14:50:41
【问题描述】:
我正在使用他们的 api (https://developers.hubspot.com/docs/methods/forms/submit_form) 向 HubSpot 提交一个联系表单,效果很好,只是每次我这样做时,HubSpot 都会在其网站的 Marketing -> Forms 下自动生成一个新表单,其中包含名称如#form_5dd7ee368739f。它说这是一个非 Hubspot 形式并给出了这样的解释:
什么是非 HubSpot 表单
非 HubSpot 表单是您的 HTML 表单 不是在 HubSpot 中创建的网站。根据您的设置, 这些表格的数据会在 HubSpot 中自动收集。学习 更多。
“了解更多”不是链接;我不能点击它。 api 请求的提交记录在每次提交表单时自动生成的这个新表单中,以及我在 HubSpot 中构建的应该处理这个请求的表单中。这是我的代码:
<?php
// wp-config.php
define('HUBSPOT_PORTAL_ID', getenv('hubspot_portal_id'));
define('HUBSPOT_CONTACT_FORM_GUID', getenv('hubspot_contact_form_guid'));
define('HUBSPOT_CONTACT_FORM_ENDPOINT', "https://forms.hubspot.com/uploads/form/v2/".HUBSPOT_PORTAL_ID."/{form_guid}");
?>
<?php
// hubspot.php
function hubspot_form_submit($page_url, $page_name, $endpoint, $data) {
$hs_context = array(
'ipAddress' => $_SERVER['REMOTE_ADDR'],
'pageUrl' => $page_url,
'pageName' => $page_name,
);
if (array_key_exists('hubspotutk', $_COOKIE)) {
$hs_context['hutk'] = $_COOKIE['hubspotutk'];
}
$data['hs_context'] = $hs_context;
$data_string = "";
foreach ($data as $key => $value) {
if (is_string($value)) {
$value = urlencode($value);
}
else if (is_array($value)) {
$value = json_encode($value);
}
$data_string = $data_string.$key."=".$value."&";
}
$data = rtrim($data_string, "&");
$ch = @curl_init();
@curl_setopt($ch, CURLOPT_POST, true);
@curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
@curl_setopt($ch, CURLOPT_URL, $endpoint);
@curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/x-www-form-urlencoded'
));
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = @curl_exec($ch);
if(curl_error($ch)) {
$result = curl_error($curl);
}
$status_code = @curl_getinfo($ch, CURLINFO_HTTP_CODE);
@curl_close($ch);
return $result;
}
?>
<?php
// contact.php
require_once("inc/hubspot.php");
$hubspot_form_submission = hubspot_form_submit(
"https://www.example.com/contact/",
"Contact",
str_replace("{form_guid}", HUBSPOT_CONTACT_FORM_GUID, HUBSPOT_CONTACT_FORM_ENDPOINT),
array(
"firstname" => $form->data["first_name"],
"lastname" => $form->data["last_name"],
"email" => $form->data["email"],
"phone" => $form->data["phone"],
"preferred_contact_method" => $form->data["contact_method"],
"message" => $form->data["comments"],
)
);
?>
有谁知道如何防止 HubSpot 自动生成这些表单?否则,我的表单框很快就会被数百个自动生成的表单填满,我将不得不一直删除这些表单。需要注意的是:我为此目的创建的实际表单位于文件夹中,而自动生成的表单始终位于任何文件夹之外,如果这有什么不同的话。
【问题讨论】:
-
我考虑过,可能是这种情况,但它正在记录我创建的表单的提交,所以它正在找到该表单并完全按照它应该做的事情;它只是每次都在侧面创建这种新形式。是的,我检查了常量是否包含正确的值。据我所知,一切似乎都井井有条。