【问题标题】:Why is HubSpot Autogenerating Forms?为什么 HubSpot 自动生成表单?
【发布时间】: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 自动生成这些表单?否则,我的表单框很快就会被数百个自动生成的表单填满,我将不得不一直删除这些表单。需要注意的是:我为此目的创建的实际表单位于文件夹中,而自动生成的表单始终位于任何文件夹之外,如果这有什么不同的话。

【问题讨论】:

  • 我考虑过,可能是这种情况,但它正在记录我创建的表单的提交,所以它正在找到该表单并完全按照它应该做的事情;它只是每次都在侧面创建这种新形式。是的,我检查了常量是否包含正确的值。据我所知,一切似乎都井井有条。

标签: php forms api hubspot


【解决方案1】:

发现问题:客户已在其设置中启用了非 HubSpot 表单的使用,因此修复它所需要做的只是关闭此功能。文档在这里:

https://knowledge.hubspot.com/forms/use-non-hubspot-forms

设置位于

设置 -> 营销 -> 表单 -> 非 HubSpot 表单

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-03
    • 2015-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多