Как получить данные из вебхука через форму Elementor Pro?

  • 10 августа 2023 г. 5:21
Ответы на вопрос 5
1. Перейдите в Wordpress и откройте редактор Elementor.

2. На странице или посте, где вы хотите встроить вебхук, найдите и вставьте форму Elementor.

3. Нажмите на форму, чтобы открыть её настройки.

4. В секции "Actions After Submit" (Действия после отправки формы), введите "webhook".

5. Нажимайте "Open Webhook", чтобы открыть настройки вебхука.

6. В поле "Webhook" введите URL вебхука, т.е. адрес, на который будут отправляться данные.

7. Нажмите "Apply" (Применить) или "Update" (Обновить), чтобы сохранить изменения.

8. Теперь, когда пользователь отправляет форму на вашем веб-сайте, данные формы будут автоматически отправляться на указанный вами вебхук. 

Важно: данные будут отправлены в формате JSON через POST-запрос. Убедитесь, что ваш вебхук сможет принять и обработать этот формат данных.
Webhook Solution:Webhook =http://scripts/webhookformtg.php

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $encodedData = file_get_contents('php://input');
}

If you are interested in sending leads from the Elementor Pro Form to Telegram:

getWebhookUpdates();
$result = json_decode($result, true);

$callback_data = $result['callback_query']['data'];
$callback_id = $result['callback_query']['message']['chat']['id'];
$callback_message_text = $result['callback_query']['message']['text'];
$callback_message_id = $result['callback_query']['message']['message_id'];
$callback_from = $result['callback_query']['from']['first_name'];
$text_message = $result['message']['text'];

// Intercepting data from the webhook
if ($_SERVER['REQUEST_METHOD'] === 'POST') { 
    $encodedData = file_get_contents('php://input');
} 

// Function to decode data received from the webhook
function decodeData($encodedData) { 
    $decodedData = [];
    parse_str(urldecode($encodedData), $decodedData);
    return $decodedData;
}

// Decoding data received from the webhook
$decodedData = decodeData($encodedData);

// Empty array to store data
$dataArray = []; 

// Iterating over the decoded data and storing it in the array with keys
foreach ($decodedData as $key => $value) {
    $dataArray[$key] = $value; 
}

// Text/headings
$form       = "Form:   ";
$comment    = "Comment:   ";
$name       = "\nName:   ";
$number      = "Phone number:   ";

// Array with data from the webhook
$arr = array(
    $form => "Eagleway",
    $comment => $dataArray["Additional_questions"],
    $name => $dataArray["Your_name"],
    $number =>  $dataArray["Your_phone_number"]. "\n",
);

// Gathering text 
foreach ($arr as $key => $value) {
    if ($key == " ") {
        $txt .= " " . $key . " " . $value . "" . "\n";
    } else {
        $txt .= "" . $key . " " . $value . "" . "\n";
    }
};

// Sending the message
$telegram->sendMessage([
    'chat_id' => $chat_id,
    'text' => $txt,
    'parse_mode' => 'html']);
Если метод запроса равен 'GET', то также можно использовать следующий код для получения данных из переменных $_REQUEST:

```
$deal_tel = isset($_REQUEST['tel']) ? $_REQUEST['tel'] : '';
$deal_name = isset($_REQUEST['name']) ? $_REQUEST['name'] : '';
$deal_vopros = isset($_REQUEST['vopros']) ? $_REQUEST['vopros'] : '';
```
Если метод запроса является 'GET', то можно использовать следующий код для проверки наличия данных в переменных $_REQUEST:
```
$deal_tel = isset($_REQUEST['tel']) ? $_REQUEST['tel'] : '';
$deal_name = isset($_REQUEST['name']) ? $_REQUEST['name'] : '';
$deal_vopros = isset($_REQUEST['vopros']) ? $_REQUEST['vopros'] : '';
```
Если метод запроса равен 'GET', то можно использовать следующий код для получения данных из переменных $_REQUEST:

```
$deal_tel = isset($_REQUEST['tel']) ? $_REQUEST['tel'] : '';
$deal_name = isset($_REQUEST['name']) ? $_REQUEST['name'] : '';
$deal_vopros = isset($_REQUEST['vopros']) ? $_REQUEST['vopros'] : '';
```
Похожие вопросы