You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Contact Form7所在页面标题并添加至Bitrix CRM的JSON记录?

获取Contact Form 7所在页面标题并同步到Bitrix CRM

要获取表单所在页面的标题并添加到同步到Bitrix的JSON数据中,你可以通过Contact Form 7的WPCF7_Submission实例拿到当前页面ID,再用WordPress内置函数提取页面标题,具体修改如下:

步骤1:获取当前页面标题

在函数中拿到提交实例后,添加代码获取页面标题:

// 获取表单所在页面的ID
$container_post_id = $submission->get_meta('container_post_id');
// 根据ID获取页面标题,兼容页面不存在的情况
$page_title = $container_post_id ? get_the_title($container_post_id) : '未知页面';

步骤2:将页面标题加入Bitrix的JSON数据

你可以选择把页面标题合并到现有字段(比如线索标题),或者单独添加到备注/自定义字段,以下是两种常用方式:

方式1:合并到线索标题

修改$queryData中的TITLE字段,将页面标题拼接进去:

"TITLE": "'.$title.' - 来自页面:'.$page_title.'"

方式2:添加到备注字段

如果Bitrix线索支持备注字段,可直接新增该字段:

"COMMENTS": "表单提交页面:'.$page_title.'"

修改后的完整代码

add_action('wpcf7_mail_sent', 'your_wpcf7_mail_sent_function');
function your_wpcf7_mail_sent_function($contact_form)
{
    // 捕获Contact Form 7的数据
    $title = $contact_form->title;

    $submission = WPCF7_Submission::get_instance();
    $posted_data = $submission->get_posted_data();
    $firstName = $posted_data['your-name'];
    $yourEmail = $posted_data['your-email'];
    $yourPhone = $posted_data['your-phone'];

    // 获取表单所在页面的标题
    $container_post_id = $submission->get_meta('container_post_id');
    $page_title = $container_post_id ? get_the_title($container_post_id) : '未知页面';

    $queryUrl = 'https://****.bitrix24.eu/***/crm.lead.add';
    // 合并页面标题到线索标题,并添加备注字段
    $queryData = '{"fields":{"TITLE": "'.$title.' - 来自页面:'.$page_title.'","NAME": "'.$firstName.'", "STATUS_ID": "NEW", "OPENED": "Y", "PHONE": [ { "VALUE": "'.$yourPhone.'", "VALUE_TYPE": "WORK" } ],"EMAIL": [ { "VALUE": "'.$yourEmail.'", "VALUE_TYPE": "WORK" } ],"SOURCE_ID": "WEB", "COMMENTS": "提交页面:'.$page_title.'"},"params": { "REGISTER_SONET_EVENT": "Y" }}';
    if($yourEmail == null || $yourEmail == ''){
        $queryData = '{"fields":{"TITLE": "'.$title.' - 来自页面:'.$page_title.'","NAME": "'.$firstName.'", "STATUS_ID": "NEW", "OPENED": "Y", "PHONE": [ { "VALUE": "'.$yourPhone.'", "VALUE_TYPE": "WORK" } ],"SOURCE_ID": "WEB", "COMMENTS": "提交页面:'.$page_title.'"},"params": { "REGISTER_SONET_EVENT": "Y" }}';
    }
    $curl = curl_init();
    curl_setopt_array($curl, array(
        CURLOPT_URL => $queryUrl, // 复用变量避免重复写死链接
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => $queryData,
        CURLOPT_HTTPHEADER => array(
            'Content-Type: application/json'
        ),
    ));

    $response = curl_exec($curl);
    curl_close($curl);

    $result = json_decode($response, 1);
    if (array_key_exists('error', $result)) echo "保存线索错误:" .$result['error_description'] ."<br/>";
}

注意事项

  • 若要将页面标题存入Bitrix自定义字段,需替换对应字段名(如UF_PAGE_TITLE),确保该字段已在Bitrix CRM中创建并启用。
  • get_meta('container_post_id')兼容单页、文章、自定义文章类型等所有页面场景。

内容的提问来源于stack exchange,提问作者dintro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 19:07:31