Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/heysaminu/elementor-forms-google-sheets/archive/refs/heads/main.zipNo built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.
Add Google Sheets as an Action After Submit in Elementor Pro forms.
Features
- Adds
Google Sheetsto Elementor Pro form actions - Sends form submissions to a Google Apps Script webhook
- Supports per-form sheet tab names
- Optional metadata columns for timestamp and form name
- Activity logging in WordPress admin
- Global default webhook setting
Requirements
- WordPress
- Elementor
- Elementor Pro
- PHP 7.4+
Installation
Option 1: Install the release ZIP
Use one of these generated packages:
elementor-forms-google-sheets-installable.zipdist/elementor-forms-google-sheets-v3.1.0.zip
Upload through Plugins -> Add New -> Upload Plugin, then activate it.
Option 2: Manual install
Copy the plugin into:
wp-content/plugins/elementor-forms-google-sheets
Then activate it in WordPress.
Setup
- Open
Settings -> Elementor Forms Sheets - Add your Google Apps Script webhook URL
- Edit an Elementor form
- Add
Google SheetsunderActions After Submit - Set a sheet tab name if needed
- Save and test the form
Google Apps Script
Use a deployed Web App URL ending in /exec.
Example script:
function doPost(e) {
try {
var data = JSON.parse(e.postData.contents);
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetName = data.sheetName || 'Sheet1';
var sheet = ss.getSheetByName(sheetName);
if (!sheet) {
sheet = ss.insertSheet(sheetName);
}
var lastRow = sheet.getLastRow();
if (lastRow === 0 && data.headers) {
sheet.appendRow(data.headers);
}
if (data.values) {
sheet.appendRow(data.values);
}
return ContentService
.createTextOutput(JSON.stringify({
status: 'success',
message: 'Data added successfully',
row: sheet.getLastRow()
}))
.setMimeType(ContentService.MimeType.JSON);
} catch (error) {
return ContentService
.createTextOutput(JSON.stringify({
status: 'error',
message: error.toString()
}))
.setMimeType(ContentService.MimeType.JSON);
}
}
Deploy it as:
Execute as: MeWho has access: Anyone with the link
Development
Build release ZIPs with:
scripts/build-plugin.sh
This generates:
elementor-forms-google-sheets-installable.zipdist/elementor-forms-google-sheets-v3.1.0.zip
Changelog
See CHANGELOG.md.
License
GPL v2 or later