در این آموزش ما بدون استفاده از هیچ افزونهای و صرفا با کپی و پیست کردن تعدادی کد، وردپرس رو به گوگل شیت متصل میکنیم، به نحوی که فرمهای پر شده در وردپرس به صورت اتوماتیک در گوگل شیت ذخیره بشن.

چرا دیتاهای وردپرس رو در گوگل شیت ذخیره کنیم
به طور خلاصه ذخیره فرمها در گوگل شیت این سه مزیت رو داره:
- هیچ فرمی را از دست ندهید: گاهی اوقات به دلایل فنی فرمها ارسال نمیشن، در این مواقع میتونید با مراجعه به گوگل شیت فرم مشتریهارو ببینید.
- آرشیو دائمی با قابلیت سرچ: با دسترسی به آرشیو درخواست مشتریان میتونید نیازهای اونهارو بهتر درک کنید و تصمیمات بهتری برای کسب و کارتون بگیرین.
- اتومیشن: فرض کنید روزی صد تا ایمیل میگیرید، با ابزارهای گوگل شیت میتونید کاری کنید که اگر در پیام مشتری کلمه خرید یا قیمت بود اون فرم به کارمند فروش برای پیگیری اطلاع داده بشه.
آموزش ذخیره اتوماتیک فرمهای پر شدهی وردپرس در گوگل شیت
مرحله 1. آماده کردن گوگل شیت
یک گوگل شیت جدید باز کنید و از منوی Extensions گزینه Apps Script رو انتخاب کنید.
حالا تمام کدهای ادیتور رو پاک کنید و کد زیر رو توش کپی و پیست کنید.
function doPost(e) {
var sheetName = "Email log";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sheetName);
// Create sheet if it doesn't exist
if (!sheet) {
sheet = ss.insertSheet(sheetName);
sheet.appendRow(["email", "date", "time"]);
}
// Parse the incoming request
var data = JSON.parse(e.postData.contents);
var emailBody = data.email_body;
var date = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyy-MM-dd");
var time = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "HH:mm:ss");
// Append the data to the sheet
sheet.appendRow([emailBody, date, time]);
return "ok";
}
اسکریپت رو ذخیره کنید، دکمه Deploy و بعدش New deployment رو بزنید.

تو پنجره New deployment روی علامت چرخدنده⚙️ کلیک کنید و Web app را انتخاب کنید، بعد یک توضیح برای این وب اپ بنویسید و روی دکمه Deploy کلیک کنید.

چون دفعه اوله که این وب اپ را ساختید گوگل از شما میخواد که اجازه دسترسی به فایلهای گوگل درایو رو به اون بدید، روی دکمه Authorize access کلیک کنید و اجازه دسترسی به حساب گوگل خود را به این اپ بدید.
توجه: این اپ میبایست امکان خواندن و نوشتن در گوگل شیت شما رو داشته باشه در غیر اینصورت کار نخواهد کرد.

بعد از Deploy لینک وب اپ رو جایی کپی کنید، بعدا از این لینک استفاده میکنیم.

یکبار اسکریپت رو Run کنید و مطمئن بشید که خطای authorization دریافت نمیکنید. پس از اجرا یک شیت جدید به نام Email log برای شما ایجاد میشه.
مرحله 2. کد اتصال به گوگل شیت را در وردپرس جایگذاری کنید
کد سفارشی زیر رو در وردپرس قرار بدید.
برای قرار دادن کد سفارشی در سایتهای وردپرسی از سه روش زیر میتوانید استفاده کنید:
- قرار دادن کد در فایل functions.php تم فرزند
- استفاده از پلاگینهای کمکی مانند code snippets
- ساخت پلاگین اختصاصی خود
بیشتر بخوانید: آموزش نحوه اضافه کردن کد سفارشی در وردپرس
function get_sheet_app_url (){
$url = ""; // your google app url
return $url;}
add_filter('wp_mail', 'check_and_strip_email_body');
function check_and_strip_email_body($args) {
$email_body = $args['message'];
if (strpos($email_body, '--sheets--') !== false) {
$email_body = str_replace(array('<br>', '<br/>', '<br />'), "\n", $email_body);
$plain_text_body = strip_tags($email_body);
$plain_text_body = str_replace(array('--sheets--', ' ', 'New submission from'), "\n", $plain_text_body);
$plain_text_body = preg_replace('/\s+\n/', "\n", $plain_text_body);
$plain_text_body = preg_replace('/\n+/', "\n", $plain_text_body);
send_to__google_sheet ($plain_text_body);
}
return $args;
}
function send_to__google_sheet ( $clean_body ) {
$google_apps_script_url = get_sheet_app_url ();
$data = array('email_body' => $clean_body);
$response = wp_remote_post($google_apps_script_url, array(
'method' => 'POST',
'body' => wp_json_encode($data),
'headers' => array(
'Content-Type' => 'application/json',
),
));
if (is_wp_error($response)) {
error_log('Send to Sheet Error: ' . $response->get_error_message());
}
}
یادتون نره تو کد بالا url وب اپ رو که در مرحله 1 تولید کردید در قسمت $url قرار بدید.
مرحله 3. نشانه گذاری فرمهایی که میخواهید در گوگل شیت ذخیره شوند
خب تقریبا کار تمونه، الان تنها کاری که باید کنید اینه که به فرمهاتون این فیلد مخفی رو اضافه کنید:
<input type="hidden" name="mrnargil" value="--sheets--">
فرمهای contact form 7
در پلاگین CF7 به قیمت فرمها برید و در تب فرم این فیلد مخفی رو اضافه کنید:
[hidden mrnargil default: "--sheets--"]
نتیجه کار باید مثل تصویر زیر باشه:

به تب ایمیل برید و شورتکد زیر رو به قسمت محتوای پیام اضافه کنید:
[mrnargil]
فرم رو ذخیره کنید.
از این به بعد ورودیهای این فرم در گوگل شیت ذخیره میشن.
فرمهای Gravity Forms
در گرویتی فرم به قسمت ویرایش فرم برید و یه فیلد Hidden به فرم اضافه کنید.

تو تنظیمات فیلد جدید به قسمت Advanced برید و Default Value رو برابر --sheets-- قرار بدید.

فرم رو ذخیره کنید، از این به بعد ورودیهای این فرم تو گوگل شیت ذخیره میشن.
فرمهای المنتور
یه فیلد جدید به فرمتون اضافه کنید و Type رو برابر Hidden بذارید.

به تب Advanced برید و Default Value رو برابر --sheets-- بذارید.

فرم رو ذخیره کنید، از این به بعد ورودیهای این فرم تو گوگل شیت ذخیره میشن.
پاسخ دادن به سولماز لغو پاسخ