Nyílt Web Alapítvány > WordPress Magyarország > Tippek, trükkök > Gravity forms automatikus adatküldés Google Táblázatba

Egyszerű és gyors megoldás egy űrlap adatainak a továbbítására Google Táblázatba.

A GravityForms egy népszerű űrlapkezelő bővítmény, amely sajnos nem ingyenes, viszont személyes használatra, mindössze $39-ért megvásárolható.

Sok helyen használom, mert könnyedén testreszabható, szuper támogatás jár hozzá, továbbá milliónyi hook-ot biztosít a fejlesztőknek.

Az egyik weboldalam űrlapjának az adatbázisát szerettem volna úgy megosztani a munkatársaimmal, hogy azon egyből dolgozni is lehessen. Erre tökéletes megoldást biztosít számunkra a Google Táblázat; külön bónusz, hogy így egyszerre többen is tudunk a táblázaton dolgozni és látjuk, hogy mit csinál a másik.

Adott a feladat, át kell küldeni az  adatokat a Gravity-ből a céges felhőnkbe.

Szerencsére találtam egy ingyenes bővítményt, ami segítségünkre lesz az adatok továbbküldésében: Gravity Forms Post to 3rd Party API (letöltés)

1.) Készítsünk egy új táblázatot és írjuk be az oszlopok megnevezését

2.) Készítsünk egy új Google szkriptet (Eszközök->Szkriptszerkesztő)

3.) Töröljük a Szkriptszerkesztőben lévő kódot és írjuk át erre:

function doPost(e) {
 
  if (!e) return;
 
  var sheetID = "GOOGLE_TABLAZAT_IDKOD";  // Add meg a Google táblázatod ID kódját
  var sheetName = "Munkalap1";       // Add meg a munkalap nevét. Alapértelmezett név: Munkalap1
 
  var status = {};
 
  // Code based on Martin Hawksey (@mhawksey)'s snippet
 
  var lock = LockService.getScriptLock();
  lock.waitLock(30000);
 
  try {
 
    var sheet = SpreadsheetApp.openById(sheetID).getSheetByName(sheetName);
    var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
 
    // Add the data and time when the Gravity Form was submitted
    var column, row = [],
      input = {
        "timestamp": new Date()
      };
 
    for (var keys in e.parameter) {
      input[normalize_(keys)] = e.parameter[keys];
    }
 
    for (i in headers) {
      column = normalize_(headers[i])
      row.push(input[column] || "");
    }
 
    if (row.length) {
 
      sheet.appendRow(row);
      status = {
        result: "success",
        message: "Row added at position " + sheet.getLastRow()
      };
 
    } else {
      status = {
        result: "error",
        message: "No data was entered"
      };
    }
 
  } catch (e) {
 
    status = {
      result: "error",
      message: e.toString()
    };
 
  } finally {
 
    lock.releaseLock();
 
  }
 
  return ContentService
    .createTextOutput(JSON.stringify(status))
    .setMimeType(ContentService.MimeType.JSON);
 
}
 
function normalize_(str) {
  return str.replace(/[^\w]/g, "").toLowerCase();
}

Két helyen kell átírni a kódot.

var sheetID = “GOOGLE_TABLAZAT_IDKOD”; // Add meg a Google táblázatod ID kódját

Nagyon egyszerű. A táblázat URL-ében benne van az ID. Például: https://docs.google.com/spreadsheets/d/19OtYbFuDUpfAqTjdrGufsrwI0GNdRnE36Cv6S0OjQNw/edit#gid=0

Az ID: 19OtYbFuDUpfAqTjdrGufsrwI0GNdRnE36Cv6S0OjQNw

var sheetName = “Munkalap1”; // Add meg a munkalap nevét. Alapértelmezett név: Munkalap1

Ezt nem kell magyarázni szerintem, hiszen csak meg kell adni a munkalap nevét.

4.) Mentsük el!

5.) Indítsuk el és engedélyeztessük

6.) Készítsünk a kódból egy internetes alkalmazást (Közzététel->Bevezetés internetes alkalmazásként…)

Beállítások:

