Elementor Form To Google Sheet Product Loop

Pelajari Sendiri ye var emailNotification = false; var emailAddress = “[email protected]”; var isNewSheet = false; var receivedData = []; function doGet(e) { return HtmlService.createHtmlOutput(“Yep this is the webhook URL, request

Pelajari Sendiri ye

var emailNotification = false;
var emailAddress = "[email protected]";
var isNewSheet = false;
var receivedData = [];
function doGet(e) {
    return HtmlService.createHtmlOutput("Yep this is the webhook URL, request received");
}
function doPost(e) {
    var params = JSON.stringify(e.parameter);
    params = JSON.parse(params);
    insertToSheet(params);
    return HtmlService.createHtmlOutput("post request received");
}
function flattenObject(ob) {
    var toReturn = {};
    for (var i in ob) {
        if (!ob.hasOwnProperty(i)) continue;
        if ((typeof ob[i]) == 'object') {
            var flatObject = flattenObject(ob[i]);
            for (var x in flatObject) {
                if (!flatObject.hasOwnProperty(x)) continue;
                toReturn[i + '.' + x] = flatObject[x];
            }
        } else {
            toReturn[i] = ob[i];
        }
    }
    return toReturn;
}
function getHeaders(formSheet, keys) {
    var headers = [];
    if (!isNewSheet) {
        headers = formSheet.getRange(1, 1, 1, formSheet.getLastColumn()).getValues()[0];
    }
    var newHeaders = [];
    newHeaders = keys.filter(function(k) {
        return headers.indexOf(k) > -1 ? false : k;
    });
    newHeaders.forEach(function(h) {
        headers.push(h);
    });
    return headers;
}
function getValues(headers, flat) {
    var values = [];
    headers.forEach(function(h) {
        values.push(flat[h]);
    });
    return values;
}
function setHeaders(sheet, values) {
    var headerRow = sheet.getRange(1, 1, 1, values.length)
    headerRow.setValues([values]);
    headerRow.setFontWeight("bold").setHorizontalAlignment("center");
}
function setValues(sheet, values) {
    var lastRow = Math.max(sheet.getLastRow(), 1);
    sheet.insertRowAfter(lastRow);
    sheet.getRange(lastRow + 1, 1, 1, values.length).setValues([values]).setFontWeight("normal").setHorizontalAlignment("center");
}
function getFormSheet(formName) {
    var formSheet;
    var activeSheet = SpreadsheetApp.getActiveSpreadsheet();
    if (activeSheet.getSheetByName(formName) == null) {
        formSheet = activeSheet.insertSheet();
        formSheet.setName(formName);
        isNewSheet = true;
    }
    return activeSheet.getSheetByName(formName);
}
function insertToSheet(data) {
    var formName = data["form_name"];
    var formSheet = getFormSheet(formName);
    // Common data that doesn't change per row
    var commonData = {
        "form_id": data["form_id"],
        "form_name": data["form_name"],
        "Tanggal": data["Tanggal"],
        "Kode Unik": data["Kode Unik"],
        "Sales": data["Sales"],
        "Area": data["Area"],
        "Tipe Outlet": data["Tipe Outlet"],
        "Toko / Customer": data["Toko / Customer"],
        "Nomor Telepon / Whatsapp": data["Nomor Telepon / Whatsapp"],
        "Alamat": data["Alamat"]
    };
    for (var i = 1; i <= 10; i++) { // Assuming up to 10 items         if (data["Item " + i] && data["Jumlah " + i + " (Satuan Box)"]) {             // Combine common data with specific item data             var rowData = Object.assign({}, commonData, {                 "Item": data["Item " + i],                 "Jumlah (Satuan Box)": data["Jumlah " + i + " (Satuan Box)"]             });             var flatRowData = flattenObject(rowData);             var keys = Object.keys(flatRowData);             var headers = getHeaders(formSheet, keys);             var values = getValues(headers, flatRowData);             setHeaders(formSheet, headers);             setValues(formSheet, values);         }     }     if (emailNotification) {         sendNotification(data, getSeetURL());     } } function getSeetURL() {     var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();     var sheet = spreadsheet.getActiveSheet();     return spreadsheet.getUrl(); } function sendNotification(data, url) {     var subject = "A new Elementor Pro Forms submission has been inserted to your sheet";     var message = "A new submission has been received via " + data['form_name'] + " form and inserted into your Google sheet at: " + url;     MailApp.sendEmail(emailAddress, subject, message, {         name: 'Automatic Emailer Script'     }); } function onEdit(e) {   var sheet = e.source.getSheetByName('PO VIEW');   var range = e.range;   // Check if the edited cell is C5   if (range.getA1Notation() === 'C5') {     // Clear values in C6 and C7     sheet.getRange('C6:C7').clearContent();   }   // Check if the edited cell is C6   if (range.getA1Notation() === 'C6') {     // Clear values in and C7     sheet.getRange('C7').clearContent();   } }

READ OTHER BLOGS