CF7 to Google Sheet – Kết nối Contact Form 7 vào Google Sheet (Không Plugin)

🗣 Bài viết đăng bởi Pinker vào lúc 10-08-2024 và cập nhật lúc 17-08-2024 👁 393 lượt xem
Chia sẻ ➯
CF7-to-sheet

CF7 to Google Sheet được áp dụng khá nhiều cho các website WordPress. Việc sử dụng Google Spreadsheet đã phổ biến trong mọi ngành nghề hiện nay. Các website sử dụng WordPress cũng thường xuyên sử dụng Contact Form 7 (CF7) để thu thập dữ liệu và thông tin người dùng, nhằm lưu trữ và phục vụ cho các mục đích khác nhau, nhiều website đã áp dụng tính năng lưu giữ liệu đó vào Google Sheet với nhiều cách khác nhau như sử dụng plugin CF7 Google Sheet Connector. Nhưng gần đây có nhiều hiện tượng kết nối không thành công hoặc không ổn định, hoặc phải mua bản pro…Trong bài viết này, tôi sẽ hướng dẫn  các bạn cách tự làm chức năng kết nối Contact Form 7 (CF7) to Google Sheet hoàn toàn miễn phí và cực kỳ ổn định. Kết nối chính chủ trực tiếp từ Google Sheet API, không phụ thuộc vào plugin bên thứ 3 nào hết.

Một số thủ thuật khác với Contact Form 7

CF7-to-Google-Sheets
CF7-to-Google-Sheets

Bài viết khác

Hướng dẫn

Bài viết khá mang nặng tính kỹ thuật nhưng được hướng dẫn rất chi tiết, đảm bảo kết nối chính chủ ổn định. Những người không có kiến thức về lập trình cũng có thể áp dụng được.

Bước 01: Tạo Project Google Cloud API

Truy cập vào https://console.cloud.google.com và chọn vào Select a project, sau đó bấm New Project để tạo dự án mới cho việc kết nối CF7 với Google Sheet.

New-Project
New-Project

Đặt Project Name tùy ý theo mong muốn, sau đó bấm CREATE.

Tại ô tìm kiếm trong Project, nhập từ khóa Google Sheet API và chọn kết quả đầu tiên

Tao-Google-Sheet-API
Tao-Google-Sheet-API

Bấm chọn ENABLE để kích hoạt

Enable Google Sheets API
Enable Google Sheets API

Bước 02: Tạo khóa bảo mật Google Sheets API

Sau khi kích hoạt ở bước trên xong, sẽ chuyển sang màn hình tổng quan của Google Sheets API. Tại đây bấm chọn Credentials ở menu bên trái, bấm chọn +CREATE CREDENTIALS và chọn Service Account

Tạo khóa bảo mật Service Account
Tạo khóa bảo mật Service Account

Đặt tên Service account name tùy ý rồi bấm chọn DONE

Service account name
Service account name

Màn hình sẽ chuyển lại về trang Credentials và bấm chọn vào Email vừa tạo ở phần Service Accounts phía dưới

Bấm chọn Service Account Name
Bấm chọn Service Account Name

Bấm chọn vào tab KEYS, chọn ADD KEYCreate new key

Create new key
Create new key

Tạo key bằng file JSON và bấm CREATE, sau đó tải file JSON về máy.

Tạo key file json
Tạo key file json
Download file JSON KEY
Download file JSON KEY

Bước 03: Cài đặt code vào website kết nối CF7 to Google Sheet

Phần này dành cho những ai muốn tìm hiểu sâu về từng bước khởi tạo. Hoặc có thể bỏ qua phần này và download file .zip chứa folder code đã cấu hình sẵn phía bên dưới.

  • Tạo folder riêng chứa chức năng này và đặt tên tùy ý (ví dụ cf7-to-sheet)
  • Truy cập vào Composer và download file composer.phar để phục vụ việc tải thư viện của PHP.
  • Download và cài đặt Git-scm.
  • Mở Git Bash và chạy lệnh php composer.phar require google/apiclient để tải thư viện về.
  • Copy file Key Json đã download ở trên vào folder code này
  • Mở file functions.php và thêm dòng code require_once 'cf7-to-sheet/index.php';

Tạo file index.php và setup code như sau:

<?php 

require_once 'vendor/autoload.php';

add_action('wpcf7_before_send_mail', function($contact_form, $abort, $submission){
    $fullname = $submission->get_posted_data('fullname');
    $phone = $submission->get_posted_data('phone');
    $email = $submission->get_posted_data('email');
    $website = $submission->get_posted_data('website');
    $message = $submission->get_posted_data('message');

    $client = new \Google_Client();
    $client->setApplicationName('CF7 Google Sheets');
    $client->setScopes([\Google_Service_Sheets::SPREADSHEETS]);
    $client->setAccessType('offline');
    $client->setAuthConfig(get_stylesheet_directory().'/cf7-to-sheet/cf7-key.json'); // Trỏ tới file key json đã download ở trên

    $service = new \Google_Service_Sheets($client);
    $spreadsheetId = '1ZTEwlBRw1hjk42GgsNWnyre8wkJ-wlW2gYpM'; // ID file Sheet

    $range = "Sheet1"; // Tên tab Sheet con bên trong file (nên viết liền không dấu)

    $values = [
        [
            $fullname ?? null,
	    $phone ?? null,
	    $email ?? null,
	    $website ?? null,
	    $message ?? null
        ]
    ];

    $body = new \Google\Service\Sheets\ValueRange(array(
            'values' => $values
        )
    );
    
    $params = [
        'valueInputOption' => 'RAW'
    ];
    
    $result = $service->spreadsheets_values->append($spreadsheetId, $range, $body, $params);

}, 10, 3);

?>

Download Folder Source
Yêu cầu phiên bản PHP 8.1 trở lên

Nếu bạn muốn mời tôi ly cafe ?

- Momo: 0986 209 305
- MB Bank: 0800148886888 - Vũ Đức Hồng
- Techcombank: 2342868686 - Vũ Đức Hồng

Bước 04: Thêm tài khoản email vào Sheet

Tại màn hình này, copy Email: cf7tosheet@cf7-connect-sheet.iam.gserviceaccount.com ở mục Service Accounts và thêm vào trong quyền chia sẻ ở Sheet

Bấm chọn Service Account Name
Copy Email trong Service Accounts
Thêm email vào quyền chia sẻ
Thêm email vào quyền chia sẻ trong Sheet, vai trò Người chỉnh sửa

Bài viết có video hướng dẫn chi tiết, các bạn nên mở xem để hiểu hơn về cách cài đặt

5/5 - (4 bình chọn)

Bài viết khác

Tổng hợp Download Plugin - Theme cho WordPress : Xem ngay
Nhóm Zalo : Tham gia ngay
TAGS: CF7 TO GOOGLE SHEET CF7 TO SHEET CONTACT FORM 7 CONTACT FORM 7 CONNECT GOOGLE SPREADSHEET GOOGLE CLOUD API GOOGLE SHEET API GOOGLE SPREADSHEET

2 thoughts on “CF7 to Google Sheet – Kết nối Contact Form 7 vào Google Sheet (Không Plugin)

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Thủ đô của VN là gì?