Your SheetLinkWP license is ready. Download the plugin below and follow the quick setup steps to start syncing forms to Google Sheets.
Save this file - you can re-download it anytime from this page.
Download Plugin (.zip)In WordPress, go to Plugins → Add New → Upload Plugin. Choose the ZIP file you just downloaded, then click Install Now and Activate.
Go to SheetLinkWP → License in your WordPress admin. Enter the email you used to purchase and click Activate. That's it - no license keys needed.
Copy our template sheet below, deploy the script, then go to SheetLinkWP → Settings. Click Add Rule, pick your form plugin, paste the Google Apps Script URL, map your fields, and save.
Copy our pre-built template sheet - the script is already included. Just deploy and go.
Copy Template Sheetfunction doPost(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = JSON.parse(e.postData.contents);
// Create header row on first submission
if (sheet.getLastRow() === 0) {
sheet.appendRow(Object.keys(data));
}
// Get current headers
var lastCol = sheet.getLastColumn();
var headers = lastCol > 0
? sheet.getRange(1, 1, 1, lastCol).getValues()[0]
: [];
// Auto-add columns for any new fields
var keys = Object.keys(data);
for (var i = 0; i < keys.length; i++) {
if (headers.indexOf(keys[i]) === -1) {
headers.push(keys[i]);
sheet.getRange(1, headers.length).setValue(keys[i]);
}
}
// Build row in header order
var row = headers.map(function(h) { return data[h] || ''; });
sheet.appendRow(row);
return ContentService.createTextOutput(
JSON.stringify({ status: 'ok' })
).setMimeType(ContentService.MimeType.JSON);
}
// Run this to verify the script works
function testDoPost() {
doPost({ postData: { contents: JSON.stringify({
timestamp: new Date().toLocaleString(),
name: 'Test User',
email: 'test@example.com',
message: 'Hello from SheetLinkWP!'
})}});
Logger.log('Test row added!');
}
Reply to your purchase confirmation email or reach us at support@sheetlinkwp.com. We typically respond within a few hours.