获取页面标题并添加到记录

问题描述 投票:0回答:1

我使用此代码作为 webhook 将 WordPress 中的 Contact Form 7 与 Bitrix CRM 集成。但我还需要获取表单所在的当前页面标题并将其添加到 JSON 记录中。我怎样才能做到?

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;
//    $posted_data = $contact_form->posted_data;

    $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'];

    $queryUrl = 'https://****.bitrix24.eu/***/crm.lead.add';
    $queryData = '{"fields":{"TITLE": "'.$title.'","NAME": "'.$firstName.'", "STATUS_ID": "NEW", "OPENED": "Y", "PHONE": [ { "VALUE": "'.$yourPhone.'", "VALUE_TYPE": "WORK" } ],"EMAIL": [ { "VALUE": "'.$yourEmail.'", "VALUE_TYPE": "WORK" } ],"SOURCE_ID": "WEB"},"params": { "REGISTER_SONET_EVENT": "Y" }}';
    if($yourEmail == null || $yourEmail == ''){
        $queryData = '{"fields":{"TITLE": "'.$title.'","NAME": "'.$firstName.'", "STATUS_ID": "NEW", "OPENED": "Y", "PHONE": [ { "VALUE": "'.$yourPhone.'", "VALUE_TYPE": "WORK" } ],"SOURCE_ID": "WEB"},"params": { "REGISTER_SONET_EVENT": "Y" }}';
    }
    $curl = curl_init();
    curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://****.bitrix24.eu/***/crm.lead.add',
        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);
//    echo $response;
//    if (array_key_exists('error', $response)) echo "Ошибка при сохранении лида: " . $response['error_description'] . "<br/>";

    $result = json_decode($response, 1);
    if (array_key_exists('error', $result)) echo "Ошибка при сохранении лида: ".$result['error_description']."<br/>";

}
wordpress bitrix
1个回答
0
投票

您可以在Cf7中使用包含多种信息的特殊标签,您可以在这里找到另一个类似的问题:如何通过联系表7获取帖子标题以及此处的官方文档:https://contactform7.com/special-mail -标签/

这些可以在您的表单电子邮件内容中使用,并将在您发送电子邮件时根据实际价值进行评估。

在您的情况下,将它们添加到电子邮件正文中将不起作用,因此您需要使用插件:https://wordpress.org/plugins/contact-form-7-dynamic-text-extension/#description

它有很多功能,但您正在搜索的功能是添加以下功能:

[dynamic_hidden my_post_title "CF7_get_current_var key='title'"]

这必须放置在联系表单正文内,并将在页面 HTML 内添加一个隐藏字段。您稍后可以使用以下方式获取:

 $posted_data = $submission->get_posted_data();

$posted_data['my_post_title'] <---- this

已测试且有效

© www.soinside.com 2019 - 2024. All rights reserved.