Google Forms — удобный инструмент для сбора данных, анкетирования и опросов. Часто возникает задача автоматически импортировать ответы из Google Forms в ваш сайт на WordPress, чтобы использовать эти данные для дальнейшей обработки, создания задач, подписок или аналитики. В этой статье мы подробно рассмотрим, как реализовать автоматический импорт данных из Google Forms в WordPress с помощью API и плагинов, а также приведем примеры кода.
Обзор задачи: почему нужен автоматический импорт из Google Forms
Ручной экспорт ответов из Google Forms и их загрузка на сайт — процесс долгий и неудобный. Автоматизация позволяет:
- Экономить время и исключить ошибки при переносе данных.
- Обновлять данные на сайте в реальном времени или с заданной периодичностью.
- Использовать данные для автоматического создания задач, подписчиков или аналитики в WordPress.
Для автоматизации можно использовать Google Sheets, куда сохраняются ответы Google Forms, и интегрировать Sheets с WordPress.
Подготовка: подключение Google Sheets и настройка API
По умолчанию Google Forms сохраняют данные в связанную таблицу Google Sheets. Именно с нее мы будем забирать данные.
Для доступа к Google Sheets из WordPress потребуется настроить Google Sheets API:
- Создайте проект в Google Cloud Console.
- Включите Google Sheets API для проекта.
- Создайте учетные данные (OAuth 2.0 client ID или сервисный аккаунт) для доступа к API.
- Скачайте JSON-файл с ключами и сохраните в защищенном месте на сервере.
Далее в WordPress можно использовать PHP-библиотеку Google Client для работы с API.
Пример настройки подключения к Google Sheets API на PHP в WordPress
require_once __DIR__ . '/vendor/autoload.php';
function wptasks_get_google_sheets_client() {
$client = new Google_Client();
$client->setApplicationName('WPTasks Google Forms Import');
$client->setScopes(Google_Service_Sheets::SPREADSHEETS_READONLY);
$client->setAuthConfig(__DIR__ . '/credentials.json'); // путь к JSON с ключами
$client->setAccessType('offline');
return $client;
}
function wptasks_get_google_form_responses($spreadsheetId, $range) {
$client = wptasks_get_google_sheets_client();
$service = new Google_Service_Sheets($client);
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
$values = $response->getValues();
if (empty($values)) {
return [];
} else {
return $values;
}
}
В этом примере мы инициализируем клиент и получаем данные из указанного диапазона таблицы.
Обработка и сохранение данных в WordPress
После получения данных из Google Sheets, их нужно обработать и сохранить в нужном формате. Например, можно создавать кастомный тип записей для ответов, или создавать задачи в WPTasks.
Пример создания новых записей на основе данных:
function wptasks_import_google_form_data() {
$spreadsheetId = 'ВАШ_ID_ТАБЛИЦЫ';
$range = 'Form Responses 1!A2:E'; // Диапазон с ответами
$rows = wptasks_get_google_form_responses($spreadsheetId, $range);
foreach ($rows as $row) {
$name = sanitize_text_field($row[1]); // например, имя
$email = sanitize_email($row[2]);
$message = sanitize_textarea_field($row[3]);
// Проверим, есть ли уже запись с таким email, чтобы не дублировать
$existing = new WP_Query([
'post_type' => 'wptasks_form_response',
'meta_query' => [
[
'key' => 'email',
'value' => $email,
'compare' => '=',
]
]
]);
if ($existing->found_posts === 0) {
// Создаем новую запись
$post_id = wp_insert_post([
'post_title' => $name,
'post_type' => 'wptasks_form_response',
'post_status' => 'publish',
]);
if ($post_id) {
update_post_meta($post_id, 'email', $email);
update_post_meta($post_id, 'message', $message);
}
}
}
}
Для хранения данных создайте кастомный тип записи wptasks_form_response. Это позволит удобно управлять импортированными ответами внутри админки.
Автоматизация запуска импорта: WP-Cron и плагин WPTasks
Чтобы импорт происходил регулярно, настройте WP-Cron задачу, которая будет запускать функцию импорта.
Пример добавления cron задачи:
function wptasks_schedule_google_forms_import() {
if (!wp_next_scheduled('wptasks_google_forms_import_event')) {
wp_schedule_event(time(), 'hourly', 'wptasks_google_forms_import_event');
}
}
add_action('wp', 'wptasks_schedule_google_forms_import');
add_action('wptasks_google_forms_import_event', 'wptasks_import_google_form_data');
Этот код запустит импорт ответов каждый час.
Если вы используете плагин WPTasks для управления задачами, то можно автоматически создавать задачи на основе импортированных данных, например:
function wptasks_create_task_from_response($post_id) {
$email = get_post_meta($post_id, 'email', true);
$message = get_post_meta($post_id, 'message', true);
if (function_exists('wptasks_create_task')) {
wptasks_create_task([
'title' => 'Новая заявка от ' . $email,
'description' => $message,
'status' => 'new',
]);
}
}
add_action('save_post_wptasks_form_response', 'wptasks_create_task_from_response');
Альтернативный способ: использование плагина WP All Import и Google Sheets
Если настройка API кажется сложной, можно использовать плагин WP All Import с расширением для Google Sheets. Плагин позволяет настраивать регулярный импорт таблиц из Google Sheets в WordPress с маппингом полей.
Преимущества такого подхода:
- Простота настройки без программирования.
- Гибкие настройки импорта (создание записей, обновление, удаление).
- Поддержка кастомных типов записей и полей.
Недостаток — необходимость покупки премиум-версии плагина и некоторых аддонов.
Резюме и лучшие практики
Автоматический импорт данных из Google Forms в WordPress — мощное решение для интеграции внешних форм с вашим сайтом. Выбор метода зависит от технических навыков и задач:
- Для разработчиков — использование Google Sheets API и кастомного кода позволяет гибко настраивать обработку данных.
- Для пользователей без навыков программирования — плагин WP All Import с Google Sheets интеграцией.
Обязательно учитывайте безопасность: храните ключи API в защищенных местах, применяйте санитизацию данных и контролируйте доступ к импортируемой информации.
Если вы используете WPTasks, интеграция с Google Forms позволит автоматически создавать задачи из собранных данных, значительно упрощая рабочие процессы.
Подробнее о плагинах и инструментах для автоматизации работы с задачами и импортом данных смотрите на WPSHOP.ru.