نویسنده: مستر نارگیل تاریخ انتشار: ۱۴۰۵/۰۵/۲۸

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

لیدهای ذخیره شده از وردپرس در گوگل شیت

چرا دیتاهای وردپرس رو در گوگل شیت ذخیره کنیم

به طور خلاصه ذخیره فرم‌ها در گوگل شیت این سه مزیت رو داره:

هیچ فرمی را از دست ندهید

گاهی اوقات به دلایل فنی فرم‌ها ارسال نمیشن، در این مواقع میتونید با مراجعه به گوگل شیت فرم مشتری‌ها رو ببینید.

آرشیو دائمی با قابلیت سرچ

با دسترسی به آرشیو درخواست مشتریان میتونید نیازهای اونها رو بهتر درک کنید و تصمیمات بهتری برای کسب و کارتون بگیرین.

اتومیشن

فرض کنید روزی صد تا ایمیل میگیرید، با ابزارهای گوگل شیت میتونید کاری کنید که اگر در پیام مشتری کلمه خرید یا قیمت بود اون فرم به کارمند فروش برای پیگیری اطلاع داده بشه.

آموزش ذخیره اتوماتیک فرم‌های پر شده وردپرس در گوگل شیت

مرحله 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 لینک وب اپ رو جایی کپی کنید، بعدا از این لینک استفاده میکنیم.

ذخیره url وب اپر

یکبار اسکریپت رو Run کنید و مطمئن بشید که خطای authorization دریافت نمیکنید. پس از اجرا یک شیت جدید به نام Email log برای شما ایجاد میشه.

مرحله 2. کد اتصال به گوگل شیت را در وردپرس جای‌گذاری کنید

کد سفارشی زیر رو در وردپرس قرار بدید.

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--', '&nbsp;', '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--"]

نتیجه کار باید مثل تصویر زیر باشه:

اضافه کردن فیلد مخفی در فرم پلاگین contact form 7

به تب ایمیل برید و شورتکد زیر رو به قسمت محتوای پیام اضافه کنید:

[mrnargil]

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

فرم‌های Gravity Forms

در گرویتی فرم به قسمت ویرایش فرم برید و یه فیلد Hidden به فرم اضافه کنید.

ساخت فیلد Hidden در گرویتی فرم

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

اضافه کردن value به فیلد hidden در گرویتی فرم

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

فرم‌های المنتور

یه فیلد جدید به فرمتون اضافه کنید و Type رو برابر Hidden بذارید.

ساخت فیلد Hidden در فرم المنتور

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

ست کردن value برای فیلد hidden در فرم المنتور

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

آموزش ویدیویی ذخیره فرم‌های وردپرس در گوگل شیت