Slimstat Analytics - Version 4.8.5.1

Version Description

  • [Fix] A bug was affecting the way shortcodes were being displayed on the website (thank you, inndesign).
  • [Fix] Some icons in the Access Log were broken and not displayed as expected.
  • [Fix] Added extra code to make sure a callback function is defined for any given report.
  • [Fix] Top reports where displaying an incorrect percentage value on the WordPress dashboard (thank you, scruffy1 and a305587).
Download this release

Release Info

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

Code changes from version 4.8.5 to 4.8.5.1

CHANGELOG.md CHANGED
@@ -1,4 +1,10 @@
1
  ## Changelog ##
 
 
 
 
 
 
2
  ### 4.8.5 ###
3
  * [New] Introduced option to not track pageviews based on the ACCEPT-LANGUAGE header sent by the browser.
4
  * [New] Introduced option to display a pageview count instead of the percentage in Top reports.
@@ -8,7 +14,7 @@
8
  * [Fix] The HTML markup in the opt-out message field was being stripped out (thank you, [paulmcmanus](https://wordpress.org/support/topic/saving-settings-flips-opt-out-message-to-plain-text/)).
9
  * [Fix] Reports could not be properly deleted in the Customizer, if the Slimstat menu was displayed in the Admin Bar.
10
  * [Fix] A fatal error thrown by the Maxmind library when the data file is corrupted has been addressed.
11
- * [Fix] The icon filename for Windows 8.1 was incorrect (thank you, Dimitri)
12
 
13
  ### 4.8.4.1 ###
14
  * [Note] As anticipated a few weeks ago, this update drops the information about your visitors' browser plugins, which had been deprecated as not useful and oftentimes unreliable. Please make sure to backup your Slimstat tables if you need to preserve this information for some reason.
1
  ## Changelog ##
2
+ ### 4.8.5.1 ###
3
+ * [Fix] A bug was affecting the way shortcodes were being displayed on the website (thank you, [inndesign](https://wordpress.org/support/topic/crashes-avada-theme-in-chrome/)).
4
+ * [Fix] Some icons in the Access Log were broken and not displayed as expected.
5
+ * [Fix] Added extra code to make sure a callback function is defined for any given report.
6
+ * [Fix] Top reports where displaying an incorrect percentage value on the WordPress dashboard (thank you, [scruffy1 and a305587](https://wordpress.org/support/topic/dashboard-widgets-showing-0)).
7
+
8
  ### 4.8.5 ###
9
  * [New] Introduced option to not track pageviews based on the ACCEPT-LANGUAGE header sent by the browser.
10
  * [New] Introduced option to display a pageview count instead of the percentage in Top reports.
14
  * [Fix] The HTML markup in the opt-out message field was being stripped out (thank you, [paulmcmanus](https://wordpress.org/support/topic/saving-settings-flips-opt-out-message-to-plain-text/)).
15
  * [Fix] Reports could not be properly deleted in the Customizer, if the Slimstat menu was displayed in the Admin Bar.
16
  * [Fix] A fatal error thrown by the Maxmind library when the data file is corrupted has been addressed.
17
+ * [Fix] The icon filename for Windows 8.1 was incorrect (thank you, Dimitri).
18
 
19
  ### 4.8.4.1 ###
20
  * [Note] As anticipated a few weeks ago, this update drops the information about your visitors' browser plugins, which had been deprecated as not useful and oftentimes unreliable. Please make sure to backup your Slimstat tables if you need to preserve this information for some reason.
admin/assets/images/browsers/other-browsers-and-os.png DELETED
Binary file
admin/assets/images/platforms/ubuntu.png ADDED
Binary file
admin/assets/images/platforms/unknown.png ADDED
Binary file
admin/index.php CHANGED
@@ -13,13 +13,13 @@ class wp_slimstat_admin {
13
  'sql' => array(),
14
  'count' => array()
15
  );
16
-
17
  /**
18
  * Init -- Sets things up.
19
  */
20
  public static function init() {
21
  self::$admin_notice = "Recently, we asked our users to help us decide if we should replace line charts with bar charts, and... the people of Slimstat have spoken! Based on the feedback we received, users were more or less evenly split between the two options, so we've decided that we'll provide both options. Yes, you read that right. We are going to add a new set of reports using the bar chart view, and then let admins choose which ones to display via the Customizer. It will even be possible to mix and match charts, if that's what you prefer. In order to prepare for this new feature, we rewrote the code that manages which reports are displayed on which screen (via the Customizer), streamlined data structures and optimized their use. Please update all the add-ons to the latest version available. Don't hesitate to contact us if you have any questions!";
22
- // self::$admin_notice = "In this day and age where every single social media platform knows our individual whereabouts on the Interwebs, we have been doing some research to implement what techies out there call <a href='https://amiunique.org/fp' target='_blank'>browser fingerprinting</a>. With this technique, it is not necessary to install any form of cookie on the user browser to collect a fingerprint. This means that the act of fingerprinting a specific browser is stateless and transparent, and thus much more accurate on average than relying on cookies. We are already wearing our lab coats and are hard at work to identify ways to leverage <a href='https://github.com/Valve/fingerprintjs2' target='_blank'>tools like Fingerprint2</a> in Slimstat. This will also allow the tracker to record things like the user's timezone: wouldn't it be nice to know what time it was for the user who was visiting your website? Of course, if you have Privacy Mode enabled, this feature will not be used, in compliance with GDPR and other international privacy laws. Stay tuned!";
23
 
24
  // Load language files
25
  load_plugin_textdomain( 'wp-slimstat', false, '/wp-slimstat/languages' );
@@ -548,12 +548,10 @@ class wp_slimstat_admin {
548
  $new_entry = array();
549
  if ( wp_slimstat::$settings[ 'use_separate_menu' ] == 'no' || is_network_admin() ) {
550
  $parent = 'slimview1';
551
- $page_location = 'slimstat';
552
  $new_entry[] = add_menu_page( __( 'Slimstat', 'wp-slimstat' ), __( 'Slimstat', 'wp-slimstat' ), $minimum_capability, $parent, array( __CLASS__, 'wp_slimstat_include_view' ) );
553
  }
554
  else {
555
  $parent = 'admin.php';
556
- $page_location = 'admin';
557
  }
558
 
559
  $current_user = wp_get_current_user();
@@ -606,9 +604,6 @@ class wp_slimstat_admin {
606
  if ( empty( wp_slimstat::$settings[ 'can_view' ]) || strpos( wp_slimstat::$settings[ 'can_view' ], $GLOBALS[ 'current_user' ]->user_login ) !== false || current_user_can( 'manage_options' ) ) {
607
  $slimstat_view_url = get_admin_url( $GLOBALS[ 'blog_id' ], "admin.php?page=" );
608
 
609
- $page_location = ( wp_slimstat::$settings[ 'use_separate_menu' ] == 'no' ) ? 'slimstat' : 'admin';
610
- $user_reports = get_user_option( "meta-box-order_{$page_location}_page_slimlayout", $GLOBALS[ 'current_user' ]->ID );
611
-
612
  $frontend_filter = '';
613
  if ( !is_admin() ) {
614
  $frontend_filter = '&amp;fs%5Bresource%5D=contains+' . urlencode( wp_slimstat::get_request_uri() );
@@ -621,7 +616,7 @@ class wp_slimstat_admin {
621
  ) );
622
 
623
  foreach ( self::$screens_info as $a_screen_id => $a_screen_info ) {
624
- if ( $a_screen_info[ 'show_in_sidebar' ] && ( !is_array( $user_reports ) || !empty( $user_reports[ $a_screen_id ] ) || !$a_screen_info[ 'is_report_group' ] ) ) {
625
  $GLOBALS[ 'wp_admin_bar' ]->add_menu( array(
626
  'id' => $a_screen_id,
627
  'href' => "{$slimstat_view_url}$a_screen_id" . ( ( $a_screen_info[ 'callback' ] == array( __CLASS__, 'wp_slimstat_include_view' ) ) ? $frontend_filter : '' ),
13
  'sql' => array(),
14
  'count' => array()
15
  );
16
+
17
  /**
18
  * Init -- Sets things up.
19
  */
20
  public static function init() {
21
  self::$admin_notice = "Recently, we asked our users to help us decide if we should replace line charts with bar charts, and... the people of Slimstat have spoken! Based on the feedback we received, users were more or less evenly split between the two options, so we've decided that we'll provide both options. Yes, you read that right. We are going to add a new set of reports using the bar chart view, and then let admins choose which ones to display via the Customizer. It will even be possible to mix and match charts, if that's what you prefer. In order to prepare for this new feature, we rewrote the code that manages which reports are displayed on which screen (via the Customizer), streamlined data structures and optimized their use. Please update all the add-ons to the latest version available. Don't hesitate to contact us if you have any questions!";
22
+ // self::$admin_notice = "In this day and age where every single social media platform knows our individual whereabouts on the Interwebs, we have been doing some research on what <em>the techies</em> out there call <a href='https://amiunique.org/fp' target='_blank'>browser fingerprinting</a>. With this technique, it is not necessary to install any cookies to identify a specific user. This means that the act of fingerprinting a specific browser is stateless and transparent, and thus much more accurate. We are already wearing our lab coats and are hard at work to leverage <a href='https://github.com/Valve/fingerprintjs2' target='_blank'>tools like Fingerprint2</a> in Slimstat. This library, among other things, will allow our tracker to record your users' timezone: wouldn't it be nice to know what time it was for the user who was visiting your website? Of course, if you have Privacy Mode enabled, this feature will not be used, in compliance with GDPR and other international privacy laws. Stay tuned!";
23
 
24
  // Load language files
25
  load_plugin_textdomain( 'wp-slimstat', false, '/wp-slimstat/languages' );
548
  $new_entry = array();
549
  if ( wp_slimstat::$settings[ 'use_separate_menu' ] == 'no' || is_network_admin() ) {
550
  $parent = 'slimview1';
 
551
  $new_entry[] = add_menu_page( __( 'Slimstat', 'wp-slimstat' ), __( 'Slimstat', 'wp-slimstat' ), $minimum_capability, $parent, array( __CLASS__, 'wp_slimstat_include_view' ) );
552
  }
553
  else {
554
  $parent = 'admin.php';
 
555
  }
556
 
557
  $current_user = wp_get_current_user();
604
  if ( empty( wp_slimstat::$settings[ 'can_view' ]) || strpos( wp_slimstat::$settings[ 'can_view' ], $GLOBALS[ 'current_user' ]->user_login ) !== false || current_user_can( 'manage_options' ) ) {
605
  $slimstat_view_url = get_admin_url( $GLOBALS[ 'blog_id' ], "admin.php?page=" );
606
 
 
 
 
607
  $frontend_filter = '';
608
  if ( !is_admin() ) {
609
  $frontend_filter = '&amp;fs%5Bresource%5D=contains+' . urlencode( wp_slimstat::get_request_uri() );
616
  ) );
617
 
618
  foreach ( self::$screens_info as $a_screen_id => $a_screen_info ) {
619
+ if ( $a_screen_info[ 'show_in_sidebar' ] ) {
620
  $GLOBALS[ 'wp_admin_bar' ]->add_menu( array(
621
  'id' => $a_screen_id,
622
  'href' => "{$slimstat_view_url}$a_screen_id" . ( ( $a_screen_info[ 'callback' ] == array( __CLASS__, 'wp_slimstat_include_view' ) ) ? $frontend_filter : '' ),
admin/view/layout.php CHANGED
@@ -20,12 +20,11 @@
20
  <h2><?php _e( 'Customize and organize your reports','wp-slimstat' ) ?></h2>
21
  <p><?php
22
  _e( 'You can drag and drop the placeholders here below from one widget area to another, to customize the layout of each report screen. You can place multiple charts on the same view, clone reports or move them to the Inactive Reports if you are not interested in that specific metric.', 'wp-slimstat' );
23
- echo ' ';
24
  if ( is_network_admin() ) {
 
25
  _e( 'By using the network-wide customizer, all your users will see the same layout you define, and they will not be able to customize it further.', 'wp-slimstat' );
26
  echo ' ';
27
  }
28
- _e( '<strong>Please note</strong>: if a placeholder is greyed out, it means that the corresponding report is currently hidden inside the Screen Options tab.', 'wp-slimstat');
29
  ?></p>
30
 
31
  <form method="get" action=""><input type="hidden" id="meta-box-order-nonce" name="meta-box-order-nonce" value="<?php echo wp_create_nonce('meta-box-order') ?>" /></form>
20
  <h2><?php _e( 'Customize and organize your reports','wp-slimstat' ) ?></h2>
21
  <p><?php
22
  _e( 'You can drag and drop the placeholders here below from one widget area to another, to customize the layout of each report screen. You can place multiple charts on the same view, clone reports or move them to the Inactive Reports if you are not interested in that specific metric.', 'wp-slimstat' );
 
23
  if ( is_network_admin() ) {
24
+ echo ' ';
25
  _e( 'By using the network-wide customizer, all your users will see the same layout you define, and they will not be able to customize it further.', 'wp-slimstat' );
26
  echo ' ';
27
  }
 
28
  ?></p>
29
 
30
  <form method="get" action=""><input type="hidden" id="meta-box-order-nonce" name="meta-box-order-nonce" value="<?php echo wp_create_nonce('meta-box-order') ?>" /></form>
admin/view/right-now.php CHANGED
@@ -8,7 +8,7 @@ $is_dashboard = empty( $_REQUEST[ 'page' ] ) || $_REQUEST[ 'page' ] != 'slimview
8
 
9
  // Available icons
10
  $supported_browser_icons = array( 'Android', 'Anonymouse', 'Baiduspider', 'BlackBerry', 'BingBot', 'CFNetwork', 'Chrome', 'Chromium', 'Default Browser', 'Edge', 'Exabot/BiggerBetter', 'FacebookExternalHit', 'FeedBurner', 'Feedfetcher-Google', 'Firefox', 'Internet Archive', 'Googlebot', 'Google Bot', 'Google Feedfetcher', 'Google Web Preview', 'IE', 'IEMobile', 'iPad', 'iPhone', 'iPod Touch', 'Maxthon', 'Mediapartners-Google', 'Microsoft-WebDAV', 'msnbot', 'Mozilla', 'NewsGatorOnline', 'Netscape', 'Nokia', 'Opera', 'Opera Mini', 'Opera Mobi', 'Pingdom', 'Python', 'PycURL', 'Safari', 'W3C_Validator', 'WordPress', 'Yahoo! Slurp', 'YandexBot' );
11
- $supported_os_icons = array( 'android',' blackberry os', 'cellos', 'chromeos', 'ios', 'iphone osx', 'java', 'linux', 'macos', 'macosx', 'rim os', 'symbianos', 'win7', 'win8', 'win8.1', 'win10', 'winphone7', 'winphone7.5', 'winphone8', 'winphone8.1', 'winvista', 'winxp' );
12
  $supported_browser_types = array( __( 'Human', 'wp-slimstat' ), __( 'Bot/Crawler', 'wp-slimstat' ), __( 'Mobile Device', 'wp-slimstat' ), __( 'Syndication Reader', 'wp-slimstat' ) );
13
 
14
  $plugin_url = plugins_url( '', dirname( __FILE__ ) );
@@ -132,19 +132,18 @@ for ( $i=0; $i < $count_page_results; $i++ ) {
132
  $results[ $i ][ 'browser_version' ] = '';
133
  }
134
  $browser_title = ( wp_slimstat::$settings[ 'show_complete_user_agent_tooltip' ] != 'on' ) ? "{$results[ $i ][ 'browser' ]} {$results[ $i ][ 'browser_version' ]}" : $results[ $i ][ 'user_agent' ];
135
- $browser_icon = $plugin_url . '/assets/images/browsers/other-browsers-and-os.png';
136
- if ( in_array( $results[ $i ][ 'browser' ], $supported_browser_icons ) ) {
137
- $browser_icon = $plugin_url . '/assets/images/browsers/' . sanitize_title( $results[ $i ][ 'browser' ] ) . '.png';
138
  }
139
- $browser_filter = "<a class='slimstat-filter-link inline-icon' href='" . wp_slimstat_reports::fs_url( 'browser equals ' . $results[ $i ][ 'browser' ] ) . "'><img class='slimstat-tooltip-trigger' src='$browser_icon' width='16' height='16' title='{$browser_title}'></a>";
140
 
141
  // Operating System
142
- if ( !empty( $results[ $i ][ 'platform' ] ) && $results[ $i ][ 'platform' ] != 'unknown' ) {
143
- $platform_filter = "<a class='slimstat-filter-link inline-icon' href='" . wp_slimstat_reports::fs_url( 'platform equals ' . $results[ $i ][ 'platform' ] ) . "'><img class='slimstat-tooltip-trigger' src='$plugin_url/assets/images/platforms/{$results[ $i ][ 'platform' ]}.png' width='16' height='16' title='" . slim_i18n::get_string( $results[ $i ][ 'platform' ] ) . "'></a>";
144
- }
145
- else {
146
- $platform_filter = "<a class='slimstat-filter-link inline-icon' href='" . wp_slimstat_reports::fs_url( 'platform is_empty #' ) . "'><img class='slimstat-tooltip-trigger' src='$plugin_url/assets/images/browsers/other-browsers-and-os.png' width='16' height='16' title='" . slim_i18n::get_string( 'unknown' ) . "'></a>";
147
  }
 
148
 
149
  // Language
150
  $language_filter = '';
8
 
9
  // Available icons
10
  $supported_browser_icons = array( 'Android', 'Anonymouse', 'Baiduspider', 'BlackBerry', 'BingBot', 'CFNetwork', 'Chrome', 'Chromium', 'Default Browser', 'Edge', 'Exabot/BiggerBetter', 'FacebookExternalHit', 'FeedBurner', 'Feedfetcher-Google', 'Firefox', 'Internet Archive', 'Googlebot', 'Google Bot', 'Google Feedfetcher', 'Google Web Preview', 'IE', 'IEMobile', 'iPad', 'iPhone', 'iPod Touch', 'Maxthon', 'Mediapartners-Google', 'Microsoft-WebDAV', 'msnbot', 'Mozilla', 'NewsGatorOnline', 'Netscape', 'Nokia', 'Opera', 'Opera Mini', 'Opera Mobi', 'Pingdom', 'Python', 'PycURL', 'Safari', 'W3C_Validator', 'WordPress', 'Yahoo! Slurp', 'YandexBot' );
11
+ $supported_os_icons = array( 'android',' blackberry os', 'cellos', 'chromeos', 'ios', 'iphone osx', 'java', 'linux', 'macos', 'macosx', 'rim os', 'symbianos', 'ubuntu', 'win7', 'win8', 'win8.1', 'win10', 'winphone7', 'winphone7.5', 'winphone8', 'winphone8.1', 'winvista', 'winxp' );
12
  $supported_browser_types = array( __( 'Human', 'wp-slimstat' ), __( 'Bot/Crawler', 'wp-slimstat' ), __( 'Mobile Device', 'wp-slimstat' ), __( 'Syndication Reader', 'wp-slimstat' ) );
13
 
14
  $plugin_url = plugins_url( '', dirname( __FILE__ ) );
132
  $results[ $i ][ 'browser_version' ] = '';
133
  }
134
  $browser_title = ( wp_slimstat::$settings[ 'show_complete_user_agent_tooltip' ] != 'on' ) ? "{$results[ $i ][ 'browser' ]} {$results[ $i ][ 'browser_version' ]}" : $results[ $i ][ 'user_agent' ];
135
+ $browser_filter = 'default-browser';
136
+ if ( !empty( $results[ $i ][ 'browser' ] ) && in_array( $results[ $i ][ 'browser' ], $supported_browser_icons ) ) {
137
+ $browser_filter = sanitize_title( $results[ $i ][ 'browser' ] );
138
  }
139
+ $browser_filter = "<a class='slimstat-filter-link inline-icon' href='" . wp_slimstat_reports::fs_url( 'browser equals ' . $results[ $i ][ 'browser' ] ) . "'><img class='slimstat-tooltip-trigger' src='$plugin_url/assets/images/browsers/{$browser_filter}.png' width='16' height='16' title='{$browser_title}'></a>";
140
 
141
  // Operating System
142
+ $platform_filter = 'unknown';
143
+ if ( !empty( $results[ $i ][ 'platform' ] ) && in_array( $results[ $i ][ 'platform' ], $supported_os_icons ) ) {
144
+ $platform_filter = esc_attr( $results[ $i ][ 'platform' ] );
 
 
145
  }
146
+ $platform_filter = "<a class='slimstat-filter-link inline-icon' href='" . wp_slimstat_reports::fs_url( 'platform equals ' . $results[ $i ][ 'platform' ] ) . "'><img class='slimstat-tooltip-trigger' src='$plugin_url/assets/images/platforms/{$platform_filter}.png' width='16' height='16' title='" . slim_i18n::get_string( $results[ $i ][ 'platform' ] ) . "'></a>";
147
 
148
  // Language
149
  $language_filter = '';
admin/view/wp-slimstat-db.php CHANGED
@@ -177,7 +177,7 @@ class wp_slimstat_db {
177
  self::$filters_normalized = self::init_filters( $filters_raw );
178
 
179
  // Retrieve data that will be used by multiple reports
180
- if ( !empty( $_REQUEST[ 'page' ] ) && !in_array( $_REQUEST[ 'page' ], array( 'slimlayout', 'slimadddons' ) ) ) {
181
  self::$pageviews = wp_slimstat_db::count_records();
182
  }
183
  }
177
  self::$filters_normalized = self::init_filters( $filters_raw );
178
 
179
  // Retrieve data that will be used by multiple reports
180
+ if ( empty( $_REQUEST[ 'page' ] ) || !in_array( $_REQUEST[ 'page' ], array( 'slimlayout', 'slimadddons' ) ) ) {
181
  self::$pageviews = wp_slimstat_db::count_records();
182
  }
183
  }
admin/view/wp-slimstat-reports.php CHANGED
@@ -852,12 +852,18 @@ class wp_slimstat_reports {
852
  // Retrieve this user's custom report assignment (Customizer)
853
  $current_user = wp_get_current_user();
854
 
 
 
 
 
 
 
855
  // Superadmins can customize the layout at network level, to override per-site settings
856
- self::$user_reports = get_user_option( 'meta-box-order_' . wp_slimstat_admin::$page_location . '_page_slimlayout-network', 1 );
857
 
858
  // No network-wide settings found
859
  if ( empty( self::$user_reports ) ) {
860
- self::$user_reports = get_user_option( 'meta-box-order_' . wp_slimstat_admin::$page_location . '_page_slimlayout', $current_user->ID );
861
  }
862
 
863
  // Do we have any new reports not listed in this user's settings?
@@ -891,9 +897,11 @@ class wp_slimstat_reports {
891
  }
892
 
893
  // We store page titles in a transient for improved performance
894
- self::$resource_titles = get_transient( 'slimstat_resource_titles' );
895
- if ( self::$resource_titles === false ) {
896
- self::$resource_titles = array();
 
 
897
  }
898
  }
899
  // end init
@@ -970,7 +978,9 @@ class wp_slimstat_reports {
970
 
971
  public static function callback_wrapper() {
972
  $_args = self::_check_args( func_get_args() );
973
- call_user_func( $_args[ 'callback' ] , $_args[ 'callback_args' ] );
 
 
974
  }
975
 
976
  public static function raw_results_to_html( $_args = array() ) {
@@ -1880,19 +1890,21 @@ class wp_slimstat_reports {
1880
  }
1881
 
1882
  // Default callback args
1883
- $_args[ 'callback_args' ] = array_merge( array(
1884
- 'type' => '',
1885
- 'columns' => '',
1886
- 'where' => '',
1887
- 'having' => '',
1888
- 'as_column' => '',
1889
- 'filter_op' => 'equals',
1890
- 'outer_select_column' => '',
1891
- 'aggr_function' => 'MAX',
1892
- 'use_date_filters' => true,
1893
- 'results_per_page' => wp_slimstat::$settings[ 'rows_to_show' ],
1894
- 'criteria' => ''
1895
- ), $_args[ 'callback_args' ] );
 
 
1896
 
1897
  return $_args;
1898
  }
852
  // Retrieve this user's custom report assignment (Customizer)
853
  $current_user = wp_get_current_user();
854
 
855
+ // Page Location
856
+ $page_location = 'slimstat';
857
+ if ( wp_slimstat::$settings[ 'use_separate_menu' ] != 'no' ) {
858
+ $page_location = 'admin';
859
+ }
860
+
861
  // Superadmins can customize the layout at network level, to override per-site settings
862
+ self::$user_reports = get_user_option( 'meta-box-order_' . $page_location . '_page_slimlayout-network', 1 );
863
 
864
  // No network-wide settings found
865
  if ( empty( self::$user_reports ) ) {
866
+ self::$user_reports = get_user_option( 'meta-box-order_' . $page_location . '_page_slimlayout', $current_user->ID );
867
  }
868
 
869
  // Do we have any new reports not listed in this user's settings?
897
  }
898
 
899
  // We store page titles in a transient for improved performance
900
+ if ( empty( $_REQUEST[ 'page' ] ) || !in_array( $_REQUEST[ 'page' ], array( 'slimlayout', 'slimadddons' ) ) ) {
901
+ self::$resource_titles = get_transient( 'slimstat_resource_titles' );
902
+ if ( self::$resource_titles === false ) {
903
+ self::$resource_titles = array();
904
+ }
905
  }
906
  }
907
  // end init
978
 
979
  public static function callback_wrapper() {
980
  $_args = self::_check_args( func_get_args() );
981
+ if ( !empty( $_args ) ) {
982
+ call_user_func( $_args[ 'callback' ] , $_args[ 'callback_args' ] );
983
+ }
984
  }
985
 
986
  public static function raw_results_to_html( $_args = array() ) {
1890
  }
1891
 
1892
  // Default callback args
1893
+ if ( !empty( $_args[ 'callback_args' ] ) ) {
1894
+ $_args[ 'callback_args' ] = array_merge( array(
1895
+ 'type' => '',
1896
+ 'columns' => '',
1897
+ 'where' => '',
1898
+ 'having' => '',
1899
+ 'as_column' => '',
1900
+ 'filter_op' => 'equals',
1901
+ 'outer_select_column' => '',
1902
+ 'aggr_function' => 'MAX',
1903
+ 'use_date_filters' => true,
1904
+ 'results_per_page' => wp_slimstat::$settings[ 'rows_to_show' ],
1905
+ 'criteria' => ''
1906
+ ), $_args[ 'callback_args' ] );
1907
+ }
1908
 
1909
  return $_args;
1910
  }
readme.txt CHANGED
@@ -6,10 +6,9 @@ Text Domain: wp-slimstat
6
  Requires at least: 3.8
7
  Requires PHP: 5.2
8
  Tested up to: 5.2
9
- Stable tag: 4.8.5
10
 
11
  == Description ==
12
- [youtube https://www.youtube.com/watch?v=zEKP9yC8x6g]
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
  = Main features =
@@ -61,6 +60,12 @@ Our knowledge base is available on our [support center](https://docs.wp-slimstat
61
  5. **Responsive layout** - Keep an eye on your reports on the go
62
 
63
  == Changelog ==
 
 
 
 
 
 
64
  = 4.8.5 =
65
  * [New] Introduced option to not track pageviews based on the ACCEPT-LANGUAGE header sent by the browser.
66
  * [New] Introduced option to display a pageview count instead of the percentage in Top reports.
@@ -70,7 +75,7 @@ Our knowledge base is available on our [support center](https://docs.wp-slimstat
70
  * [Fix] The HTML markup in the opt-out message field was being stripped out (thank you, [paulmcmanus](https://wordpress.org/support/topic/saving-settings-flips-opt-out-message-to-plain-text/)).
71
  * [Fix] Reports could not be properly deleted in the Customizer, if the Slimstat menu was displayed in the Admin Bar.
72
  * [Fix] A fatal error thrown by the Maxmind library when the data file is corrupted has been addressed.
73
- * [Fix] The icon filename for Windows 8.1 was incorrect (thank you, Dimitri)
74
 
75
  = 4.8.4.1 =
76
  * [Note] As anticipated a few weeks ago, this update drops the information about your visitors' browser plugins, which had been deprecated as not useful and oftentimes unreliable. Please make sure to backup your Slimstat tables if you need to preserve this information for some reason.
6
  Requires at least: 3.8
7
  Requires PHP: 5.2
8
  Tested up to: 5.2
9
+ Stable tag: 4.8.5.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.
13
 
14
  = Main features =
60
  5. **Responsive layout** - Keep an eye on your reports on the go
61
 
62
  == Changelog ==
63
+ = 4.8.5.1 =
64
+ * [Fix] A bug was affecting the way shortcodes were being displayed on the website (thank you, [inndesign](https://wordpress.org/support/topic/crashes-avada-theme-in-chrome/)).
65
+ * [Fix] Some icons in the Access Log were broken and not displayed as expected.
66
+ * [Fix] Added extra code to make sure a callback function is defined for any given report.
67
+ * [Fix] Top reports where displaying an incorrect percentage value on the WordPress dashboard (thank you, [scruffy1 and a305587](https://wordpress.org/support/topic/dashboard-widgets-showing-0)).
68
+
69
  = 4.8.5 =
70
  * [New] Introduced option to not track pageviews based on the ACCEPT-LANGUAGE header sent by the browser.
71
  * [New] Introduced option to display a pageview count instead of the percentage in Top reports.
75
  * [Fix] The HTML markup in the opt-out message field was being stripped out (thank you, [paulmcmanus](https://wordpress.org/support/topic/saving-settings-flips-opt-out-message-to-plain-text/)).
76
  * [Fix] Reports could not be properly deleted in the Customizer, if the Slimstat menu was displayed in the Admin Bar.
77
  * [Fix] A fatal error thrown by the Maxmind library when the data file is corrupted has been addressed.
78
+ * [Fix] The icon filename for Windows 8.1 was incorrect (thank you, Dimitri).
79
 
80
  = 4.8.4.1 =
81
  * [Note] As anticipated a few weeks ago, this update drops the information about your visitors' browser plugins, which had been deprecated as not useful and oftentimes unreliable. Please make sure to backup your Slimstat tables if you need to preserve this information for some reason.
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.5
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.5';
19
  public static $settings = array();
20
 
21
  public static $wpdb = '';
@@ -2531,7 +2531,7 @@ class slim_i18n {
2531
  'sunos' => __( 'Sun OS', 'wp-slimstat' ),
2532
  'suse' => __( 'SuSE Linux', 'wp-slimstat' ),
2533
  'symbianos' => __( 'Symbian OS', 'wp-slimstat' ),
2534
- 'ubuntu' => __( 'Java', 'wp-slimstat' ),
2535
  'unix' => __( 'Unix', 'wp-slimstat' ),
2536
  'unknown' => __( 'Unknown', 'wp-slimstat' ),
2537
  'xandros' => __( 'Xandros Linux', 'wp-slimstat' ),
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.5.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.5.1';
19
  public static $settings = array();
20
 
21
  public static $wpdb = '';
2531
  'sunos' => __( 'Sun OS', 'wp-slimstat' ),
2532
  'suse' => __( 'SuSE Linux', 'wp-slimstat' ),
2533
  'symbianos' => __( 'Symbian OS', 'wp-slimstat' ),
2534
+ 'ubuntu' => __( 'Ubuntu', 'wp-slimstat' ),
2535
  'unix' => __( 'Unix', 'wp-slimstat' ),
2536
  'unknown' => __( 'Unknown', 'wp-slimstat' ),
2537
  'xandros' => __( 'Xandros Linux', 'wp-slimstat' ),