Contact Form 7: автоматическая отправка файлов из формы в Google Drive

Часто возникает задача: пользователь загружает файл через форму Contact Form 7, а вам нужно автоматически сохранить этот файл в облачном хранилище Google Drive. Это удобно для централизованного хранения документов и быстрого доступа без необходимости вручную скачивать вложения из писем.

Почему стоит использовать Google Drive для хранения файлов из Contact Form 7

Google Drive — популярное и надёжное облачное хранилище с удобным интерфейсом и возможностью совместной работы. Автоматическая отправка файлов из формы туда позволяет:

  • Избавиться от нагрузки на сервер сайта, не занимать место на хостинге.
  • Легко делиться файлами с коллегами и клиентами.
  • Использовать мощные инструменты Google для организации и поиска.

Для интеграции нам понадобится использовать Google Drive API и написать код, который будет после отправки формы загружать файл на диск.

Подготовка: как получить доступ к Google Drive API

Перед тем, как реализовывать код, нужно создать проект в Google Cloud и получить OAuth 2.0 токен доступа:

  1. Перейдите на Google API Console.
  2. Создайте новый проект.
  3. Включите API Google Drive для проекта.
  4. В разделе «Учётные данные» создайте OAuth 2.0 клиентские данные или сервисный аккаунт.
  5. Если используете сервисный аккаунт, скачайте JSON с ключами и добавьте его в ваш проект WordPress (например, в папку с плагином).

Далее нужно настроить права доступа для папки на Google Drive, куда будут загружаться файлы, и поделиться ей с сервисным аккаунтом (если он используется).

Реализация: как связать Contact Form 7 и Google Drive через PHP

Contact Form 7 имеет хуки, которые позволяют выполнить код после успешной отправки формы — нам нужен хук wpcf7_mail_sent. В обработчике мы получим загруженный файл и отправим его в Google Drive.

Пример кода для functions.php или плагина:

add_action('wpcf7_mail_sent', 'contactform7ru_cf7_upload_file_to_drive');
function contactform7ru_cf7_upload_file_to_drive($contact_form) {
    $submission = WPCF7_Submission::get_instance();
    if (!$submission) return;

    $uploaded_files = $submission->uploaded_files();
    if (empty($uploaded_files['your-file'])) return; // 'your-file' - имя поля загрузки

    $file_path = $uploaded_files['your-file'];

    // Подключаем Google Client
    require_once __DIR__ . '/google-api-php-client/vendor/autoload.php';

    $client = new Google_Client();
    $client->setAuthConfig(__DIR__ . '/credentials.json');
    $client->addScope(Google_Service_Drive::DRIVE_FILE);

    $service = new Google_Service_Drive($client);

    $file = new Google_Service_Drive_DriveFile();
    $file->setName(basename($file_path));
    $file->setParents(['ID_ПАПКИ_НА_DRIVE']); // Замените на ID вашей папки

    $content = file_get_contents($file_path);
    $service->files->create($file, [
        'data' => $content,
        'mimeType' => mime_content_type($file_path),
        'uploadType' => 'multipart'
    ]);
}

В этом примере:

  • Мы получаем загруженный файл из формы по имени поля your-file.
  • Используем Google API PHP Client для загрузки файла на диск.
  • Указываем папку для загрузки, чтобы систематизировать файлы.

Установка Google API PHP Client

Чтобы этот код работал, нужно установить через Composer библиотеку Google API PHP Client:

composer require google/apiclient:^2.0

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

Полезные советы и расширения функционала

Обработка нескольких файлов

Если у вас в форме несколько полей загрузки, просто переберите массив $uploaded_files и загрузите каждый файл в Google Drive по аналогии.

Логирование ошибок

Для отладки добавьте логирование ошибок Google API и обработки файлов в отдельный файл или системный лог WordPress, чтобы быстро находить проблему.

Интеграция с CRM и уведомления

После успешной загрузки файла можно отправить ссылку на него в CRM или на email менеджеру, используя встроенные хуки Contact Form 7 или сторонние плагины, например, WPRemark для расширенных уведомлений.

Заключение

Автоматическая отправка файлов из Contact Form 7 в Google Drive — полезный навык для оптимизации работы с документами и файлами от пользователей. Немного усилий на настройку Google API и написание кода решают задачу централизованного хранения и упрощают рабочие процессы.

Если нужна готовая интеграция с дополнительными возможностями, можно рассмотреть специализированные плагины на WPShop.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как добавить поле выбора даты в Contact Form 7: пошаговое руководство и примеры
05.01.2026
Contact Form 7: автоответы и подтверждения отправки формы в WordPress
04.11.2025
Contact Form 7: отмена отправки и подтверждение через popup окно
16.11.2025
Contact Form 7: как отправлять данные формы во вторые сервисы через Webhook
21.12.2025
Contact Form 7: как создать многоступенчатую форму в WordPress
27.12.2025
×
WordPress
дай сайту суперсилу!

Скидки на топовые темы и плагины

Активировать суперсилу ⋙