Интеграция Contact Form 7 с Google Sheets — частая задача для тех, кто хочет собирать данные с форм WordPress и автоматически сохранять их в удобном табличном формате без использования дополнительных платных сервисов. В этой статье мы подробно разберём, как настроить такую интеграцию с помощью бесплатных инструментов и немного кода.
Почему стоит отправлять данные из Contact Form 7 в Google Sheets
Google Sheets — это удобный и бесплатный инструмент для хранения, анализа и визуализации данных. Отправка данных из формы напрямую в таблицу позволяет:
- Избежать ручного копирования данных из писем;
- Собрать всю информацию в одном месте для удобного анализа;
- Легко делиться результатами с коллегами;
- Автоматизировать дальнейшую обработку данных с помощью скриптов, фильтров и формул.
Обзор способов интеграции Contact Form 7 и Google Sheets
Существует несколько способов отправки данных из Contact Form 7 в Google Sheets:
- Использование плагинов, например, «Contact Form 7 Google Sheets Connector» или «CF7 to Google Sheets».
- Настройка Google Apps Script для приёма данных через вебхук и запись их в таблицу.
- Использование внешних сервисов автоматизации, таких как Zapier или Integromat (Make).
В этой статье мы сосредоточимся на втором методе — самостоятельной настройке с помощью Google Apps Script и вебхуков Contact Form 7. Это даёт полный контроль и не требует платных подписок.
Шаг 1. Подготовка Google Sheets и Apps Script
Создайте новую таблицу в Google Sheets и назовите её, например, «Данные форм Contact Form 7».
Перейдите в меню Расширения > Apps Script. В открывшемся редакторе удалите пример кода и вставьте следующий скрипт:
function contactform7ruDoPost(e) {
try {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var params = e.parameter;
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
var row = [];
for (var i = 0; i < headers.length; i++) {
row.push(params[headers[i]] || '');
}
sheet.appendRow(row);
return ContentService.createTextOutput(JSON.stringify({result: 'success'})).setMimeType(ContentService.MimeType.JSON);
} catch (error) {
return ContentService.createTextOutput(JSON.stringify({result: 'error', message: error.message})).setMimeType(ContentService.MimeType.JSON);
}
}Объяснение кода:
- Функция
contactform7ruDoPostобрабатывает POST-запросы. - Она получает параметры из запроса и записывает их в новую строку таблицы.
- Для корректной работы на первой строке таблицы должны быть заголовки, совпадающие с именами полей формы.
Далее нажмите Опубликовать > Развернуть как веб-приложение. В настройках выберите:
- «Кто имеет доступ» — «Все, даже анонимные»
- Сохраните URL веб-приложения — он понадобится для Contact Form 7.
Шаг 2. Настройка Contact Form 7 для отправки данных в Google Sheets
В админке WordPress откройте нужную форму Contact Form 7 и добавьте необходимые поля. Например:
[text* your-name placeholder "Имя"]
[email* your-email placeholder "Email"]
[text your-phone placeholder "Телефон"]
[textarea your-message placeholder "Сообщение"]
[submit "Отправить"]Теперь добавим отправку данных на Google Apps Script по вебхуку. Для этого используйте хук Contact Form 7 wpcf7_before_send_mail в functions.php вашей темы или в отдельном плагине:
add_action('wpcf7_before_send_mail', 'contactform7ru_send_to_google_sheets');
function contactform7ru_send_to_google_sheets($contact_form) {
$submission = WPCF7_Submission::get_instance();
if (!$submission) {
return;
}
$data = $submission->get_posted_data();
$url = 'ВАШ_URL_ВЕБ_ПРИЛОЖЕНИЯ_GOOGLE_APPS_SCRIPT'; // Замените на URL из шага 1
$response = wp_remote_post($url, [
'method' => 'POST',
'timeout' => 15,
'redirection' => 5,
'httpversion' => '1.0',
'blocking' => true,
'headers' => [
'Content-Type' => 'application/x-www-form-urlencoded',
],
'body' => http_build_query($data),
]);
if (is_wp_error($response)) {
error_log('Contact Form 7 Google Sheets error: ' . $response->get_error_message());
}
}Объяснение:
- Получаем данные формы через
WPCF7_Submission::get_instance(). - Отправляем POST-запрос на ваш Apps Script URL с данными формы в формате URL-кодирования.
- В случае ошибки записываем её в лог.
Шаг 3. Настройка заголовков таблицы Google Sheets
Чтобы корректно записывать данные, в первой строке Google Sheets пропишите названия столбцов, соответствующие атрибутам полей формы. В нашем примере:
- your-name
- your-email
- your-phone
- your-message
Имена должны строго совпадать с ключами массива $data, чтобы скрипт правильно сопоставил данные с колонками.
Шаг 4. Тестирование и отладка интеграции
Отправьте тестовое сообщение через форму. Если всё настроено верно, данные должны появиться в Google Sheets в новой строке.
Если данные не появляются:
- Проверьте права доступа веб-приложения Google Apps Script.
- Убедитесь, что URL веб-приложения указан правильно в коде Contact Form 7.
- Посмотрите логи ошибок WordPress через
error_log. - Проверьте, совпадают ли заголовки таблицы и имена полей формы.
Дополнительные советы и рекомендации
Добавление проверки данных перед отправкой
Для улучшения качества данных можно добавить дополнительную валидацию в Contact Form 7, например, проверять телефон или email через фильтры, чтобы не отправлять в таблицу мусор.
Отправка только определённых полей
Если нужно отправлять не все поля, а только выбранные, отфильтруйте массив $data перед отправкой:
$allowed_fields = ['your-name', 'your-email', 'your-phone'];
$filtered_data = [];
foreach ($allowed_fields as $field) {
$filtered_data[$field] = isset($data[$field]) ? $data[$field] : '';
}Использование WPGPT для расширенной автоматизации
Если вы хотите автоматизировать анализ данных, генерацию отчетов или ответы на основе данных форм, рекомендуем обратить внимание на плагин WPGPT. Он интегрируется с WordPress и позволяет использовать ИИ для обработки информации прямо на вашем сайте.
Заключение
Отправка данных из Contact Form 7 в Google Sheets — мощный способ систематизировать информацию и автоматизировать рабочие процессы. Благодаря Google Apps Script и небольшому коду в WordPress интеграция становится доступной без лишних затрат и сервисов.
Если вы хотите расширить функционал своего сайта, советуем посмотреть другие полезные инструменты на WPShop.ru.