Statify - Version 1.8.1

Version Description

Download this release

Release Info

Developer pluginkollektiv
Plugin Icon 128x128 Statify
Version 1.8.1
Comparing to
See all releases

Code changes from version 1.8.0 to 1.8.1

CHANGELOG.md CHANGED
@@ -1,6 +1,13 @@
1
  # Changelog
2
  All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
3
 
 
 
 
 
 
 
 
4
  ## 1.8.0
5
  * Fix date offset in dashboard widget in WP 5.3+ environments with mixed timezones (#167)
6
  * Allow to deactivate the nonce check during JavaScript tracking (#168)
1
  # Changelog
2
  All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
3
 
4
+ ## 1.8.1
5
+ * Fix AMP compatibility for Standard and Transitional mode (#181) (#182)
6
+ * JavaScript is no longer embedded if request is served by AMP (#181) (#182)
7
+ * Always register the action for the cleanup (#184)
8
+ * Exclude sitemap calls (WP 5.5+) from tracking (#185) (#186)
9
+ * Tested up to WordPress 5.6
10
+
11
  ## 1.8.0
12
  * Fix date offset in dashboard widget in WP 5.3+ environments with mixed timezones (#167)
13
  * Allow to deactivate the nonce check during JavaScript tracking (#168)
inc/class-statify-frontend.php CHANGED
@@ -252,9 +252,10 @@ class Statify_Frontend extends Statify {
252
  * @return boolean $skip_hook TRUE if NO tracking is desired
253
  */
254
  private static function _is_internal() {
255
- // Skip for preview, 404 calls, feed, search and favicon access.
256
  return is_preview() || is_404() || is_feed() || is_search()
257
- || ( function_exists( 'is_favicon' ) && is_favicon() );
 
258
  }
259
 
260
  /**
@@ -374,8 +375,12 @@ class Statify_Frontend extends Statify {
374
  * @version 1.4.1
375
  */
376
  public static function wp_footer() {
377
- // Skip by option.
378
- if ( ! self::is_javascript_tracking_enabled() ) {
 
 
 
 
379
  return;
380
  }
381
 
@@ -404,7 +409,30 @@ class Statify_Frontend extends Statify {
404
  }
405
 
406
  /**
407
- * Add amp-analytics.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
408
  *
409
  * @see https://amp-wp.org/documentation/playbooks/analytics/
410
  *
@@ -420,32 +448,40 @@ class Statify_Frontend extends Statify {
420
  $analytics['statify'] = array(
421
  'type' => '',
422
  'attributes' => array(),
423
- 'config_data' => array(
424
- 'extraUrlParams' => array(
425
- 'action' => 'statify_track',
426
- '_ajax_nonce' => wp_create_nonce( 'statify_track' ),
427
- 'statify_referrer' => '${documentReferrer}',
428
- 'statify_target' => '${canonicalPath}amp/',
429
- ),
430
- 'requests' => array(
431
- 'event' => admin_url( 'admin-ajax.php' ),
432
- ),
433
- 'triggers' => array(
434
- 'trackPageview' => array(
435
- 'on' => 'visible',
436
- 'request' => 'event',
437
- 'vars' => array(
438
- 'eventId' => 'pageview',
439
- ),
440
- ),
441
- ),
442
- 'transport' => array(
443
- 'xhrpost' => true,
444
- ),
445
- ),
446
  );
447
  }
448
 
449
  return $analytics;
450
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
451
  }
252
  * @return boolean $skip_hook TRUE if NO tracking is desired
253
  */
254
  private static function _is_internal() {
255
+ // Skip for preview, 404 calls, feed, search, favicon and sitemap access.
256
  return is_preview() || is_404() || is_feed() || is_search()
257
+ || ( function_exists( 'is_favicon' ) && is_favicon() )
258
+ || '' !== get_query_var( 'sitemap' ) || '' !== get_query_var( 'sitemap-stylesheet' );
259
  }
260
 
261
  /**
375
  * @version 1.4.1
376
  */
377
  public static function wp_footer() {
378
+ // JS tracking disabled or AMP is used for the current request.
379
+ if (
380
+ ! self::is_javascript_tracking_enabled() ||
381
+ ( function_exists( 'amp_is_request' ) && amp_is_request() ) ||
382
+ ( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() )
383
+ ) {
384
  return;
385
  }
386
 
409
  }
410
 
411
  /**
412
+ * Add amp-analytics for Standard and Transitional mode.
413
+ *
414
+ * @see https://amp-wp.org/documentation/playbooks/analytics/
415
+ *
416
+ * @param array $analytics_entries Analytics entries.
417
+ */
418
+ public static function amp_analytics_entries( $analytics_entries ) {
419
+ if ( ! is_array( $analytics_entries ) ) {
420
+ $analytics_entries = array();
421
+ }
422
+
423
+ // Analytics script is only relevant, if "JS" tracking is enabled, to prevent double tracking.
424
+ if ( self::is_javascript_tracking_enabled() ) {
425
+ $analytics_entries['statify'] = array(
426
+ 'type' => '',
427
+ 'config' => wp_json_encode( self::make_amp_config() ),
428
+ );
429
+ }
430
+
431
+ return $analytics_entries;
432
+ }
433
+
434
+ /**
435
+ * Add AMP-analytics for Reader mode.
436
  *
437
  * @see https://amp-wp.org/documentation/playbooks/analytics/
438
  *
448
  $analytics['statify'] = array(
449
  'type' => '',
450
  'attributes' => array(),
451
+ 'config_data' => self::make_amp_config(),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
452
  );
453
  }
454
 
455
  return $analytics;
456
  }
457
+
458
+ /**
459
+ * Generate AMP-analytics configuration.
460
+ *
461
+ * @return array Configuration array.
462
+ */
463
+ private static function make_amp_config() {
464
+ return array(
465
+ 'requests' => array(
466
+ 'pageview' => admin_url( 'admin-ajax.php' ),
467
+ ),
468
+ 'extraUrlParams' => array(
469
+ 'action' => 'statify_track',
470
+ '_ajax_nonce' => wp_create_nonce( 'statify_track' ),
471
+ 'statify_referrer' => '${documentReferrer}',
472
+ 'statify_target' => '${canonicalPath}amp/',
473
+ ),
474
+ 'triggers' => array(
475
+ 'trackPageview' => array(
476
+ 'on' => 'visible',
477
+ 'request' => 'pageview',
478
+ ),
479
+ ),
480
+ 'transport' => array(
481
+ 'beacon' => true,
482
+ 'xhrpost' => true,
483
+ 'image' => false,
484
+ ),
485
+ );
486
+ }
487
  }
inc/class-statify.php CHANGED
@@ -60,13 +60,14 @@ class Statify {
60
  )
61
  );
62
 
 
 
 
63
  if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
64
  add_action( 'wp_ajax_nopriv_statify_track', array( 'Statify_Frontend', 'track_visit_ajax' ) );
65
  add_action( 'wp_ajax_statify_track', array( 'Statify_Frontend', 'track_visit_ajax' ) );
66
  } elseif ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST ) { // XMLRPC.
67
  add_filter( 'xmlrpc_methods', array( 'Statify_XMLRPC', 'xmlrpc_methods' ) );
68
- } elseif ( defined( 'DOING_CRON' ) && DOING_CRON ) { // Cron.
69
- add_action( 'statify_cleanup', array( 'Statify_Cron', 'cleanup_data' ) );
70
  } elseif ( is_admin() ) { // Backend.
71
  add_action( 'wpmu_new_blog', array( 'Statify_Install', 'init_site' ) );
72
  add_action( 'delete_blog', array( 'Statify_Uninstall', 'init_site' ) );
@@ -80,7 +81,9 @@ class Statify {
80
  add_action( 'template_redirect', array( 'Statify_Frontend', 'track_visit' ) );
81
  add_filter( 'query_vars', array( 'Statify_Frontend', 'query_vars' ) );
82
  add_action( 'wp_footer', array( 'Statify_Frontend', 'wp_footer' ) );
83
- if ( function_exists( 'is_amp_endpoint' ) ) { // Automattic AMP plugin present.
 
 
84
  add_filter( 'amp_post_template_analytics', array( 'Statify_Frontend', 'amp_post_template_analytics' ) );
85
  }
86
  }
60
  )
61
  );
62
 
63
+ // Cron.
64
+ add_action( 'statify_cleanup', array( 'Statify_Cron', 'cleanup_data' ) );
65
+
66
  if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
67
  add_action( 'wp_ajax_nopriv_statify_track', array( 'Statify_Frontend', 'track_visit_ajax' ) );
68
  add_action( 'wp_ajax_statify_track', array( 'Statify_Frontend', 'track_visit_ajax' ) );
69
  } elseif ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST ) { // XMLRPC.
70
  add_filter( 'xmlrpc_methods', array( 'Statify_XMLRPC', 'xmlrpc_methods' ) );
 
 
71
  } elseif ( is_admin() ) { // Backend.
72
  add_action( 'wpmu_new_blog', array( 'Statify_Install', 'init_site' ) );
73
  add_action( 'delete_blog', array( 'Statify_Uninstall', 'init_site' ) );
81
  add_action( 'template_redirect', array( 'Statify_Frontend', 'track_visit' ) );
82
  add_filter( 'query_vars', array( 'Statify_Frontend', 'query_vars' ) );
83
  add_action( 'wp_footer', array( 'Statify_Frontend', 'wp_footer' ) );
84
+ if ( function_exists( 'amp_is_request' ) || function_exists( 'is_amp_endpoint' ) ) {
85
+ // Automattic AMP plugin present.
86
+ add_filter( 'amp_analytics_entries', array( 'Statify_Frontend', 'amp_analytics_entries' ) );
87
  add_filter( 'amp_post_template_analytics', array( 'Statify_Frontend', 'amp_post_template_analytics' ) );
88
  }
89
  }
readme.txt CHANGED
@@ -3,9 +3,9 @@
3
  * Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=TD4AMD2D8EMZW
4
  * Tags: analytics, dashboard, pageviews, privacy, statistics, stats, visits, web stats, widget
5
  * Requires at least: 4.7
6
- * Tested up to: 5.5
7
  * Requires PHP: 5.2
8
- * Stable tag: 1.8.0
9
  * License: GPLv3 or later
10
  * License URI: https://www.gnu.org/licenses/gpl-3.0.html
11
 
@@ -65,6 +65,7 @@ If you've problems or think you’ve found a bug (e.g. you’re experiencing une
65
  * views by logged in users (unless tracking is activated via the settings page)
66
  * error pages
67
  * favicon (as of WP 5.4)
 
68
 
69
  This behavior can be modified with the `statify__skip_tracking` hook.
70
 
@@ -116,6 +117,13 @@ has to be added to the theme's `functions.php`. The condition has modified such
116
  ## Changelog ##
117
  You can find the full changelog in [our GitHub repository](https://github.com/pluginkollektiv/statify/blob/master/CHANGELOG.md).
118
 
 
 
 
 
 
 
 
119
  ### 1.8.0
120
  * Fix date offset in dashboard widget in WP 5.3+ environments with mixed timezones (#167)
121
  * Allow to deactivate the nonce check during JavaScript tracking (#168)
@@ -155,6 +163,9 @@ For the complete changelog, check out our [GitHub repository](https://github.com
155
 
156
  ## Upgrade Notice ##
157
 
 
 
 
158
  ### 1.8.0 ###
159
  Some minor improvements. The most important one: This version offers to deactivate the nonce check for JavaScript tracking (recommend if a caching plugin with a long caching time is used).
160
 
3
  * Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=TD4AMD2D8EMZW
4
  * Tags: analytics, dashboard, pageviews, privacy, statistics, stats, visits, web stats, widget
5
  * Requires at least: 4.7
6
+ * Tested up to: 5.6
7
  * Requires PHP: 5.2
8
+ * Stable tag: 1.8.1
9
  * License: GPLv3 or later
10
  * License URI: https://www.gnu.org/licenses/gpl-3.0.html
11
 
65
  * views by logged in users (unless tracking is activated via the settings page)
66
  * error pages
67
  * favicon (as of WP 5.4)
68
+ * sitemap (as of WP 5.5)
69
 
70
  This behavior can be modified with the `statify__skip_tracking` hook.
71
 
117
  ## Changelog ##
118
  You can find the full changelog in [our GitHub repository](https://github.com/pluginkollektiv/statify/blob/master/CHANGELOG.md).
119
 
120
+ ### 1.8.1
121
+ * Fix AMP compatibility for Standard and Transitional mode (#181) (#182)
122
+ * JavaScript is no longer embedded if request is served by AMP (#181) (#182)
123
+ * Always register the action for the cleanup (#184)
124
+ * Exclude sitemap calls (WP 5.5+) from tracking (#185) (#186)
125
+ * Tested up to WordPress 5.6
126
+
127
  ### 1.8.0
128
  * Fix date offset in dashboard widget in WP 5.3+ environments with mixed timezones (#167)
129
  * Allow to deactivate the nonce check during JavaScript tracking (#168)
163
 
164
  ## Upgrade Notice ##
165
 
166
+ ### 1.8.1 ###
167
+ This is a bugfix release improving AMP compatibility and excluding native sitemaps as of WordPress 5.5. It is recommended for all users.
168
+
169
  ### 1.8.0 ###
170
  Some minor improvements. The most important one: This version offers to deactivate the nonce check for JavaScript tracking (recommend if a caching plugin with a long caching time is used).
171
 
statify.php CHANGED
@@ -7,7 +7,7 @@
7
  * Author URI: https://pluginkollektiv.org
8
  * Plugin URI: https://wordpress.org/plugins/statify/
9
  * License: GPLv3 or later
10
- * Version: 1.8.0
11
  *
12
  * @package WordPress
13
  */
@@ -20,7 +20,7 @@ defined( 'ABSPATH' ) || exit;
20
  define( 'STATIFY_FILE', __FILE__ );
21
  define( 'STATIFY_DIR', dirname( __FILE__ ) );
22
  define( 'STATIFY_BASE', plugin_basename( __FILE__ ) );
23
- define( 'STATIFY_VERSION', '1.8.0' );
24
 
25
 
26
  /* Hooks */
7
  * Author URI: https://pluginkollektiv.org
8
  * Plugin URI: https://wordpress.org/plugins/statify/
9
  * License: GPLv3 or later
10
+ * Version: 1.8.1
11
  *
12
  * @package WordPress
13
  */
20
  define( 'STATIFY_FILE', __FILE__ );
21
  define( 'STATIFY_DIR', dirname( __FILE__ ) );
22
  define( 'STATIFY_BASE', plugin_basename( __FILE__ ) );
23
+ define( 'STATIFY_VERSION', '1.8.1' );
24
 
25
 
26
  /* Hooks */