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_drive1( $contact_form ) { $form_id = $contact_form->id; $submission = WPCF7_Submission::get_instance(); if ( $submission ) { $posted_data = $submission->get_posted_data(); if ($form_id==2743) { $fields = array( 'entry.46644171'=>urlencode($posted_data['your-name']), 'entry.1804379345'=>urlencode($posted_data['tel-phone']), 'entry.601639091'=>urlencode($posted_data['your-email']), 'entry.1038075855'=>urlencode($posted_data['dynamictext-services']), 'entry.1878394932'=>urlencode($posted_data['your-message']) ); 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/u/0/d/e/1FAIpQLSfKbYwRtT7xibIcauXcF8AyDelw20uaCBBAP7MF2dpZD7Gh-Q/formResponse'); 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); $result = curl_exec($ch); curl_close($ch); } } } add_action( 'wpcf7_mail_sent', 'pveser_sent_contact_to_drive1' );
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.