Google Analytics for WordPress by MonsterInsights - Version 5.5

Version Description

Release Date: May 1st, 2016

  • Bugfixes:

    • Fixes issue with changelog missing some deployed versions
  • Enhancements:

    • Add new System Info tab for faster support
Download this release

Release Info

Developer smub
Plugin Icon 128x128 Google Analytics for WordPress by MonsterInsights
Version 5.5
Comparing to
See all releases

Code changes from version 5.4.9 to 5.5

admin/class-admin.php CHANGED
@@ -26,6 +26,8 @@ class Yoast_GA_Admin extends Yoast_GA_Options {
26
  }
27
  }
28
 
 
 
29
  }
30
 
31
  /**
@@ -475,6 +477,22 @@ class Yoast_GA_Admin extends Yoast_GA_Options {
475
  require 'views/content_head.php';
476
  }
477
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
478
  /**
479
  * Render the admin page footer with sidebar for the GA Plugin
480
  */
@@ -482,13 +500,6 @@ class Yoast_GA_Admin extends Yoast_GA_Options {
482
 
483
  do_action( 'yoast_ga_admin_footer' );
484
 
485
- if ( true == WP_DEBUG ) {
486
- // Show the debug information if debug is enabled in the wp_config file
487
- echo '<div id="ga-debug-info" class="postbox"><h3 class="hndle"><span>' . __( 'Debug information', 'google-analytics-for-wordpress' ) . '</span></h3><div class="inside"><pre>';
488
- var_dump( $this->options );
489
- echo '</pre></div></div>';
490
- }
491
-
492
  if ( class_exists( 'MI_Product_GA_Premium' ) ) {
493
  $license_manager = new MI_Plugin_License_Manager( new MI_Product_GA_Premium() );
494
  if ( $license_manager->license_is_valid() ) {
26
  }
27
  }
28
 
29
+ add_action( 'admin_init', array( $this, 'system_info' ) );
30
+
31
  }
32
 
33
  /**
477
  require 'views/content_head.php';
478
  }
479
 
480
+ /**
481
+ * Output System Info file
482
+ */
483
+ public function system_info() {
484
+ if ( ! empty( $_REQUEST['monsterinsights-action'] ) && $_REQUEST['monsterinsights-action'] === 'download_sysinfo' ) {
485
+ if ( ! current_user_can( 'manage_options' ) ) {
486
+ return;
487
+ }
488
+ nocache_headers();
489
+ header( 'Content-Type: text/plain' );
490
+ header( 'Content-Disposition: attachment; filename="monsterinsights-system-info.txt"' );
491
+ echo wp_strip_all_tags( $_POST['monsterinsights-sysinfo'] );
492
+ die();
493
+ }
494
+ }
495
+
496
  /**
497
  * Render the admin page footer with sidebar for the GA Plugin
498
  */
500
 
501
  do_action( 'yoast_ga_admin_footer' );
