Version Description
Download this release
Release Info
Developer | Bueltge |
Plugin | Statify |
Version | 1.6.3 |
Comparing to | |
See all releases |
Code changes from version 1.6.2 to 1.6.3
- inc/class-statify-frontend.php +25 -16
- readme.txt +13 -1
- statify.php +1 -1
inc/class-statify-frontend.php
CHANGED
@@ -37,14 +37,20 @@ class Statify_Frontend extends Statify {
|
|
37 |
$target = urldecode( get_query_var( 'statify_target' ) );
|
38 |
$referrer = urldecode( get_query_var( 'statify_referrer' ) );
|
39 |
} elseif ( ! $use_snippet ) {
|
40 |
-
$target
|
|
|
|
|
|
|
41 |
if ( is_null( $target ) || false === $target ) {
|
42 |
$target = '/';
|
43 |
} else {
|
44 |
$target = wp_unslash( $target );
|
45 |
}
|
46 |
|
47 |
-
$referrer =
|
|
|
|
|
|
|
48 |
if ( is_null( $referrer ) || false === $referrer ) {
|
49 |
$referrer = '';
|
50 |
}
|
@@ -59,7 +65,7 @@ class Statify_Frontend extends Statify {
|
|
59 |
|
60 |
/* Check whether tracking should be skipped for this view. */
|
61 |
if ( self::_skip_tracking() ) {
|
62 |
-
return
|
63 |
}
|
64 |
|
65 |
/* Global vars */
|
@@ -134,7 +140,7 @@ class Statify_Frontend extends Statify {
|
|
134 |
* Rules to skip the tracking
|
135 |
*
|
136 |
* @since 1.2.6
|
137 |
-
* @version
|
138 |
*
|
139 |
* @hook boolean statify__skip_tracking
|
140 |
* @see https://wordpress.org/plugins/statify/
|
@@ -153,7 +159,10 @@ class Statify_Frontend extends Statify {
|
|
153 |
}
|
154 |
|
155 |
// Skip tracking via User Agent.
|
156 |
-
$user_agent =
|
|
|
|
|
|
|
157 |
if ( is_null( $user_agent )
|
158 |
|| false === $user_agent
|
159 |
|| ! preg_match( '/(?:Windows|Macintosh|Linux|iPhone|iPad)/', $user_agent ) ) {
|
@@ -169,7 +178,7 @@ class Statify_Frontend extends Statify {
|
|
169 |
/**
|
170 |
* Rules to detect internal calls to skip tracking and not print code snippet.
|
171 |
*
|
172 |
-
* @since 1.
|
173 |
*
|
174 |
* @return boolean $skip_hook TRUE if NO tracking is desired
|
175 |
*/
|
@@ -181,10 +190,10 @@ class Statify_Frontend extends Statify {
|
|
181 |
* Compare the referrer url to the blacklist data.
|
182 |
* De/activate this feature via settings in the Dashboard widget.
|
183 |
*
|
184 |
-
* @since
|
185 |
-
* @version
|
186 |
*
|
187 |
-
* @return
|
188 |
*/
|
189 |
private static function check_referrer() {
|
190 |
|
@@ -193,25 +202,25 @@ class Statify_Frontend extends Statify {
|
|
193 |
return false;
|
194 |
}
|
195 |
|
196 |
-
$referrer =
|
|
|
|
|
|
|
197 |
if ( ! is_null( $referrer ) && false !== $referrer ) {
|
198 |
$referrer = wp_parse_url( $referrer, PHP_URL_HOST );
|
199 |
-
} else {
|
200 |
-
$referrer = '';
|
201 |
-
}
|
202 |
-
|
203 |
-
if ( empty( $referrer ) ) {
|
204 |
-
return true;
|
205 |
}
|
206 |
|
|
|
207 |
if ( is_array( $referrer ) && isset( $referrer['host'] ) ) {
|
208 |
$referrer = $referrer['host'];
|
209 |
}
|
210 |
|
|
|
211 |
if ( ! is_string( $referrer ) ) {
|
212 |
return false;
|
213 |
}
|
214 |
|
|
|
215 |
$blacklist = self::get_blacklist_keys();
|
216 |
foreach ( $blacklist as $item ) {
|
217 |
if ( strpos( $referrer, $item ) !== false ) {
|
37 |
$target = urldecode( get_query_var( 'statify_target' ) );
|
38 |
$referrer = urldecode( get_query_var( 'statify_referrer' ) );
|
39 |
} elseif ( ! $use_snippet ) {
|
40 |
+
$target = filter_var(
|
41 |
+
( isset( $_SERVER['REQUEST_URI'] ) ? wp_unslash( $_SERVER['REQUEST_URI'] ) : '/' ),
|
42 |
+
FILTER_SANITIZE_URL
|
43 |
+
);
|
44 |
if ( is_null( $target ) || false === $target ) {
|
45 |
$target = '/';
|
46 |
} else {
|
47 |
$target = wp_unslash( $target );
|
48 |
}
|
49 |
|
50 |
+
$referrer = filter_var(
|
51 |
+
( isset( $_SERVER['HTTP_REFERER'] ) ? wp_unslash( $_SERVER['HTTP_REFERER'] ) : '' ),
|
52 |
+
FILTER_SANITIZE_URL
|
53 |
+
);
|
54 |
if ( is_null( $referrer ) || false === $referrer ) {
|
55 |
$referrer = '';
|
56 |
}
|
65 |
|
66 |
/* Check whether tracking should be skipped for this view. */
|
67 |
if ( self::_skip_tracking() ) {
|
68 |
+
return self::_jump_out( $is_snippet );
|
69 |
}
|
70 |
|
71 |
/* Global vars */
|
140 |
* Rules to skip the tracking
|
141 |
*
|
142 |
* @since 1.2.6
|
143 |
+
* @version 1.6.3
|
144 |
*
|
145 |
* @hook boolean statify__skip_tracking
|
146 |
* @see https://wordpress.org/plugins/statify/
|
159 |
}
|
160 |
|
161 |
// Skip tracking via User Agent.
|
162 |
+
$user_agent = filter_var(
|
163 |
+
( isset( $_SERVER['HTTP_USER_AGENT'] ) ? wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) : '' ),
|
164 |
+
FILTER_SANITIZE_STRING
|
165 |
+
);
|
166 |
if ( is_null( $user_agent )
|
167 |
|| false === $user_agent
|
168 |
|| ! preg_match( '/(?:Windows|Macintosh|Linux|iPhone|iPad)/', $user_agent ) ) {
|
178 |
/**
|
179 |
* Rules to detect internal calls to skip tracking and not print code snippet.
|
180 |
*
|
181 |
+
* @since 1.6.1
|
182 |
*
|
183 |
* @return boolean $skip_hook TRUE if NO tracking is desired
|
184 |
*/
|
190 |
* Compare the referrer url to the blacklist data.
|
191 |
* De/activate this feature via settings in the Dashboard widget.
|
192 |
*
|
193 |
+
* @since 1.5.0
|
194 |
+
* @version 1.6.3
|
195 |
*
|
196 |
+
* @return boolean TRUE of referrer matches blacklist entry and should thus be excluded.
|
197 |
*/
|
198 |
private static function check_referrer() {
|
199 |
|
202 |
return false;
|
203 |
}
|
204 |
|
205 |
+
$referrer = filter_var(
|
206 |
+
( isset( $_SERVER['HTTP_REFERER'] ) ? wp_unslash( $_SERVER['HTTP_REFERER'] ) : '' ),
|
207 |
+
FILTER_SANITIZE_URL
|
208 |
+
);
|
209 |
if ( ! is_null( $referrer ) && false !== $referrer ) {
|
210 |
$referrer = wp_parse_url( $referrer, PHP_URL_HOST );
|
|
|
|
|
|
|
|
|
|
|
|
|
211 |
}
|
212 |
|
213 |
+
// Fallback for wp_parse_url() returning array instead of host only.
|
214 |
if ( is_array( $referrer ) && isset( $referrer['host'] ) ) {
|
215 |
$referrer = $referrer['host'];
|
216 |
}
|
217 |
|
218 |
+
// Return false if there still is no referrer to checj.
|
219 |
if ( ! is_string( $referrer ) ) {
|
220 |
return false;
|
221 |
}
|
222 |
|
223 |
+
// Finally compare referrer against the blacklist.
|
224 |
$blacklist = self::get_blacklist_keys();
|
225 |
foreach ( $blacklist as $item ) {
|
226 |
if ( strpos( $referrer, $item ) !== false ) {
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Requires at least: 4.7
|
6 |
* Tested up to: 4.9
|
7 |
* Requires PHP: 5.6
|
8 |
-
* Stable tag: 1.6.
|
9 |
* License: GPLv3 or later
|
10 |
* License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
11 |
|
@@ -115,6 +115,11 @@ has to be added to the theme's `functions.php`. The condition has modified such
|
|
115 |
## Changelog ##
|
116 |
You can find the full changelog in [our GitHub repository](https://github.com/pluginkollektiv/statify/blob/master/CHANGELOG.md).
|
117 |
|
|
|
|
|
|
|
|
|
|
|
118 |
### 1.6.2
|
119 |
* Fix compatibility issues with JavaScript optimization plugins
|
120 |
* Fix tracking issue if JavaScript tracking is disabled
|
@@ -138,6 +143,13 @@ For the complete changelog, check out our [GitHub repository](https://github.com
|
|
138 |
|
139 |
## Upgrade Notice ##
|
140 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
### 1.6.1 ###
|
142 |
This bugfix release is recommended for all users.
|
143 |
|
5 |
* Requires at least: 4.7
|
6 |
* Tested up to: 4.9
|
7 |
* Requires PHP: 5.6
|
8 |
+
* Stable tag: 1.6.3
|
9 |
* License: GPLv3 or later
|
10 |
* License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
11 |
|
115 |
## Changelog ##
|
116 |
You can find the full changelog in [our GitHub repository](https://github.com/pluginkollektiv/statify/blob/master/CHANGELOG.md).
|
117 |
|
118 |
+
### 1.6.3
|
119 |
+
* Fix compatibility issue with some PHP implementations not populating `INPUT_SERVER`
|
120 |
+
* Fix failing blacklist check for empty referrers
|
121 |
+
* JS snippet call properly breaks page generation when tracking is skipped
|
122 |
+
|
123 |
### 1.6.2
|
124 |
* Fix compatibility issues with JavaScript optimization plugins
|
125 |
* Fix tracking issue if JavaScript tracking is disabled
|
143 |
|
144 |
## Upgrade Notice ##
|
145 |
|
146 |
+
### 1.6.3 ###
|
147 |
+
This bugfix release is recommended for all users.
|
148 |
+
It fixes completely broken tracking with some PHP implementations. Sorry for that, we might owe you a couple of visitors.
|
149 |
+
|
150 |
+
### 1.6.2 ###
|
151 |
+
This bugfix release is recommended for all users.
|
152 |
+
|
153 |
### 1.6.1 ###
|
154 |
This bugfix release is recommended for all users.
|
155 |
|
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.6.
|
11 |
*
|
12 |
* @package WordPress
|
13 |
*/
|
7 |
* Author URI: https://pluginkollektiv.org
|
8 |
* Plugin URI: https://wordpress.org/plugins/statify/
|
9 |
* License: GPLv3 or later
|
10 |
+
* Version: 1.6.3
|
11 |
*
|
12 |
* @package WordPress
|
13 |
*/
|