Google Forms — удобный инструмент для сбора данных, анкетирования и опросов. Часто возникает задача: автоматически импортировать ответы из Google Forms в сайт на WordPress для дальнейшей обработки, отображения или анализа. В этой статье рассмотрим, как реализовать автоматическую интеграцию Google Forms с WordPress, используя API Google Sheets, а также готовые плагины и примеры кода.
Почему стоит автоматически импортировать данные из Google Forms в WordPress
Ручной экспорт и импорт ответов из Google Forms в WordPress неудобен и отнимает много времени. Автоматизация решает следующие задачи:
- Обеспечивает своевременное обновление данных на сайте;
- Позволяет создавать динамические отчеты и списки на основе ответов;
- Удобно для сайтов с анкетами, опросами, заявками и регистрациями;
- Снижает вероятность ошибок при переносе данных.
Для интеграции будем использовать связку Google Forms → Google Sheets → WordPress.
Используем Google Sheets API для интеграции с WordPress
Все ответы Google Forms автоматически сохраняются в Google Sheets. Чтобы получить к ним доступ из WordPress, нужно использовать Google Sheets API.
Настройка доступа к Google Sheets API
- Создайте проект в Google Cloud Console.
- Включите API Google Sheets для проекта.
- Создайте сервисный аккаунт и скачайте JSON-файл с ключом.
- Поделитесь таблицей Google Sheets с email сервисного аккаунта с правом чтения.
Пример функции для получения данных из Google Sheets в WordPress
Пример функции wpbegin_get_google_sheets_data() для запроса данных из таблицы и возврата массива ответов.
function wpbegin_get_google_sheets_data($spreadsheetId, $range) {
require_once __DIR__ . '/vendor/autoload.php'; // загрузка Google API Client
$client = new Google_Client();
$client->setApplicationName('wpbegin-google-forms-import');
$client->setScopes([
Google_Service_Sheets::SPREADSHEETS_READONLY
]);
$client->setAuthConfig(__DIR__ . '/service-account.json');
$service = new Google_Service_Sheets($client);
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
$values = $response->getValues();
if (empty($values)) {
return [];
} else {
// Преобразуем в удобный массив
$headers = array_shift($values);
$result = [];
foreach ($values as $row) {
$item = [];
foreach ($headers as $key => $header) {
$item[$header] = $row[$key] ?? '';
}
$result[] = $item;
}
return $result;
}
}Эта функция позволяет получить все ответы из таблицы и работать с ними в WordPress.
Как использовать полученные данные в WordPress
После получения данных можно:
- Сохранять их в пользовательские типы записей (CPT);
- Отображать списки или таблицы на страницах сайта;
- Использовать для рассылок или автоматической обработки заявок.
Пример сохранения данных из Google Forms в CPT «Заявки»
function wpbegin_save_google_forms_data_to_cpt($items) {
foreach ($items as $item) {
// Проверяем, есть ли уже заявка с таким email
$existing = get_posts([
'post_type' => 'application',
'meta_key' => 'email',
'meta_value' => $item['Email'],
'posts_per_page' => 1
]);
if (empty($existing)) {
$post_id = wp_insert_post([
'post_title' => sanitize_text_field($item['Name']),
'post_type' => 'application',
'post_status' => 'publish'
]);
if ($post_id) {
update_post_meta($post_id, 'email', sanitize_email($item['Email']));
update_post_meta($post_id, 'phone', sanitize_text_field($item['Phone']));
update_post_meta($post_id, 'message', sanitize_textarea_field($item['Message']));
}
}
}
}Эту функцию можно запускать по расписанию через WP-Cron для регулярного обновления данных.
Готовые плагины для интеграции Google Forms и WordPress
Если не хочется писать код, есть несколько плагинов для интеграции:
- Zapier for WordPress — позволяет соединять Google Forms с WordPress через Zapier, автоматически создавая записи.
- WP Forms
- Uncanny Automator — автоматизирует интеграцию различных сервисов, включая Google Forms и WordPress.
Также можно использовать плагин WPRemark для автоматического создания отзывов и заявок на основе данных из внешних источников, включая Google Sheets.
Обработка ошибок и безопасность при работе с Google Sheets API
При работе с API важно обрабатывать ошибки, например, неверный ключ, отсутствие доступа к таблице или превышение квот запросов. Рекомендуется:
- Логировать ошибки в файл или через WP_DEBUG.
- Ограничивать частоту запросов с помощью WP-Cron.
- Хранить ключи доступа вне публичных директорий.
Для защиты данных используйте проверку прав пользователей при выводе отформатированных данных на сайт.
Заключение
Автоматический импорт данных из Google Forms в WordPress — мощный инструмент для сайтов с формами и заявками. Используя Google Sheets API, можно гибко управлять данными, интегрировать их с CPT и реализовывать бизнес-логику. Для начинающих подойдут готовые плагины, а для продвинутых — собственные решения на PHP с использованием API. Такой подход экономит время и улучшает качество взаимодействия с пользователями.