502
 
 
 
 
 
 
 
 
503
  if ( class_exists( 'MI_Product_GA_Premium' ) ) {
504
  $license_manager = new MI_Plugin_License_Manager( new MI_Product_GA_Premium() );
505
  if ( $license_manager->license_is_valid() ) {
admin/pages/dashboard.php CHANGED
@@ -17,6 +17,7 @@ echo $yoast_ga_admin->content_head();
17
  <a class="nav-tab" id="general-tab" href="#top#general"><?php _e( 'Overview', 'google-analytics-for-wordpress' ); ?></a>
18
  <a class="nav-tab" id="dimensions-tab" href="#top#dimensions"><?php _e( 'Reports', 'google-analytics-for-wordpress' ); ?></a>
19
  <a class="nav-tab" id="customdimensions-tab" href="#top#customdimensions"><?php _e( 'Custom dimension reports', 'google-analytics-for-wordpress' ); ?></a>
 
20
  </h2>
21
 
22
  <script type="text/javascript">
@@ -122,6 +123,149 @@ echo $yoast_ga_admin->content_head();
122
  do_action( 'yst_ga_custom_dimension_add-dashboards-tab' );
123
  ?>
124
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
  </div>
126
 
127
 
17
  <a class="nav-tab" id="general-tab" href="#top#general"><?php _e( 'Overview', 'google-analytics-for-wordpress' ); ?></a>
18
  <a class="nav-tab" id="dimensions-tab" href="#top#dimensions"><?php _e( 'Reports', 'google-analytics-for-wordpress' ); ?></a>
19
  <a class="nav-tab" id="customdimensions-tab" href="#top#customdimensions"><?php _e( 'Custom dimension reports', 'google-analytics-for-wordpress' ); ?></a>
20
+ <a class="nav-tab" id="systeminfo-tab" href="#top#systeminfo"><?php _e( 'System Info', 'google-analytics-for-wordpress' ); ?></a>
21
  </h2>
22
 
23
  <script type="text/javascript">
123
  do_action( 'yst_ga_custom_dimension_add-dashboards-tab' );
124
  ?>
125
  </div>
126
+
127
+ <div id="systeminfo" class="wpseotab gatab">
128
+ <form action="<?php echo esc_url( admin_url( 'admin.php?page=yst_ga_dashboard#top#systeminfo' ) ); ?>" method="post" dir="ltr">
129
+ <textarea id="ga-debug-info" style="width: 800px; height: 400px; font-family: Menlo, Monaco, monospace; background: none; white-space: pre; overflow: auto; display: block;" class="postbox" readonly="readonly" onclick="this.focus(); this.select()" name="monsterinsights-sysinfo" title="To copy the system info, click below then press Ctrl + C (PC) or Cmd + C (Mac)."><?php
130
+ global $wpdb;
131
+ ob_start();
132
+ print_r( $this->options );
133
+ $options = ob_get_contents();
134
+ ob_end_clean();
135
+ // Get theme info
136
+ $theme_data = wp_get_theme();
137
+ $theme = $theme_data->Name . ' ' . $theme_data->Version;
138
+
139
+ $return = '### Begin System Info ###' . "\n\n";
140
+ // Start with the basics...
141
+ $return .= '-- Site Info' . "\n\n";
142
+ $return .= 'Site URL: ' . site_url() . "\n";
143
+ $return .= 'Home URL: ' . home_url() . "\n";
144
+ $return .= 'Multisite: ' . ( is_multisite() ? 'Yes' : 'No' ) . "\n";
145
+
146
+ // WordPress configuration
147
+ $return .= "\n" . '-- WordPress Configuration' . "\n\n";
148
+ $return .= 'Version: ' . get_bloginfo( 'version' ) . "\n";
149
+ $return .= 'Language: ' . ( defined( 'WPLANG' ) && WPLANG ? WPLANG : 'en_US' ) . "\n";
150
+ $return .= 'Permalink Structure: ' . ( get_option( 'permalink_structure' ) ? get_option( 'permalink_structure' ) : 'Default' ) . "\n";
151
+ $return .= 'Active Theme: ' . $theme . "\n";
152
+ $return .= 'Show On Front: ' . get_option( 'show_on_front' ) . "\n";
153
+ // Only show page specs if frontpage is set to 'page'
154
+ if( get_option( 'show_on_front' ) == 'page' ) {
155
+ $front_page_id = get_option( 'page_on_front' );
156
+ $blog_page_id = get_option( 'page_for_posts' );
157
+ $return .= 'Page On Front: ' . ( $front_page_id != 0 ? get_the_title( $front_page_id ) . ' (#' . $front_page_id . ')' : 'Unset' ) . "\n";
158
+ $return .= 'Page For Posts: ' . ( $blog_page_id != 0 ? get_the_title( $blog_page_id ) . ' (#' . $blog_page_id . ')' : 'Unset' ) . "\n";
159
+ }
160
+ $return .= 'ABSPATH: ' . ABSPATH . "\n";
161
+ // Make sure wp_remote_post() is working
162
+ $request['cmd'] = '_notify-validate';
163
+ $params = array(
164
+ 'sslverify' => false,
165
+ 'timeout' => 60,
166
+ 'user-agent' => 'MI/' . GAWP_VERSION,
167
+ 'body' => $request
168
+ );
169
+ $response = wp_remote_post( 'https://www.paypal.com/cgi-bin/webscr', $params );
170
+ if( !is_wp_error( $response ) && $response['response']['code'] >= 200 && $response['response']['code'] < 300 ) {
171
+ $WP_REMOTE_POST = 'wp_remote_post() works';
172
+ } else {
173
+ $WP_REMOTE_POST = 'wp_remote_post() does not work';
174
+ }
175
+ $return .= 'Remote Post: ' . $WP_REMOTE_POST . "\n";
176
+ $return .= 'Table Prefix: ' . 'Length: ' . strlen( $wpdb->prefix ) . ' Status: ' . ( strlen( $wpdb->prefix ) > 16 ? 'ERROR: Too long' : 'Acceptable' ) . "\n";
177
+
178
+ $return .= 'WP_DEBUG: ' . ( defined( 'WP_DEBUG' ) ? WP_DEBUG ? 'Enabled' : 'Disabled' : 'Not set' ) . "\n";
179
+ $return .= 'Memory Limit: ' . WP_MEMORY_LIMIT . "\n";
180
+
181
+ $return .= "\n" . '-- MI Version' . "\n";
182
+ $return .= GAWP_VERSION;
183
+
184
+ // MI configuration
185
+ $return .= "\n\n" . '-- MI Configuration' . "\n";
186
+ $return .= $options;
187
+
188
+
189
+ // Get plugins that have an update
190
+ $updates = get_plugin_updates();
191
+ // Must-use plugins
192
+ // NOTE: MU plugins can't show updates!
193
+ $muplugins = get_mu_plugins();
194
+ if( count( $muplugins > 0 ) ) {
195
+ $return .= "\n" . '-- Must-Use Plugins' . "\n\n";
196
+ foreach( $muplugins as $plugin => $plugin_data ) {
197
+ $return .= $plugin_data['Name'] . ': ' . $plugin_data['Version'] . "\n";
198
+ }
199
+
200
+ }
201
+ // WordPress active plugins
202
+ $return .= "\n" . '-- WordPress Active Plugins' . "\n\n";
203
+ $plugins = get_plugins();
204
+ $active_plugins = get_option( 'active_plugins', array() );
205
+ foreach( $plugins as $plugin_path => $plugin ) {
206
+ if( !in_array( $plugin_path, $active_plugins ) )
207
+ continue;
208
+ $update = ( array_key_exists( $plugin_path, $updates ) ) ? ' (needs update - ' . $updates[$plugin_path]->update->new_version . ')' : '';
209
+ $return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
210
+ }
211
+
212
+ // WordPress inactive plugins
213
+ $return .= "\n" . '-- WordPress Inactive Plugins' . "\n\n";
214
+ foreach( $plugins as $plugin_path => $plugin ) {
215
+ if( in_array( $plugin_path, $active_plugins ) )
216
+ continue;
217
+ $update = ( array_key_exists( $plugin_path, $updates ) ) ? ' (needs update - ' . $updates[$plugin_path]->update->new_version . ')' : '';
218
+ $return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
219
+ }
220
+
221
+ if( is_multisite() ) {
222
+ // WordPress Multisite active plugins
223
+ $return .= "\n" . '-- Network Active Plugins' . "\n\n";
224
+ $plugins = wp_get_active_network_plugins();
225
+ $active_plugins = get_site_option( 'active_sitewide_plugins', array() );
226
+ foreach( $plugins as $plugin_path ) {
227
+ $plugin_base = plugin_basename( $plugin_path );
228
+ if( !array_key_exists( $plugin_base, $active_plugins ) )
229
+ continue;
230
+ $update = ( array_key_exists( $plugin_path, $updates ) ) ? ' (needs update - ' . $updates[$plugin_path]->update->new_version . ')' : '';
231
+ $plugin = get_plugin_data( $plugin_path );
232
+ $return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
233
+ }
234
+ }
235
+ // Server configuration (really just versioning)
236
+ $return .= "\n" . '-- Webserver Configuration' . "\n\n";
237
+ $return .= 'PHP Version: ' . PHP_VERSION . "\n";
238
+ $return .= 'MySQL Version: ' . $wpdb->db_version() . "\n";
239
+ $return .= 'Webserver Info: ' . $_SERVER['SERVER_SOFTWARE'] . "\n";
240
+
241
+ // PHP configs... now we're getting to the important stuff
242
+ $return .= "\n" . '-- PHP Configuration' . "\n\n";
243
+ $return .= 'Safe Mode: ' . ( ini_get( 'safe_mode' ) ? 'Enabled' : 'Disabled' . "\n" );
244
+ $return .= 'Memory Limit: ' . ini_get( 'memory_limit' ) . "\n";
245
+ $return .= 'Upload Max Size: ' . ini_get( 'upload_max_filesize' ) . "\n";
246
+ $return .= 'Post Max Size: ' . ini_get( 'post_max_size' ) . "\n";
247
+ $return .= 'Upload Max Filesize: ' . ini_get( 'upload_max_filesize' ) . "\n";
248
+ $return .= 'Time Limit: ' . ini_get( 'max_execution_time' ) . "\n";
249
+ $return .= 'Max Input Vars: ' . ini_get( 'max_input_vars' ) . "\n";
250
+ $return .= 'Display Errors: ' . ( ini_get( 'display_errors' ) ? 'On (' . ini_get( 'display_errors' ) . ')' : 'N/A' ) . "\n";
251
+
252
+ // PHP extensions and such
253
+ $return .= "\n" . '-- PHP Extensions' . "\n\n";
254
+ $return .= 'cURL: ' . ( function_exists( 'curl_init' ) ? 'Supported' : 'Not Supported' ) . "\n";
255
+ $return .= 'fsockopen: ' . ( function_exists( 'fsockopen' ) ? 'Supported' : 'Not Supported' ) . "\n";
256
+ $return .= 'SOAP Client: ' . ( class_exists( 'SoapClient' ) ? 'Installed' : 'Not Installed' ) . "\n";
257
+ $return .= 'Suhosin: ' . ( extension_loaded( 'suhosin' ) ? 'Installed' : 'Not Installed' ) . "\n";
258
+
259
+ $return .= "\n" . '### End System Info ###';
260
+ echo $return;
261
+ ?>
262
+ </textarea>
263
+ <p class="submit">
264
+ <input type="hidden" name="monsterinsights-action" value="download_sysinfo" />
265
+ <?php submit_button( 'Download System Info File', 'primary', 'monsterinsights-download-sysinfo', false ); ?>
266
+ </p>
267
+ </form>
268
+ </div>
269
  </div>
270
 
271
 
googleanalytics.php CHANGED
@@ -9,7 +9,7 @@
9
  * Plugin URI: https://www.monsterinsights.com/pricing/#utm_source=wordpress&utm_medium=plugin&utm_campaign=wpgaplugin&utm_content=v504
10
  * Description: This plugin makes it simple to add Google Analytics to your WordPress site, adding lots of features, e.g. error page, search result and automatic outgoing links and download tracking.
11
  * Author: MonsterInsights
12
- * Version: 5.4.9
13
  * Requires at least: 3.9
14
  * Author URI: https://www.monsterinsights.com/
15
  * License: GPL v3
@@ -35,7 +35,7 @@
35
 
36
  // This plugin was originally based on Rich Boakes' Analytics plugin: http://boakes.org/analytics, but has since been rewritten and refactored multiple times.
37
 
38
- define( 'GAWP_VERSION', '5.4.9' );
39
 
40
  define( 'GAWP_FILE', __FILE__ );
41
 
9
  * Plugin URI: https://www.monsterinsights.com/pricing/#utm_source=wordpress&utm_medium=plugin&utm_campaign=wpgaplugin&utm_content=v504
10
  * Description: This plugin makes it simple to add Google Analytics to your WordPress site, adding lots of features, e.g. error page, search result and automatic outgoing links and download tracking.
11
  * Author: MonsterInsights
12
+ * Version: 5.5
13
  * Requires at least: 3.9
14
  * Author URI: https://www.monsterinsights.com/
15
  * License: GPL v3
35
 
36
  // This plugin was originally based on Rich Boakes' Analytics plugin: http://boakes.org/analytics, but has since been rewritten and refactored multiple times.
37
 
38
+ define( 'GAWP_VERSION', '5.5' );
39
 
40
  define( 'GAWP_FILE', __FILE__ );
41
 
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Google Analytics by MonsterInsights ===
2
  Contributors: chriscct7, smub
3
  Donate link: http://www.wpbeginner.com/wpbeginner-needs-your-help/
4
- Tags: analytics, analytics dashboard, google analytics, google analytics dashboard, google analytics widget, universal google analytics, statistics, tracking, stats, google, yoast, google analytics by yoast, ga, monster insights, monsterinsights
5
  Requires at least: 3.9
6
  Tested up to: 4.5
7
- Stable tag: 5.4.9
8
  License: GPL v3
9
 
10
  Connect Google Analytics with WordPress by adding your Google Analytics tracking code. Get the stats that matter.
@@ -70,9 +70,19 @@ You can also learn about other <a href="http://www.wpbeginner.com/category/plugi
70
 
71
  == Changelog ==
72
 
 
 
 
 
 
 
 
 
 
 
73
  = 5.4.9 =
74
 
75
- Release Date: April 15th, 2015
76
 
77
  * Bugfixes:
78
  * Fixes issue with eCommerce addon (also requires user to update eCommerce addon)
@@ -85,7 +95,7 @@ Release Date: April 15th, 2015
85
 
86
  = 5.4.8 =
87
 
88
- Release Date: April 14th, 2015
89
 
90
  * Bugfixes:
91
  * Fixes compatibility issue with WordPress 4.5
1
  === Google Analytics by MonsterInsights ===
2
  Contributors: chriscct7, smub
3
  Donate link: http://www.wpbeginner.com/wpbeginner-needs-your-help/
4
+ Tags: analytics, analytics dashboard, google analytics, google analytics dashboard, google analytics widget, universal google analytics, statistics, tracking, stats, google, yoast, google analytics by yoast, ga, monster insights, monsterinsights, universal analytics, web stats, ecommerce, ecommerce tracking
5
  Requires at least: 3.9
6
  Tested up to: 4.5
7
+ Stable tag: 5.5
8
  License: GPL v3
9
 
10
  Connect Google Analytics with WordPress by adding your Google Analytics tracking code. Get the stats that matter.
70
 
71
  == Changelog ==
72
 
73
+ = 5.5 =
74
+
75
+ Release Date: May 1st, 2016
76
+
77
+ * Bugfixes:
78
+ * Fixes issue with changelog missing some deployed versions
79
+
80
+ * Enhancements:
81
+ * Add new System Info tab for faster support
82
+
83
  = 5.4.9 =
84
 
85
+ Release Date: April 15th, 2016
86
 
87
  * Bugfixes:
88
  * Fixes issue with eCommerce addon (also requires user to update eCommerce addon)
95
 
96
  = 5.4.8 =
97
 
98
+ Release Date: April 14th, 2016
99
 
100
  * Bugfixes:
101
  * Fixes compatibility issue with WordPress 4.5