From 32e9d80443714dd40c037bf1fb138182e23e92a3 Mon Sep 17 00:00:00 2001 From: alaca Date: Tue, 24 Mar 2026 16:36:28 +0100 Subject: [PATCH] initial commit --- assets/js/mailchimp.js | 28 +++ includes/admin/templates/analytics.php | 16 +- includes/blocks/mailchimp/markup.php | 2 +- includes/class-mailchimp-analytics-data.php | 218 +++++++++++++++++++ includes/class-mailchimp-analytics.php | 1 - includes/class-mailchimp-form-submission.php | 7 + mailchimp.php | 10 + mailchimp_upgrade.php | 6 + mailchimp_widget.php | 2 +- 9 files changed, 284 insertions(+), 6 deletions(-) create mode 100644 includes/class-mailchimp-analytics-data.php diff --git a/assets/js/mailchimp.js b/assets/js/mailchimp.js index 753c8ab9..5b172fc7 100644 --- a/assets/js/mailchimp.js +++ b/assets/js/mailchimp.js @@ -109,3 +109,31 @@ }); } })(window.jQuery); + +/* Form view tracking for analytics */ +(function () { + if (!window.mailchimpSF || !window.mailchimpSF.analytics_ajax_url) { + return; + } + + const forms = document.querySelectorAll('.mc_signup_form[data-list-id]'); + const tracked = {}; + + for (let i = 0; i < forms.length; i++) { + const listId = forms[i].getAttribute('data-list-id'); + if (listId && !tracked[listId]) { + tracked[listId] = true; + + const formData = new FormData(); + formData.append('action', 'mailchimp_sf_track_form_view'); + formData.append('list_id', listId); + formData.append('nonce', window.mailchimpSF.analytics_nonce); + + fetch(window.mailchimpSF.analytics_ajax_url, { + method: 'POST', + body: formData, + credentials: 'same-origin', + }); + } + } +})(); diff --git a/includes/admin/templates/analytics.php b/includes/admin/templates/analytics.php index f523fcee..8691ecb1 100644 --- a/includes/admin/templates/analytics.php +++ b/includes/admin/templates/analytics.php @@ -84,9 +84,19 @@
-
-

-
+ get_totals( $current_list, $start_date, $end_date ); + $daily = $analytics_data->get_analytics_data( $current_list, $start_date, $end_date ); + ?> +

+
+ +

+
diff --git a/includes/blocks/mailchimp/markup.php b/includes/blocks/mailchimp/markup.php index 2c9a8a80..60e0ba14 100644 --- a/includes/blocks/mailchimp/markup.php +++ b/includes/blocks/mailchimp/markup.php @@ -105,7 +105,7 @@ function ( $single_list ) { } ?>
-