Contact Form 7: автоматическая обработка и сохранение ответов в WordPress

Почему важна автоматическая обработка ответов Contact Form 7

Contact Form 7 — один из самых популярных плагинов для создания форм обратной связи в WordPress. Однако по умолчанию он лишь отправляет данные на email, не сохраняя их в базе данных сайта. Это ограничение создаёт неудобства, если нужно вести учет отправленных заявок, анализировать данные или использовать их для последующей обработки.

Автоматическая обработка и сохранение ответов решает эту проблему: все данные из форм сохраняются в базе WordPress или внешних сервисах, что упрощает работу с заявками, автоматизацию и интеграцию с CRM.

Далее рассмотрим основные способы реализации автоматической обработки и сохранения ответов Contact Form 7 с примерами плагинов и кода.

Плагины для автоматического сохранения ответов Contact Form 7

Flamingo — простой и надёжный плагин для сохранения сообщений

Flamingo разработан авторами Contact Form 7 и позволяет сохранять все отправленные формы прямо в базу WordPress. Это отличный вариант, если нужна базовая фиксация данных без сложных настроек.

  • Устанавливаете и активируете Flamingo.
  • Все новые отправленные формы появятся в разделе "Flamingo → Inbox".
  • Можно просматривать, фильтровать и экспортировать данные.

Flamingo работает автоматически и не требует дополнительного кода.

Contact Form 7 Dynamic Text Extension и интеграция с WPShop

Для расширения функционала Contact Form 7 можно использовать Contact Form 7 Dynamic Text Extension, который позволяет динамически подставлять значения в поля и интегрировать с внешними сервисами.

Например, можно автоматически подставлять текущую дату, ID пользователя или UTM-метки, а затем сохранять эти данные вместе с формой.

Как программно сохранять ответы Contact Form 7 в таблицу WordPress

Если нужны кастомные решения или интеграция с собственной базой данных, можно использовать хук wpcf7_mail_sent, который срабатывает после успешной отправки формы.

Пример функции для сохранения данных формы в пользовательскую таблицу WordPress:

function contactform7ru_save_form_data($contact_form) {
    global $wpdb;
    $submission = WPCF7_Submission::get_instance();
    if (!$submission) {
        return;
    }
    $data = $submission->get_posted_data();
    // Предположим, что в форме есть поля 'your-name' и 'your-email'
    $name = isset($data['your-name']) ? sanitize_text_field($data['your-name']) : '';
    $email = isset($data['your-email']) ? sanitize_email($data['your-email']) : '';

    $table_name = $wpdb->prefix . 'contactform7ru_submissions';
    $wpdb->insert($table_name, [
        'name' => $name,
        'email' => $email,
        'submitted_at' => current_time('mysql')
    ]);
}
add_action('wpcf7_mail_sent', 'contactform7ru_save_form_data');

Для этого сначала нужно создать таблицу в базе данных, например, через функцию активации плагина или темы:

function contactform7ru_create_table() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'contactform7ru_submissions';
    $charset_collate = $wpdb->get_charset_collate();

    $sql = "CREATE TABLE $table_name (
      id mediumint(9) NOT NULL AUTO_INCREMENT,
      name tinytext NOT NULL,
      email varchar(100) NOT NULL,
      submitted_at datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
      PRIMARY KEY  (id)
    ) $charset_collate;";

    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    dbDelta($sql);
}
register_activation_hook(__FILE__, 'contactform7ru_create_table');

Такой подход даёт полную свободу для обработки и хранения данных.

Автоматическая отправка данных из Contact Form 7 в сторонние сервисы

Интеграция с Google Sheets через REST API

Можно настроить Contact Form 7 так, чтобы данные автоматически отправлялись в Google Sheets. Это удобно для совместного доступа и аналитики.

Пример простого кода для отправки данных в Google Sheets через вебхуки:

function contactform7ru_send_to_google_sheets($contact_form) {
    $submission = WPCF7_Submission::get_instance();
    if (!$submission) {
        return;
    }
    $data = $submission->get_posted_data();

    $body = json_encode([
        'name' => $data['your-name'],
        'email' => $data['your-email'],
        'message' => $data['your-message']
    ]);

    wp_remote_post('https://hooks.zapier.com/hooks/catch/xxx/yyy/', [
        'headers' => ['Content-Type' => 'application/json'],
        'body' => $body
    ]);
}
add_action('wpcf7_mail_sent', 'contactform7ru_send_to_google_sheets');

Вместо Zapier можно использовать любой другой сервис с API или свой сервер для обработки.

Использование плагина WPForms для расширенной автоматизации

Если функционала Contact Form 7 недостаточно, можно рассмотреть WPForms — удобный конструктор форм с мощными интеграциями и автоматизацией. WPForms предлагает:

  • Сохранение всех заявок в админке.
  • Интеграцию с CRM, email-маркетингом, платежными системами.
  • Простую настройку уведомлений и автозаполнения.

Для WordPress с Contact Form 7 это не замена, а альтернатива, если нужна более глубокая автоматизация.

Обработка и фильтрация данных Contact Form 7 перед сохранением

Иногда важно не просто сохранить данные, а проверить или модифицировать их перед этим. Для этого можно использовать фильтры и хуки Contact Form 7.

Пример проверки и очистки поля email перед сохранением:

function contactform7ru_validate_email_field($result, $tag) {
    $name = $tag->name;
    $submission = WPCF7_Submission::get_instance();
    if ($submission) {
        $data = $submission->get_posted_data();
        if ($name === 'your-email') {
            $email = isset($data[$name]) ? $data[$name] : '';
            if (!is_email($email)) {
                $result->invalidate($tag, 'Неверный формат email');
            }
        }
    }
    return $result;
}
add_filter('wpcf7_validate_email*', 'contactform7ru_validate_email_field', 20, 2);

Такой подход позволяет кастомизировать валидацию и обеспечивать высокое качество данных.

Вывод и управление сохранёнными ответами в админке WordPress

Если вы сохраняете данные в своей таблице, полезно реализовать страницу в админке для просмотра и управления заявками.

Пример создания простого меню и страницы в админке:

function contactform7ru_admin_menu() {
    add_menu_page('CF7 Ответы', 'CF7 Ответы', 'manage_options', 'contactform7ru_submissions', 'contactform7ru_render_admin_page');
}
add_action('admin_menu', 'contactform7ru_admin_menu');

function contactform7ru_render_admin_page() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'contactform7ru_submissions';
    $results = $wpdb->get_results("SELECT * FROM $table_name ORDER BY submitted_at DESC");

    echo '<div class="wrap"><h1>Отправленные формы Contact Form 7</h1><table class="widefat"><thead><tr><th>ID</th><th>Имя</th><th>Email</th><th>Дата</th></tr></thead><tbody>';
    foreach ($results as $row) {
        echo "<tr><td>{$row->id}</td><td>" . esc_html($row->name) . "</td><td>" . esc_html($row->email) . "</td><td>{$row->submitted_at}</td></tr>";
    }
    echo '</tbody></table></div>';
}

Так вы получаете простой и удобный интерфейс для просмотра заявок без почтового клиента.

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

⭐⭐⭐⭐⭐
Contact Form 7: общие проблемы и решения с AJAX отправкой формы
30.01.2026
Contact Form 7: Автозаполнение полей формы по геолокации пользователя
16.04.2026
Contact Form 7: как реализовать отмену отправки формы и возврат к редактированию
04.04.2026
Contact Form 7: как добавить уникальные поля с калькулятором в форму
01.11.2025
Contact Form 7: как автоматически удалять отправленные данные и логи формы
02.06.2026
×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