Hướng dẫn tích hợp Contact Form 7 với Google Sheets

Hướng dẫn tích hợp Contact Form 7 với Google Sheets

Các bạn chắc hẳn không còn xa lạ gì với Google Sheets. Nó là 1 ứng dụng trang tính của Google (Giống như Excel của Microsoft).

Còn với Contact Form 7, nó là 1 plugin tạo form đơn giản và mạnh mẽ của WordPress.

Thời gian vừa qua có rất nhiều bạn hỏi mình làm sao để tích hợp dữ liệu từ Contact Form 7 với Google Sheets. Hôm nay mình tranh thủ chút thời gian viết 1 bài viết hướng dẫn các bạn làm điều này.

Khi nhắc đến việc tích hợp, nhiều bạn sẽ nghĩ ngay đến việc sử dụng API mà Google cung cấp. Bạn có tham khảo tạo đây: https://developers.google.com/sheets/api/

Nhưng trong trường hợp này, tôi sẽ không sử dụng API. Tôi sử dụng qua Google Forms làm trung gian để tích hợp dữ liệu.

Bước 1: Tạo form bằng Contact Form 7

Đầu tiên, bạn hãy tạo 1 form bằng Contact Form 7. Về cách tạo thì tôi sẽ không chia sẻ trong bài viết này. Nếu bạn chưa biết có thể tìm kiếm trên Google.

Tôi ví dụ bằng 1 form đơn giản bao gồm các trường:

  • Họ và tên
  • Địa chỉ email
  • Số điện thoại
  • Yêu cầu thêm

Bước 02: Tạo Google Forms và liên kết với Google Sheets

Tiếp theo, bạn hãy truy cập vào Google Drive để tạo Google Forms

Tạo form bao gồm các trường giống như Contact Form 7 đã tạo ở bước trên:

Lưu ý: 

  • Kiểu trường đều đặt là: Văn bản câu trả lời ngắn
  • Tất cả các trường đều đặt là không bắt buộc

Tiếp theo, bạn chuyển qua tab “Câu trả lời” để tích hợp các câu trả lời với Google Sheets

Lưu ý: Nếu bạn đã có file Google Sheets trên Google Drive, bạn hãy chọn bảng tính hiện có. Còn không hãy tạo mới

Cuối cùng, hãy bấm vào nút “Xem trước” (Hình con mắt) để lấy link của Form:

Bước 03: Tích hợp Contact Form 7 với Google Forms

Bước này, chúng ta phải động đến code 1 chút. Chúng ta sẽ sử dụng Hook wpcf7_mail_sent của Contact Form 7:

Code mẫu (Bỏ đoạn code vào file functions.php của theme bạn đang sử dụng):

function pveser_sent_contact_to_drive( $contact_form )
{

$form_id = $contact_form->id;
$submission = WPCF7_Submission::get_instance();

if ( $submission )
{
$posted_data = $submission->get_posted_data();

if ($form_id==698)
{

$fields = array(
'entry.359835661'=>urlencode($posted_data['your-name']),
'entry.359835662'=>urlencode($posted_data['your-email']),
'entry.359835663'=>urlencode($posted_data['your-phone']),
'entry.359835663'=>urlencode($posted_data['your-note'])
)

);
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');

header('Content-type: text/html; charset=UTF-8');
$ch = curl_init();

curl_setopt($ch, CURLOPT_ENCODING ,"UTF-8");

$url=utf8_encode('https://docs.google.com/forms/d/e/1FAIpQLScZ3lHLjJ-fkre90TcUQUsiUUL0lP5El0clkDKKoHQQ7iaZlA/formResponse');
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

curl_setopt($ch,CURLOPT_HEADER, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
}

}

}//End contact form

add_action( 'wpcf7_mail_sent', 'pveser_sent_contact_to_drive' );

Giải thích:

$form_id==698: Thay 698 thành form id của bạn (Contact Form 7)

entry.359835661: Field name của Google Forms

Để lấy được field name này bạn vui lòng mở Google Form mà lúc xem trước ở bước trên, bấm chuột phải vào trường cần lấy và chọn Inspect, sau đó tìm đến thuộc tính name=””.

Nội dung bên trong name chính là field name cần lấy

$posted_data['your-name']: your-name chính là field name của Contact Form 7

$url: Link Google Form sau khi đã submit

Để lấy được link này, bạn chỉ cần vào link xem trước, sau đó bấm nút “Gửi” và bạn hãy copy link trên trình duyệt

Sau khi hoàn thiện các bước trên, bạn hãy thử nhập thông tin ở Contact Form 7 rồi bấm submit để test xem trên Google Sheets đã có dữ liệu bạn vừa nhập chưa.

Nếu chưa có, bạn hãy kiểm tra lại các bước xem có chính xác chưa. Đặc biệt là bước liên quan đến code.

Chúc bạn thành công! Có bất kỳ câu hỏi này hãy comment dưới status này.

Hoàng An

Tôi không phải là 1 chuyên gia lập trình, cũng không phải là 1 chuyên gia SEO. Với niềm đam mê với CNTT, tôi có thể biến ý tưởng thành sản phẩm và thích chia sẻ kiến thức cho người khác. Nếu có duyên, mời bạn đến với khoá học của tôi
0 0 votes
Article Rating
Subscribe
Notify of
guest
3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Phong
Phong
25 days ago

Mình thấy hướng dẫn này của bạn cũng khá lâu rồi, không biết bây giờ còn áp dụng được không. Mình có thử và kiểm tra hết thảy các bước, contact form 7 gửi đi thì có nhận được mail, tuy nhiên vẫn không kết nối được với gg form, không biết là vì sao.

Phong
Phong
23 days ago
Reply to  Hoàng An

Mình muốn hỏi thêm nếu kiểu trường là radio hoặc checkbox, hoặc trường là bắt buộc thì cách trên có hoạt động hay không?
Mình cảm ơn.

3
0
Would love your thoughts, please comment.x
()
x