Как сделать автоматический импорт данных из Google Sheets в WordPress с примерами кода

|

Зачем нужен автоматический импорт данных из Google Sheets в WordPress

Ведение данных в Google Sheets — удобный способ быстро обновлять информацию без постоянного захода в админку WordPress. Если у вас бизнес-сайт с таблицами, прайс-листами, списками клиентов или мероприятиями, автоматизация импорта позволяет регулярно получать свежие данные без ручной работы. Особенно полезно, когда контент обновляется часто и требуется минимизировать время на администрирование.

Автоматический импорт помогает:

В этой статье мы разберём, как настроить автоматический импорт из Google Sheets в WordPress с помощью Google Sheets API и REST API WordPress, а также приведём пример кода для реализации процесса.

Подготовка Google Sheets и получение доступа к API

Первый шаг — подготовить Google Sheets и получить доступ к API, чтобы WordPress мог считывать данные.

Создание и настройка Google Sheets

Создайте таблицу в Google Sheets с нужными данными (например, список товаров, контактов, мероприятий). Переименуйте лист в понятное имя, например, Products.

Далее откройте доступ к API:

Использование Google Sheets API в WordPress

Для взаимодействия с Google Sheets API на PHP рекомендуем использовать библиотеку google-api-php-client. Ее можно подключить через Composer, либо вручную.

Пример установки через Composer:

composer require google/apiclient:^2.0

Если на вашем сервере Composer не доступен, можно загрузить библиотеку вручную с GitHub и подключить автозагрузчик.

Пример функции для импорта данных из Google Sheets в WordPress

Создадим функцию wpbusiness_import_google_sheets_data, которая будет подключаться к Google Sheets, читать данные и создавать записи в WordPress.

Пример кода:

function wpbusiness_import_google_sheets_data() {
    require_once __DIR__ . '/vendor/autoload.php'; // путь к автозагрузчику google-api-php-client

    // Путь к JSON с ключами сервисного аккаунта
    $serviceAccountPath = __DIR__ . '/credentials.json';

    // ID таблицы Google Sheets (из URL)
    $spreadsheetId = 'ВАШ_SPREADSHEET_ID';

    // Имя листа
    $range = 'Products!A2:C'; // например, данные с 2-й строки, столбцы A-C

    // Авторизация
    $client = new Google_Client();
    $client->setAuthConfig($serviceAccountPath);
    $client->addScope(Google_Service_Sheets::SPREADSHEETS_READONLY);

    $service = new Google_Service_Sheets($client);

    try {
        $response = $service->spreadsheets_values->get($spreadsheetId, $range);
        $values = $response->getValues();

        if (empty($values)) {
            error_log('wpbusiness: Данные из Google Sheets отсутствуют');
            return;
        }

        foreach ($values as $row) {
            // Предполагаем, что столбцы: Название, Описание, Цена
            $title = sanitize_text_field($row[0]);
            $description = sanitize_textarea_field($row[1]);
            $price = floatval($row[2]);

            // Проверяем, есть ли уже запись с таким названием
            $existing = get_page_by_title($title, OBJECT, 'product');

            if (!$existing) {
                // Создаем кастомный тип записи product
                $post_id = wp_insert_post([
                    'post_title' => $title,
                    'post_content' => $description,
                    'post_status' => 'publish',
                    'post_type' => 'product',
                ]);

                if (!is_wp_error($post_id)) {
                    update_post_meta($post_id, '_price', $price);
                }
            } else {
                // Обновляем существующую запись
                wp_update_post([
                    'ID' => $existing->ID,
                    'post_content' => $description,
                ]);
                update_post_meta($existing->ID, '_price', $price);
            }
        }
    } catch (Exception $e) {
        error_log('wpbusiness: Ошибка импорта из Google Sheets: ' . $e->getMessage());
    }
}

В данном примере мы создаём или обновляем кастомный тип записи product с метаданными цены.

Регистрация кастомного типа записи product

Чтобы пример работал, нужно зарегистрировать кастомный тип записи в WordPress. Добавьте этот код в файл темы или плагина:

function wpbusiness_register_post_type_product() {
    $labels = [
        'name' => 'Продукты',
        'singular_name' => 'Продукт',
        'menu_name' => 'Продукты',
        'add_new_item' => 'Добавить новый продукт',
    ];

    $args = [
        'labels' => $labels,
        'public' => true,
        'has_archive' => true,
        'supports' => ['title', 'editor'],
        'show_in_rest' => true,
    ];

    register_post_type('product', $args);
}
add_action('init', 'wpbusiness_register_post_type_product');

Автоматизация процесса с использованием WP Cron

Чтобы импорт происходил автоматически, настроим WP Cron, который будет запускать функцию по расписанию.

Добавьте следующий код в ваш плагин или functions.php:

function wpbusiness_schedule_import() {
    if (!wp_next_scheduled('wpbusiness_google_sheets_import_event')) {
        wp_schedule_event(time(), 'hourly', 'wpbusiness_google_sheets_import_event');
    }
}
add_action('wp', 'wpbusiness_schedule_import');

add_action('wpbusiness_google_sheets_import_event', 'wpbusiness_import_google_sheets_data');

Этот код планирует импорт данных каждый час. Вы можете изменить интервал, добавив свой период через фильтр cron_schedules.

Примеры плагинов для импорта из Google Sheets в WordPress

Если не хотите писать код сами, можно использовать готовые решения:

Однако собственное решение с кодом даёт гибкость для бизнес-сайтов и позволяет интегрировать данные именно так, как нужно.

Преимущества собственного кода и интеграции с плагинами WPShop

Для бизнес-сайтов на WordPress важно иметь надёжную и адаптируемую систему импорта данных. Собственный код позволяет:

Можно дополнительно использовать плагины из WPShop для расширения функционала, например, Clearfy Pro для оптимизации сайта или Expert Review для работы с отзывами, которые могут подтягиваться из Google Sheets.

Выводы и рекомендации

Автоматический импорт данных из Google Sheets в WordPress — мощный инструмент для бизнес-сайтов, который экономит время и снижает ошибки при обновлении данных. Рекомендуется:

Следуя этим рекомендациям, вы сможете построить надёжную и удобную систему автоматизации импорта данных из Google Sheets в WordPress.

Как использовать хуки WooCommerce для автоматизации управления заказами
03.07.2026
Как создать динамические таблицы в WordPress с помощью шорткодов
29.11.2025
Как автоматизировать управление пользователями в WordPress с подробными примерами кода
06.04.2026
Как использовать WP-Cron для автоматического удаления старых отзывов WooCommerce
27.05.2026
Как автоматизировать создание и удаление пользовательских ролей в WordPress с примерами кода
19.02.2026
×
Сделай свой сайт крутым!

Скидка -20% на премиум плагины WordPress

Выбрать плагин сейчас ⋙