Slimstat Analytics - Version 4.8.1

Version Description

  • [Update] Async mode will now serialize concurrent requests to the backend to optimize performance and reduce server load.
  • [Fix] Addressed a remote XSS vulnerability disclosed by Sucuri/GoDaddy.
  • [Fix] Charts were displaying the wrong label for certain values (thank you, Alex).
Download this release

Release Info

Developer coolmann
Plugin Icon 128x128 Slimstat Analytics
Version 4.8.1
Comparing to
See all releases

Code changes from version 4.8 to 4.8.1

README.md CHANGED
@@ -6,13 +6,17 @@ Text Domain: wp-slimstat
6
  **Requires at least:** 3.8
7
  Requires PHP: 5.2
8
  **Tested up to:** 5.1
9
- **Stable tag:** 4.8
10
 
11
 
12
  ## Description
13
  The leading web analytics plugin for WordPress. Track returning customers and registered users, monitor Javascript events, detect intrusions, analyze email campaigns. Thousands of WordPress sites are already using it.
14
 
15
 
 
 
 
 
16
  ### Main features
17
  * Get access to real-time access log, measure server latency, track page events, keep an eye on your bounce rate and much more.
18
  * Add shortcodes to your website to display reports in widgets or directly in posts and pages.
@@ -75,8 +79,32 @@ Slimstat is available in multiple languages: English, Belarusian (UStarCash), Ch
75
  Our knowledge base is available on our [support center](https://docs.wp-slimstat.com/) website.
76
 
77
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  ## Changelog
79
 
 
 
 
 
 
 
80
  ### 4.8
81
  * [Note] Now that we have a cleaner foundation to build on, it's time to start introducing new reports and new ways to segment your audience and the traffic they generate. While our users test the latest changes and updates (to confirm that the foundation is indeed solid and bug-free), we are hard at work implementing the first batch of new reports. Some of them will be made available in the free version, while others will be added to our premium add-on, [User Overview](http://www.wp-slimstat.com/downloads/user-overview/). And we need your help! If you think that a specific report should be added to Slimstat, please do not hesitate to let us know!
82
  * [Note] Worried about the recent [news regarding jQuery vulnerabilities](https://www.zdnet.com/article/popular-jquery-javascript-library-impacted-by-prototype-pollution-flaw/)? Slimstat doesn't use jQuery as a dependency, so you can sleep tight knowing that your website will not be affected.
6
  **Requires at least:** 3.8
7
  Requires PHP: 5.2
8
  **Tested up to:** 5.1
9
+ **Stable tag:** 4.8.1
10
 
11
 
12
  ## Description
13
  The leading web analytics plugin for WordPress. Track returning customers and registered users, monitor Javascript events, detect intrusions, analyze email campaigns. Thousands of WordPress sites are already using it.
14
 
15
 
16
+ ### Feature Spotlight
17
+ [youtube https://www.youtube.com/watch?v=zEKP9yC8x6g]
18
+
19
+
20
  ### Main features
21
  * Get access to real-time access log, measure server latency, track page events, keep an eye on your bounce rate and much more.
22
  * Add shortcodes to your website to display reports in widgets or directly in posts and pages.
79
  Our knowledge base is available on our [support center](https://docs.wp-slimstat.com/) website.
80
 
81
 
82
+ ## Screenshots
83
+ ### 1. **Overview** - Your website traffic at a glance
84
+ [missing image]
85
+
86
+ ### 2. **Activity Log** - A real-time view of your visitors' whereabouts
87
+ [missing image]
88
+
89
+ ### 3. **Settings** - Plenty of options to customize the plugin's behavior
90
+ [missing image]
91
+
92
+ ### 4. **Interactive World Map** - See where your visitors are coming from
93
+ [missing image]
94
+
95
+ ### 5. **Responsive layout** - Keep an eye on your reports on the go
96
+ [missing image]
97
+
98
+
99
+
100
  ## Changelog
101
 
102
+ ### 4.8.1
103
+ * [Update] Async mode will now serialize concurrent requests to the backend to optimize performance and reduce server load.
104
+ * [Fix] Addressed a remote XSS vulnerability disclosed by Sucuri/GoDaddy.
105
+ * [Fix] Charts were displaying the wrong label for certain values (thank you, Alex).
106
+
107
+
108
  ### 4.8
109
  * [Note] Now that we have a cleaner foundation to build on, it's time to start introducing new reports and new ways to segment your audience and the traffic they generate. While our users test the latest changes and updates (to confirm that the foundation is indeed solid and bug-free), we are hard at work implementing the first batch of new reports. Some of them will be made available in the free version, while others will be added to our premium add-on, [User Overview](http://www.wp-slimstat.com/downloads/user-overview/). And we need your help! If you think that a specific report should be added to Slimstat, please do not hesitate to let us know!
110
  * [Note] Worried about the recent [news regarding jQuery vulnerabilities](https://www.zdnet.com/article/popular-jquery-javascript-library-impacted-by-prototype-pollution-flaw/)? Slimstat doesn't use jQuery as a dependency, so you can sleep tight knowing that your website will not be affected.
admin/js/slimstat.admin.js CHANGED
@@ -26,7 +26,8 @@ jQuery( function() {
26
  // Reload a report's data if it is (re)activated via the checkbox under Screen Options
27
  jQuery( 'input.hide-postbox-tog[id^=slim_p]' ).on( 'click.postboxes', function () {
28
  if ( jQuery( this ).prop( "checked" ) && jQuery( '#' + jQuery( this ).val() ).length ) {
29
- SlimStatAdmin.refresh_report( jQuery( this ).val() );
 
30
  }
31
  });
32
 
@@ -44,7 +45,8 @@ jQuery( function() {
44
  }
45
  }
46
 
47
- SlimStatAdmin.refresh_report( id );
 
48
 
49
  // Remove any temporary filters set here above
50
  jQuery( '.slimstat-temp-filter' ).remove();
@@ -57,8 +59,10 @@ jQuery( function() {
57
 
58
  // Asynchronous reports are loaded dynamically after the page loads
59
  if ( SlimStatAdminParams.async_load == 'on' ) {
 
60
  jQuery( 'div[id^=slim_]' ).each( function() {
61
- SlimStatAdmin.refresh_report( jQuery( this ).attr( 'id' ) );
 
62
  } );
63
  }
64
 
@@ -408,37 +412,50 @@ var SlimStatAdmin = {
408
  window.setTimeout( "SlimStatAdmin.refresh_countdown();", 1000 );
409
  }
410
  },
411
-
412
- refresh_report: function( id ) {
413
- var inner_content = '#' + id + ' .inside';
414
- jQuery( inner_content ).html( '<p class="loading"><i class="slimstat-font-spin4 animate-spin"></i></p>' );
415
- data = {
416
- action: 'slimstat_load_report',
417
- security: jQuery( '#meta-box-order-nonce' ).val(),
418
- page: SlimStatAdmin.get_current_tab(),
419
- report_id: id
420
- };
421
 
422
- // Append the data from the hidden form
423
- filters_input = jQuery( '#slimstat-filters-form .slimstat-post-filter' ).toArray();
424
- for ( i in filters_input ) {
425
- data[ filters_input[ i ][ 'name' ] ] = filters_input[ i ][ 'value' ];
426
- }
427
 
428
- jQuery.post( ajaxurl, data, function( response ) {
429
- // Charts don't play nice with the "fade" animation we have for the other reports
430
- if ( id.indexOf( '_01' ) > 0 ) {
431
- jQuery( inner_content ).html( response );
432
  }
433
- else{
434
- jQuery( inner_content ).fadeOut( 500, function() { jQuery( this ).html( response ).fadeIn( 500 ); } );
435
 
436
- // If we are refreshing the Activity Log, let's reset the countdown timer
437
- if ( id == 'slim_p7_02' ) {
438
- SlimStatAdmin._refresh_timer = SlimStatAdminParams.refresh_interval;
439
- }
 
 
 
 
 
 
 
440
  }
441
- } );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
442
  },
443
 
444
  get_query_string_filters: function( url ) {
26
  // Reload a report's data if it is (re)activated via the checkbox under Screen Options
27
  jQuery( 'input.hide-postbox-tog[id^=slim_p]' ).on( 'click.postboxes', function () {
28
  if ( jQuery( this ).prop( "checked" ) && jQuery( '#' + jQuery( this ).val() ).length ) {
29
+ refresh = SlimStatAdmin.refresh_report( jQuery( this ).val(), true );
30
+ refresh();
31
  }
32
  });
33
 
45
  }
46
  }
47
 
48
+ refresh = SlimStatAdmin.refresh_report( id, true );
49
+ refresh();
50
 
51
  // Remove any temporary filters set here above
52
  jQuery( '.slimstat-temp-filter' ).remove();
59
 
60
  // Asynchronous reports are loaded dynamically after the page loads
61
  if ( SlimStatAdminParams.async_load == 'on' ) {
62
+ var base = jQuery.when({});
63
  jQuery( 'div[id^=slim_]' ).each( function() {
64
+ jQuery( '#' + jQuery( this ).attr( 'id' ) + ' .inside' ).html( '<p class="loading"><i class="slimstat-font-spin4 animate-spin"></i></p>' );
65
+ base = base.then( SlimStatAdmin.refresh_report( jQuery( this ).attr( 'id' ), true ) );
66
  } );
67
  }
68
 
412
  window.setTimeout( "SlimStatAdmin.refresh_countdown();", 1000 );
413
  }
414
  },
 
 
 
 
 
 
 
 
 
 
415
 
416
+ refresh_report: function( id, show_wheel ) {
417
+ return function() {
418
+ var inner_content = '#' + id + ' .inside';
419
+ var defer = jQuery.Deferred();
 
420
 
421
+ if ( show_wheel ) {
422
+ jQuery( '#' + id + ' .inside' ).html( '<p class="loading"><i class="slimstat-font-spin4 animate-spin"></i></p>' );
 
 
423
  }
 
 
424
 
425
+ data = {
426
+ action: 'slimstat_load_report',
427
+ security: jQuery( '#meta-box-order-nonce' ).val(),
428
+ page: SlimStatAdmin.get_current_tab(),
429
+ report_id: id
430
+ };
431
+
432
+ // Append the data from the hidden form
433
+ filters_input = jQuery( '#slimstat-filters-form .slimstat-post-filter' ).toArray();
434
+ for ( i in filters_input ) {
435
+ data[ filters_input[ i ][ 'name' ] ] = filters_input[ i ][ 'value' ];
436
  }
437
+
438
+ jQuery.ajax( { method: 'POST', url: ajaxurl, data: data } )
439
+ .done( function( response ) {
440
+ // Charts don't play nice with the "fade" animation we have for the other reports
441
+ if ( id.indexOf( '_01' ) > 0 ) {
442
+ jQuery( inner_content ).html( response );
443
+ }
444
+ else{
445
+ jQuery( inner_content ).fadeOut( 500, function() { jQuery( this ).html( response ).fadeIn( 500 ); } );
446
+
447
+ // If we are refreshing the Activity Log, let's reset the countdown timer
448
+ if ( id == 'slim_p7_02' ) {
449
+ SlimStatAdmin._refresh_timer = SlimStatAdminParams.refresh_interval;
450
+ }
451
+ }
452
+ } )
453
+ .complete( function() {
454
+ defer.resolve();
455
+ } );
456
+
457
+ return defer.promise();
458
+ }
459
  },
460
 
461
  get_query_string_filters: function( url ) {
admin/view/right-now.php CHANGED
@@ -186,10 +186,10 @@ for ( $i=0; $i < $count_page_results; $i++ ) {
186
 
187
  // Plugins
188
  $plugins = '';
189
- if (!empty($results[$i]['plugins'])){
190
- $results[$i]['plugins'] = explode(',', $results[$i]['plugins']);
191
- foreach($results[$i]['plugins'] as $a_plugin){
192
- $a_plugin = trim($a_plugin);
193
  $plugins .= "<a class='slimstat-filter-link inline-icon' href='" . wp_slimstat_reports::fs_url( 'plugins contains ' . $a_plugin ) . "'><img class='slimstat-tooltip-trigger' src='$plugin_url/images/plugins/$a_plugin.png' width='16' height='16' title='" . __( $a_plugin, 'wp-slimstat' ) . "'></a> ";
194
  }
195
  }
186
 
187
  // Plugins
188
  $plugins = '';
189
+ if ( !empty( $results[ $i ][ 'plugins' ] ) ) {
190
+ $results[ $i ][ 'plugins' ] = explode( ',', $results[ $i ][ 'plugins' ] );
191
+ foreach( $results[ $i ][ 'plugins' ] as $a_plugin ) {
192
+ $a_plugin = str_replace( array( "'", '"' ), '', trim( $a_plugin ) );
193
  $plugins .= "<a class='slimstat-filter-link inline-icon' href='" . wp_slimstat_reports::fs_url( 'plugins contains ' . $a_plugin ) . "'><img class='slimstat-tooltip-trigger' src='$plugin_url/images/plugins/$a_plugin.png' width='16' height='16' title='" . __( $a_plugin, 'wp-slimstat' ) . "'></a> ";
194
  }
195
  }
admin/view/wp-slimstat-reports.php CHANGED
@@ -1299,7 +1299,7 @@ class wp_slimstat_reports {
1299
  series2.dataFields.valueY = "v2";
1300
  series2.dataFields.categoryX = "v1_label";
1301
  series2.strokeWidth = 2;
1302
- series2.tooltipText = "{name} {v3_label}: [bold]{valueY}[/]";
1303
  series2.tensionX = 0.9;
1304
 
1305
  <?php if ( wp_slimstat::$settings[ 'comparison_chart' ] == 'on' ): ?>
@@ -1308,7 +1308,7 @@ class wp_slimstat_reports {
1308
  series3.dataFields.valueY = "v3";
1309
  series3.dataFields.categoryX = "v1_label";
1310
  series3.strokeWidth = 2;
1311
- series3.tooltipText = "{name} {v3_label}: [bold]{valueY}[/]";
1312
  series3.tensionX = 0.9;
1313
 
1314
  var series4 = chart_<?php echo $_args[ 'id' ]; ?>.series.push(new am4charts.LineSeries());
@@ -1316,7 +1316,7 @@ class wp_slimstat_reports {
1316
  series4.dataFields.valueY = "v4";
1317
  series4.dataFields.categoryX = "v1_label";
1318
  series4.strokeWidth = 2;
1319
- series4.tooltipText = "{name} {v3_label}: [bold]{valueY}[/]";
1320
  series4.tensionX = 0.9;
1321
  <?php endif; ?>
1322
  // Export
1299
  series2.dataFields.valueY = "v2";
1300
  series2.dataFields.categoryX = "v1_label";
1301
  series2.strokeWidth = 2;
1302
+ series2.tooltipText = "{name} {v1_label}: [bold]{valueY}[/]";
1303
  series2.tensionX = 0.9;
1304
 
1305
  <?php if ( wp_slimstat::$settings[ 'comparison_chart' ] == 'on' ): ?>
1308
  series3.dataFields.valueY = "v3";
1309
  series3.dataFields.categoryX = "v1_label";
1310
  series3.strokeWidth = 2;
1311
+ series3.tooltipText = "<?php echo htmlspecialchars( $_args[ 'chart_labels' ][ 0 ], ENT_QUOTES, 'UTF-8' ); ?> {v3_label}: [bold]{valueY}[/]";
1312
  series3.tensionX = 0.9;
1313
 
1314
  var series4 = chart_<?php echo $_args[ 'id' ]; ?>.series.push(new am4charts.LineSeries());
1316
  series4.dataFields.valueY = "v4";
1317
  series4.dataFields.categoryX = "v1_label";
1318
  series4.strokeWidth = 2;
1319
+ series4.tooltipText = "<?php echo htmlspecialchars( $_args[ 'chart_labels' ][ 1 ], ENT_QUOTES, 'UTF-8' ); ?> {v3_label}: [bold]{valueY}[/]";
1320
  series4.tensionX = 0.9;
1321
  <?php endif; ?>
1322
  // Export
admin/wp-slimstat-admin.php CHANGED
@@ -11,9 +11,8 @@ class wp_slimstat_admin {
11
  * Init -- Sets things up.
12
  */
13
  public static function init() {
14
- self::$admin_notice = "Now that we finally have a cleaner code foundation to build on, it's time to start introducing new reports and new ways to segment your audience and the traffic they generate. While our users test the latest changes and updates (to confirm that the foundation is indeed solid and bug-free), we are hard at work implementing the first batch of new reports. Some of them will be made available in the free version, while others will be added to our premium add-on, <a href='https://www.wp-slimstat.com/downloads/user-overview/' target='_blank'>User Overview</a>. And we need your help! If you think that a specific report should be added to Slimstat, please do not hesitate <a href='https://support.wp-slimstat.com' target='_blank'>to let us know</a>.";
15
-
16
- self::$admin_notice .= '<br/><br/><a id="slimstat-hide-admin-notice" href="#" class="button-secondary">Got it, thanks</a>';
17
 
18
  // Load language files
19
  load_plugin_textdomain( 'wp-slimstat', WP_PLUGIN_DIR .'/wp-slimstat/languages', '/wp-slimstat/languages' );
@@ -150,7 +149,7 @@ class wp_slimstat_admin {
150
  $report_id = sanitize_title( $_POST[ 'report_id' ], 'slim_p0_00' );
151
 
152
  if ( !empty( wp_slimstat_reports::$reports_info[ $report_id ] ) ) {
153
- add_action('wp_ajax_slimstat_load_report', array( 'wp_slimstat_reports', 'callback_wrapper' ), 10, 2 );
154
  }
155
  }
156
  }
@@ -512,7 +511,6 @@ class wp_slimstat_admin {
512
  wp_enqueue_script( 'dashboard' );
513
  wp_enqueue_script( 'jquery-ui-datepicker' );
514
  wp_enqueue_script( 'slimstat_admin', plugins_url( '/admin/js/slimstat.admin.js', dirname( __FILE__ ) ), array( 'jquery-ui-dialog' ), null, false );
515
- // wp_enqueue_script( 'slimstat_chart', plugins_url( '/admin/js/slimstat.chart.js', dirname( __FILE__ ) ), array( 'jquery' ), null, false );
516
 
517
  // Pass some information to Javascript
518
  $params = array(
11
  * Init -- Sets things up.
12
  */
13
  public static function init() {
14
+ // self::$admin_notice = "Now that we finally have a cleaner code foundation to build on, it's time to start introducing new reports and new ways to segment your audience and the traffic they generate. While our users test the latest changes and updates (to confirm that the foundation is indeed solid and bug-free), we are hard at work implementing the first batch of new reports. Some of them will be made available in the free version, while others will be added to our premium add-on, <a href='https://www.wp-slimstat.com/downloads/user-overview/' target='_blank'>User Overview</a>. And we need your help! If you think that a specific report should be added to Slimstat, please do not hesitate <a href='https://support.wp-slimstat.com' target='_blank'>to let us know</a>.";
15
+ // self::$admin_notice .= '<br/><br/><a id="slimstat-hide-admin-notice" href="#" class="button-secondary">Got it, thanks</a>';
 
16
 
17
  // Load language files
18
  load_plugin_textdomain( 'wp-slimstat', WP_PLUGIN_DIR .'/wp-slimstat/languages', '/wp-slimstat/languages' );
149
  $report_id = sanitize_title( $_POST[ 'report_id' ], 'slim_p0_00' );
150
 
151
  if ( !empty( wp_slimstat_reports::$reports_info[ $report_id ] ) ) {
152
+ add_action( 'wp_ajax_slimstat_load_report', array( 'wp_slimstat_reports', 'callback_wrapper' ), 10, 2 );
153
  }
154
  }
155
  }
511
  wp_enqueue_script( 'dashboard' );
512
  wp_enqueue_script( 'jquery-ui-datepicker' );
513
  wp_enqueue_script( 'slimstat_admin', plugins_url( '/admin/js/slimstat.admin.js', dirname( __FILE__ ) ), array( 'jquery-ui-dialog' ), null, false );
 
514
 
515
  // Pass some information to Javascript
516
  $params = array(
readme.txt CHANGED
@@ -6,7 +6,7 @@ Text Domain: wp-slimstat
6
  Requires at least: 3.8
7
  Requires PHP: 5.2
8
  Tested up to: 5.1
9
- Stable tag: 4.8
10
 
11
  == Description ==
12
  The leading web analytics plugin for WordPress. Track returning customers and registered users, monitor Javascript events, detect intrusions, analyze email campaigns. Thousands of WordPress sites are already using it.
@@ -75,6 +75,11 @@ Our knowledge base is available on our [support center](https://docs.wp-slimstat
75
  5. **Responsive layout** - Keep an eye on your reports on the go
76
 
77
  == Changelog ==
 
 
 
 
 
78
  = 4.8 =
79
  * [Note] Now that we have a cleaner foundation to build on, it's time to start introducing new reports and new ways to segment your audience and the traffic they generate. While our users test the latest changes and updates (to confirm that the foundation is indeed solid and bug-free), we are hard at work implementing the first batch of new reports. Some of them will be made available in the free version, while others will be added to our premium add-on, [User Overview](http://www.wp-slimstat.com/downloads/user-overview/). And we need your help! If you think that a specific report should be added to Slimstat, please do not hesitate to let us know!
80
  * [Note] Worried about the recent [news regarding jQuery vulnerabilities](https://www.zdnet.com/article/popular-jquery-javascript-library-impacted-by-prototype-pollution-flaw/)? Slimstat doesn't use jQuery as a dependency, so you can sleep tight knowing that your website will not be affected.
6
  Requires at least: 3.8
7
  Requires PHP: 5.2
8
  Tested up to: 5.1
9
+ Stable tag: 4.8.1
10
 
11
  == Description ==
12
  The leading web analytics plugin for WordPress. Track returning customers and registered users, monitor Javascript events, detect intrusions, analyze email campaigns. Thousands of WordPress sites are already using it.
75
  5. **Responsive layout** - Keep an eye on your reports on the go
76
 
77
  == Changelog ==
78
+ = 4.8.1 =
79
+ * [Update] Async mode will now serialize concurrent requests to the backend to optimize performance and reduce server load.
80
+ * [Fix] Addressed a remote XSS vulnerability disclosed by Sucuri/GoDaddy.
81
+ * [Fix] Charts were displaying the wrong label for certain values (thank you, Alex).
82
+
83
  = 4.8 =
84
  * [Note] Now that we have a cleaner foundation to build on, it's time to start introducing new reports and new ways to segment your audience and the traffic they generate. While our users test the latest changes and updates (to confirm that the foundation is indeed solid and bug-free), we are hard at work implementing the first batch of new reports. Some of them will be made available in the free version, while others will be added to our premium add-on, [User Overview](http://www.wp-slimstat.com/downloads/user-overview/). And we need your help! If you think that a specific report should be added to Slimstat, please do not hesitate to let us know!
85
  * [Note] Worried about the recent [news regarding jQuery vulnerabilities](https://www.zdnet.com/article/popular-jquery-javascript-library-impacted-by-prototype-pollution-flaw/)? Slimstat doesn't use jQuery as a dependency, so you can sleep tight knowing that your website will not be affected.
wp-slimstat.js CHANGED
@@ -128,8 +128,8 @@ var SlimStat = {
128
  detect_plugins : function() {
129
  var a_plugin, plugins = [];
130
 
131
- for (a_plugin in SlimStat._plugins) {
132
- if (SlimStat._detect_single_plugin(a_plugin)) {
133
  plugins.push( a_plugin );
134
  }
135
  }
@@ -139,7 +139,7 @@ var SlimStat = {
139
  plugins.push( 'java' );
140
  }
141
 
142
- return plugins.join( "," );
143
  },
144
 
145
  get_page_performance : function() {
128
  detect_plugins : function() {
129
  var a_plugin, plugins = [];
130
 
131
+ for ( a_plugin in SlimStat._plugins ) {
132
+ if ( SlimStat._detect_single_plugin( a_plugin ) ) {
133
  plugins.push( a_plugin );
134
  }
135
  }
139
  plugins.push( 'java' );
140
  }
141
 
142
+ return plugins.join( ',' );
143
  },
144
 
145
  get_page_performance : function() {
wp-slimstat.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Slimstat Analytics
4
  Plugin URI: https://wordpress.org/plugins/wp-slimstat/
5
  Description: The leading web analytics plugin for WordPress
6
- Version: 4.8
7
  Author: Jason Crouse
8
  Author URI: https://www.wp-slimstat.com/
9
  Text Domain: wp-slimstat
@@ -15,7 +15,7 @@ if ( !empty( wp_slimstat::$settings ) ) {
15
  }
16
 
17
  class wp_slimstat {
18
- public static $version = '4.8';
19
  public static $settings = array();
20
 
21
  public static $wpdb = '';
3
  Plugin Name: Slimstat Analytics
4
  Plugin URI: https://wordpress.org/plugins/wp-slimstat/
5
  Description: The leading web analytics plugin for WordPress
6
+ Version: 4.8.1
7
  Author: Jason Crouse
8
  Author URI: https://www.wp-slimstat.com/
9
  Text Domain: wp-slimstat
15
  }
16
 
17
  class wp_slimstat {
18
+ public static $version = '4.8.1';
19
  public static $settings = array();
20
 
21
  public static $wpdb = '';