7.) Másoljuk ki az Internetes alkalmazás jelenlegi URL-jét

Fontos! írjuk fel az URL címet!

8.) Készítsünk egy új Third Party Feed-et

Miután feltelepítettük fent említett bővítményt (Gravity Forms Post to 3rd Party API letöltés), megjelenik egy új menü az űrlapok beállításainál: Send to Third Party Feed

Készítsünk egy új feedet és másoljuk be az elmentett URL címet. Beállítások:

Method: POST
API URL: Ide másolod az URL-t
Authorization: None

9.) Add meg az elküldendő adatokat

Az első oszlopba bemásoljuk a Google Táblázat oszlopmegnevezéseit, amit korábban beírtunk és összepárosítjuk az űrlapunk mezőivel.

Kész is! Teszteljük.

A végeredmény:

(Megjegyzés: A Gravity lehetőséget biztosít a beküldött adatok CSV-ben történő mentésére és minden beküldött adatot eltárol, amit a WordPress adminban megtalálunk)

A szerzőről

Patai László

1999 óta foglalkozom nyílt forrású rendszerekkel, 2006 óta kimondottan WordPress-el. Az utóbbi időben WordPress alapú webshopokat építek. Az általam felügyelt WooCommerce-ek éves forgalma meghaladja a 1.5 milliárd forintot. @patai-laszlo

Hozzászólás a fórumban:

Kezdőlap Fórumok Gravity forms automatikus adatküldés Google Táblázatba

Címkézve: 

Ennek a témakörnek tartalma 1 hozzászólás, 2 résztvevő. Utolsó frissítés:  tritonhell 6 hónapja, 3 hete telt el.

2 bejegyzés megtekintése - 1-2 / 2
  • Szerző
    Bejegyzés
  • #257850

    Patai László
    Adminisztrátor
    • Témanyitás: 182
    • Hozzászólás: 2939
    • WordPress szakértő

    Egyszerű és gyors megoldás egy űrlap adatainak a továbbítására Google Táblázatba.

    [A teljes cikk itt olvasható: Gravity forms automatikus adatküldés Google Táblázatba]

    #257851

    tritonhell
    Tag
    • Témanyitás: 0
    • Hozzászólás: 1
    • Kezdő

    Kedves László!
    Nem tudom, hogy jó helyre írok, vagy sem. De itt látttam ezt a táblázatos megoldást, és valahol hasonló jellegű kérdésem lenne.

    Tehát egy olyan weboldalt készítek, ahol regisztrálhatnak felhasználók, de természetesen nem láthatnak admin felületet, csak a weblap felületén navigálhatnak, és regisztráció után megjelenik számukra egy oldal, ahol étkezési naplót kell kitölteniük. Ami teljesen olyan mint egy táblázat, 3-4 oszlop, mellette az időtartam, és be kell írniuk, mikor mit ettek, ittak, mozogtak.
    De sajnos sehol nem találtam olyan megoldást erre, ami weblap felületen engedélyezte volna a táblázat kitöltését. (vagyis a felhasználók által)
    Azonkívül azt szeretném, hogy a felhasználók által bevitt adatok mindig is ott maradjanak a privát oldalukon. Vagyis a szokásos emailre “küldés” gomb helyett mondjuk egy “mentés” gomb legyen.

    Ha esetleg lenne ötlete erre, az fantasztikus lenne, mert én már úgy érzem, hogy az összes plugint kiőróbáltam 🙂 És még mindig ugyanott tartok.. 🙂

    Előre is köszönöm szépen!
    Üdv!

2 bejegyzés megtekintése - 1-2 / 2

‘Gravity forms automatikus adatküldés Google Táblázatba’ témakör lezárásra került, így a hozzászólás nem lehetséges.

Tovább az eszköztárra

A honlap további használatához a sütik használatát el kell fogadni. További információ

A süti beállítások ennél a honlapnál engedélyezett a legjobb felhasználói élmény érdekében. Amennyiben a beállítás változtatása nélkül kerül sor a honlap használatára, vagy az "Elfogadás" gombra történik kattintás, azzal a felhasználó elfogadja a sütik használatát.

Bezárás