WordPress Website: Logging Contact Form 7 Submissions for Improved Analytics

September 15, 2023

In today’s digital landscape, data is the key to making informed decisions. If you’re running a WordPress website and utilising the popular Contact Form 7 plugin for your contact forms, you have a valuable source of user-generated data at your disposal. By logging Contact Form 7 submissions, you can gain insights into user interactions, track user behaviour, and enhance your website’s performance.

In this comprehensive guide, we’ll walk you through the process of setting up a Contact Form 7 submission logging system using a custom WordPress function. With this system in place, you’ll be able to monitor form submissions, gather crucial information, and make data-driven improvements to your website.

Why Log Contact Form 7 Submissions?

Before diving into the technical details, let’s understand why logging Contact Form 7 submissions is essential:

  1. Analytics: Logging submissions provides valuable analytics data, including user interactions, popular forms, and conversion rates. These insights can help you optimize your website for better performance.
  2. User Insights: By capturing user data, you can gain insights into your audience’s preferences, demographics, and behavior. This information is invaluable for tailoring your content and services to your target audience.
  3. Error Detection: If users encounter issues with your forms, logging submissions can help identify errors and glitches. This proactive approach ensures a seamless user experience.
  4. Security: Monitoring form submissions can aid in identifying and mitigating potential security threats, such as spam submissions or unauthorized access attempts.

Now that you understand the benefits, let’s get started with the technical implementation.

Implementing Contact Form 7 Submission Logging

To log Contact Form 7 submissions effectively, we’ll use a custom WordPress function. Follow these steps:

Step 1: Hook into Contact Form 7’s Submission Process

// Hook into Contact Form 7's submission process
add_action('wpcf7_mail_sent', 'log_cf7_submission', 10, 1);

This code sets up a hook that triggers when a Contact Form 7 submission is sent.

Step 2: Define the Logging Function

function log_cf7_submission($contact_form) {
    // Get the form submission data
    $submission = WPCF7_Submission::get_instance();

    if ($submission) {
        // Retrieve form information
        $form_title = $contact_form->title();
        $posted_data = $submission->get_posted_data();

        // Capture landing page URL
        $landing_page_url = "http";
        if ($_SERVER["HTTPS"] == "on") {
            $landing_page_url .= "s";
        $landing_page_url .= "://";
        $landing_page_url .= $_SERVER["HTTP_HOST"];
        $landing_page_url .= $_SERVER["REQUEST_URI"];

        // Capture user agent and IP address
        $user_agent = $_SERVER['HTTP_USER_AGENT'];
        $ip_address = $_SERVER['REMOTE_ADDR'];

        // Detect browser information from the user agent
        $browser = get_browser(null, true);
        $browser_name = $browser['browser'] ?? 'Unknown';
        $browser_version = $browser['version'] ?? 'Unknown';

        // Create a formatted log message
        $log_message = "Contact Form 7 Submission:\n";
        $log_message .= "Form ID: " . $contact_form->id() . "\n";
        $log_message .= "Form Title: " . $contact_form->title();
        $log_message .= "Submission Time: " . date('Y-m-d H:i:s') . "\n";
        $log_message .= "Submission Data:\n" . print_r($posted_data, true) . "\n\n";
        $log_message .= "Landing Page:\n" . print_r($landing_page_url) . "\n\n";
        $log_message .= "IP Address: \n" . print_r($ip_address) . "\n\n";
        $log_message .= "User Agent: \n" . print_r($user_agent) . "\n\n";
        $log_message .= "Browser Name: \n" . print_r($browser_name) . "\n\n";
        $log_message .= "Browser Version: \n" . print_r($browser_version) . "\n\n";

        // Write the log message to the debug.log file
        error_log($log_message, 3, WP_CONTENT_DIR . '/debug.log');

This code defines the log_cf7_submission function. It captures various data points, including form details, submission time, landing page URL, user agent, IP address, and browser information. It then creates a formatted log message and writes it to the debug.log file.

Step 3: Enjoy the Benefits

With the Contact Form 7 submission logging system in place, you can now enjoy the benefits of enhanced analytics, user insights, error detection, and improved security. Regularly review the log data to make informed decisions that boost your website’s performance and user experience.

Logging Contact Form 7 submissions is a powerful strategy for optimising your WordPress website. By implementing this system, you’ll gain valuable insights into user behaviour, enhance security, and make data-driven improvements. Take control of your website’s performance today by harnessing the potential of Contact Form 7 submission logging.



Digital Agency Cape Town

© 2023 | Trinity Managed Solutions (PTY) LTD
Privacy Policy