Как получить данные из формы WordPress Elementor?
Не могу понять как получить данные из формы плагина Elementor для Wordpress.
Хочу сделать привязку формы Elementor к Телеграмму через веб-хук. Данные из формы присылаются в телеграмм чат.
Пробовал получать методом $_POST - не получается. Думал встроить данные напрямую в ссылку веб-хука и получать данные через $_GET, но Elementor не позволяет динамически подставлять в веб-хук поля из формы.
Если кто-то имел с этим дело, буду рад помощи.
Ответы (2 шт):
Та же проблема, разработчики Elementor написали, что вебхуки не поддерживают передачу полей (только отправляют их как post данные). Я сделал так: создал файл test.php, в нём такой код:
<?
$contact_phone = $_POST['contact_phone'];
$go = file_get_contents('https://example.com/tg.php?type=callback&contact_phone='.$contact_phone);
?>
а потом добавил ссылку на этот файл в вебхук при отправке формы. Так работает.
add_action( 'elementor_pro/forms/new_record', function( $record, $handler ) {
$bot_token = ""; // Вставьте между кавычками токен вашего бота - Пример - 6332036677:AAHkK00ank-puKFu_15H7efRYN1I9T3Z3rM
$chat_id = ""; // Вставьте между кавычками ID чата, в который должны приходить заявки и не забудьте минус. Пример - -855212829
$raw_fields = $record->get( 'fields' );
$arr = array();
$txt = "[Новая заявка] тест %0A"; // Заголовок сообщения в телеграм. Между кавычками можно написать что угодно. Например, помогает понимать, откуда пришла заявка, если заявки приходят с нескольких сайтов.
foreach ( $raw_fields as $id => $field ) {
$txt .= "<b>".$field['title']."</b>: ".$field['value']."%0A";
}
fopen("https://api.telegram.org/bot{$bot_token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}&disable_web_page_preview=true","r"); // Открывает ссылку, по которой и уходит нужный текст в телеграм
}, 10, 2 );
?>