บทความนี้ เราจะดูวิธีใช้ Elementor Pro Form และ Line Notify API เพื่อส่งข้อมูลในแบบฟอร์มไปยัง Line ของเราครับ การส่ง ข้อมูลผ่าน Line notify ทำให้เราสามารถดูข้อมูลได้อย่างรวดเร็ว โดยไม่ต้องเข้าหลังบ้านเว็บไซต์ เมื่อมีผู้ใช้เว็บไซต์กรอกฟอร์มสำเร็จ เป็นวิธีที่มีประโยชน์สำหรับการแจ้งสมาชิกในทีมหรือลูกค้าทำให้การสื่อสารเป็นไปได้อย่างรวดเร็ว
ใช้ wp_remote_post
ขั้นแรก เรากำหนดฟังก์ชัน send_line_notify ซึ่งรับ form_name และ field data เป็นข้อมูลแบบฟอร์ม จากนั้นใช้ฟังก์ชัน wp_remote_post เพื่อส่งคำขอ POST ไปยัง Line Notify API โดยมีข้อมูลในแบบฟอร์มเป็นข้อความ โค้ดนี้ยังมีฟังก์ชัน line_notify_webhook ที่ทริกเกอร์โดยใช้แอ็คชัน hook ของ elementor_pro/forms/new_record เมื่อสร้างเรกคอร์ดฟอร์มใหม่ โดยจะแยกชื่อฟอร์มและข้อมูลฟิลด์ออกจากเรกคอร์ด และส่งไปยังฟังก์ชัน send_line_notify
นำโค้ดนี้ไปใส่ใน functions.php ของธีม
<?php
// Function to send a message to Line Notify API
function send_line_notify($form_name, $raw_fields) {
// Your Line Notify access token
$access_token = "YOUR_ACCESS_TOKEN";
// Prepare the message
$text = $form_name."\n"."\n";
foreach ( $raw_fields as $id => $field ) {
if(!empty($field['value'])){
$text .= $field['title']." : ".$field['value']."\n";
}
}
// API endpoint
$url = "https://notify-api.line.me/api/notify";
// Send a POST request to the Line Notify API
$response = wp_remote_post( $url, [
'method' => 'POST',
'timeout' => 45,
'redirection' => 5,
'httpversion' => '1.0',
'blocking' => true,
'headers' => [
'Content-Type' => 'application/x-www-form-urlencoded',
'Authorization' => 'Bearer '.$access_token
],
'body' => ['message' => $text],
'cookies' => []
] );
}
// Function to handle new form record
function line_notify_webhook( $record, $handler ) {
// Elementor Pro Form data
$form_name = $record->get_form_settings( 'form_name' );
$raw_fields = $record->get( 'fields' );
// Send the message to Line Notify API
send_line_notify($form_name, $raw_fields);
}
// Hook to trigger function when a new form record is created
add_action( 'elementor_pro/forms/new_record', 'line_notify_webhook', 20, 2 );