Version Description
- [Note] Some of our add-ons had a bug preventing them from properly checking for updates. Please contact us if you need to obtain the latest version of your add-ons.
- [Update] The Save button in the settings is now always visible, so that there is no need to scroll all the way to the bottom to save your options.
- [Update] More data layer updates introduced in wp_slimstat_db. Keep an eye on your custom add-ons!
- [Fix] Pagination was not working as expected when a date range was set in the filters (thank you, nick-v)
Download this release
Release Info
Developer | coolmann |
Plugin | Slimstat Analytics |
Version | 3.9.5 |
Comparing to | |
See all releases |
Code changes from version 3.9.4 to 3.9.5
- admin/css/slimstat.css +5 -0
- admin/view/index.php +3 -3
- admin/view/wp-slimstat-db.php +10 -10
- admin/view/wp-slimstat-reports.php +15 -9
- admin/wp-slimstat-admin.php +1 -2
- readme.txt +9 -3
- wp-slimstat.php +2 -2
admin/css/slimstat.css
CHANGED
@@ -459,6 +459,11 @@
|
|
459 |
.form-table #slimstat-filter-name, .form-table #slimstat-filter-operator, .form-table #slimstat-filter-value{
|
460 |
width: 20%;
|
461 |
}
|
|
|
|
|
|
|
|
|
|
|
462 |
|
463 |
/* Add-ons Page */
|
464 |
.wp-list-table.slimstat-addons{
|
459 |
.form-table #slimstat-filter-name, .form-table #slimstat-filter-operator, .form-table #slimstat-filter-value{
|
460 |
width: 20%;
|
461 |
}
|
462 |
+
.slimstat p.submit{
|
463 |
+
position: fixed;
|
464 |
+
right: 25px;
|
465 |
+
top: 30px;
|
466 |
+
}
|
467 |
|
468 |
/* Add-ons Page */
|
469 |
.wp-list-table.slimstat-addons{
|
admin/view/index.php
CHANGED
@@ -95,8 +95,8 @@
|
|
95 |
<input type="hidden" class="slimstat-filter-date" name="slimstat-filter-date" value=""/>
|
96 |
<br/>
|
97 |
<select name="interval_direction" class="short" id="slimstat-filter-interval_direction">
|
98 |
-
<option value="minus" <?php selected(wp_slimstat_db::$filters_normalized['date']['interval_direction'], 'minus')?>>-</option>
|
99 |
-
<option value="plus" <?php selected(wp_slimstat_db::$filters_normalized['date']['interval_direction'], 'plus')?>>+</option>
|
100 |
</select>
|
101 |
<input type="text" name="interval" id="slimstat-filter-interval" placeholder="<?php _e('days', 'wp-slimstat') ?>" class="short empty-on-focus" value="<?php echo !empty(wp_slimstat_db::$filters_normalized['date']['interval'])?wp_slimstat_db::$filters_normalized['date']['interval']:'' ?>">,
|
102 |
<input type="text" name="interval_hours" id="slimstat-filter-interval_hours" placeholder="<?php _e('hours', 'wp-slimstat') ?>" class="short empty-on-focus" value="<?php echo !empty(wp_slimstat_db::$filters_normalized['date']['interval_hours'])?wp_slimstat_db::$filters_normalized['date']['interval_hours']:'' ?>">:
|
@@ -109,7 +109,7 @@
|
|
109 |
!empty(wp_slimstat_db::$filters_normalized['date']['interval']) ||
|
110 |
!empty(wp_slimstat_db::$filters_normalized['date']['interval_hours']) ||
|
111 |
!empty(wp_slimstat_db::$filters_normalized['date']['interval_minutes'])): ?>
|
112 |
-
<a class="slimstat-filter-link button-secondary" href="<?php echo wp_slimstat_reports::fs_url('minute equals 0&&&hour equals 0&&&day equals 0&&&month equals '.date_i18n('n').'&&&year equals 0&&&interval_direction equals
|
113 |
<?php endif ?>
|
114 |
</span>
|
115 |
</fieldset><!-- .slimstat-date-filters -->
|
95 |
<input type="hidden" class="slimstat-filter-date" name="slimstat-filter-date" value=""/>
|
96 |
<br/>
|
97 |
<select name="interval_direction" class="short" id="slimstat-filter-interval_direction">
|
98 |
+
<option value="minus" <?php selected(wp_slimstat_db::$filters_normalized['date']['interval_direction'], array('', 'minus')) ?>>-</option>
|
99 |
+
<option value="plus" <?php selected(wp_slimstat_db::$filters_normalized['date']['interval_direction'], 'plus') ?>>+</option>
|
100 |
</select>
|
101 |
<input type="text" name="interval" id="slimstat-filter-interval" placeholder="<?php _e('days', 'wp-slimstat') ?>" class="short empty-on-focus" value="<?php echo !empty(wp_slimstat_db::$filters_normalized['date']['interval'])?wp_slimstat_db::$filters_normalized['date']['interval']:'' ?>">,
|
102 |
<input type="text" name="interval_hours" id="slimstat-filter-interval_hours" placeholder="<?php _e('hours', 'wp-slimstat') ?>" class="short empty-on-focus" value="<?php echo !empty(wp_slimstat_db::$filters_normalized['date']['interval_hours'])?wp_slimstat_db::$filters_normalized['date']['interval_hours']:'' ?>">:
|
109 |
!empty(wp_slimstat_db::$filters_normalized['date']['interval']) ||
|
110 |
!empty(wp_slimstat_db::$filters_normalized['date']['interval_hours']) ||
|
111 |
!empty(wp_slimstat_db::$filters_normalized['date']['interval_minutes'])): ?>
|
112 |
+
<a class="slimstat-filter-link button-secondary" href="<?php echo wp_slimstat_reports::fs_url('minute equals 0&&&hour equals 0&&&day equals 0&&&month equals '.date_i18n('n').'&&&year equals 0&&&interval_direction equals plus&&&interval equals 0&&&interval_hours equals 0&&&interval_minutes equals 0') ?>"><?php _e('Reset Filters','wp-slimstat') ?></a>
|
113 |
<?php endif ?>
|
114 |
</span>
|
115 |
</fieldset><!-- .slimstat-date-filters -->
|
admin/view/wp-slimstat-db.php
CHANGED
@@ -463,7 +463,7 @@ class wp_slimstat_db {
|
|
463 |
SELECT $_column ".(!empty($_as_column)?'AS '.$_as_column:'')." $_more_columns, COUNT(*) counthits
|
464 |
FROM ".self::$sql_filters['from']['all'].' '.self::_add_filters_to_sql_from($_column.$_custom_where.$_more_columns).'
|
465 |
WHERE '.(empty($_custom_where)?"$_column <> '' ":$_custom_where).' '.self::$sql_filters['where']['all'].' '.self::$sql_filters['where']['time_range']."
|
466 |
-
GROUP BY $_column $
|
467 |
ORDER BY counthits ".self::$filters_normalized['misc']['direction']."
|
468 |
LIMIT ".self::$filters_normalized['misc']['start_from'].', '.self::$filters_normalized['misc']['limit_results'],
|
469 |
(!empty($_as_column)?$_as_column:$_column).' '.$_more_columns.', blog_id',
|
@@ -506,11 +506,11 @@ class wp_slimstat_db {
|
|
506 |
'MAX(maxid), SUM(counthits)');
|
507 |
}
|
508 |
|
509 |
-
public static function get_recent($_column = 't1.id', $_custom_where = '', $
|
510 |
if ($_column == 't1.id'){
|
511 |
return self::get_results('
|
512 |
-
SELECT t1.*'.(!empty($
|
513 |
-
FROM '.self::$sql_filters['from']['all'].' '.(!empty($
|
514 |
WHERE '.(empty($_custom_where)?"$_column <> 0 ":$_custom_where).' '.self::$sql_filters['where']['all'].' '.($_use_date_filters?self::$sql_filters['where']['time_range']:'').'
|
515 |
ORDER BY '.(empty($_order_by)?'t1.dt '.self::$filters_normalized['misc']['direction']:$_order_by).'
|
516 |
LIMIT '.self::$filters_normalized['misc']['start_from'].', '.self::$filters_normalized['misc']['limit_results'],
|
@@ -520,17 +520,17 @@ class wp_slimstat_db {
|
|
520 |
}
|
521 |
else{
|
522 |
return self::get_results('
|
523 |
-
SELECT t1.*, '.(!empty($
|
524 |
FROM (
|
525 |
SELECT $_column, MAX(t1.id) maxid
|
526 |
FROM ".self::$sql_filters['from']['all'].' '.self::_add_filters_to_sql_from($_column.$_custom_where).'
|
527 |
WHERE '.(empty($_custom_where)?"$_column <> '' ":$_custom_where).' '.self::$sql_filters['where']['all'].' '.($_use_date_filters?self::$sql_filters['where']['time_range']:'')."
|
528 |
GROUP BY $_column $_having_clause
|
529 |
) AS ts1 INNER JOIN {$GLOBALS['wpdb']->prefix}slim_stats t1 ON ts1.maxid = t1.id ".
|
530 |
-
(!empty($
|
531 |
ORDER BY '.(empty($_order_by)?'t1.dt '.self::$filters_normalized['misc']['direction']:$_order_by).'
|
532 |
LIMIT '.self::$filters_normalized['misc']['start_from'].', '.self::$filters_normalized['misc']['limit_results'],
|
533 |
-
't1.*, '.(!empty($
|
534 |
empty($_order_by)?'t1.dt '.self::$filters_normalized['misc']['direction']:$_order_by);
|
535 |
}
|
536 |
}
|
@@ -573,7 +573,7 @@ class wp_slimstat_db {
|
|
573 |
break;
|
574 |
case 'interval':
|
575 |
$group_by = array('MONTH', 'DAY', 'j');
|
576 |
-
$values_in_interval = array(abs(self::$filters_normalized['date']['interval'])
|
577 |
break;
|
578 |
default:
|
579 |
$previous['start'] = mktime(0, 0, 0, (!empty(self::$filters_normalized['date']['month'])?self::$filters_normalized['date']['month']:date_i18n('n'))-1, 1, !empty(self::$filters_normalized['date']['year'])?self::$filters_normalized['date']['year']:date_i18n('Y'));
|
@@ -661,7 +661,7 @@ class wp_slimstat_db {
|
|
661 |
$filters_normalized = array(
|
662 |
'columns' => array(),
|
663 |
'date' => array(
|
664 |
-
'interval_direction' => '
|
665 |
'is_past' => false
|
666 |
),
|
667 |
'misc' => $_init_misc?array(
|
@@ -757,7 +757,7 @@ class wp_slimstat_db {
|
|
757 |
$intval_filter = intval($a_filter[3]);
|
758 |
$filters_normalized['date'][$a_filter[1]] = abs($intval_filter);
|
759 |
if ($intval_filter < 0){
|
760 |
-
$filters_normalized['date'][interval_direction] = 'minus';
|
761 |
}
|
762 |
break;
|
763 |
case 'interval_direction':
|
463 |
SELECT $_column ".(!empty($_as_column)?'AS '.$_as_column:'')." $_more_columns, COUNT(*) counthits
|
464 |
FROM ".self::$sql_filters['from']['all'].' '.self::_add_filters_to_sql_from($_column.$_custom_where.$_more_columns).'
|
465 |
WHERE '.(empty($_custom_where)?"$_column <> '' ":$_custom_where).' '.self::$sql_filters['where']['all'].' '.self::$sql_filters['where']['time_range']."
|
466 |
+
GROUP BY $_column $_having_clause
|
467 |
ORDER BY counthits ".self::$filters_normalized['misc']['direction']."
|
468 |
LIMIT ".self::$filters_normalized['misc']['start_from'].', '.self::$filters_normalized['misc']['limit_results'],
|
469 |
(!empty($_as_column)?$_as_column:$_column).' '.$_more_columns.', blog_id',
|
506 |
'MAX(maxid), SUM(counthits)');
|
507 |
}
|
508 |
|
509 |
+
public static function get_recent($_column = 't1.id', $_custom_where = '', $_more_columns = '', $_having_clause = '', $_order_by = '', $_use_date_filters = true){
|
510 |
if ($_column == 't1.id'){
|
511 |
return self::get_results('
|
512 |
+
SELECT t1.*'.(!empty($_more_columns)?', '.$_more_columns:'').'
|
513 |
+
FROM '.self::$sql_filters['from']['all'].' '.(!empty($_more_columns)?self::_add_filters_to_sql_from($_more_columns):'').'
|
514 |
WHERE '.(empty($_custom_where)?"$_column <> 0 ":$_custom_where).' '.self::$sql_filters['where']['all'].' '.($_use_date_filters?self::$sql_filters['where']['time_range']:'').'
|
515 |
ORDER BY '.(empty($_order_by)?'t1.dt '.self::$filters_normalized['misc']['direction']:$_order_by).'
|
516 |
LIMIT '.self::$filters_normalized['misc']['start_from'].', '.self::$filters_normalized['misc']['limit_results'],
|
520 |
}
|
521 |
else{
|
522 |
return self::get_results('
|
523 |
+
SELECT t1.*, '.(!empty($_more_columns)?$_more_columns:'ts1.maxid')."
|
524 |
FROM (
|
525 |
SELECT $_column, MAX(t1.id) maxid
|
526 |
FROM ".self::$sql_filters['from']['all'].' '.self::_add_filters_to_sql_from($_column.$_custom_where).'
|
527 |
WHERE '.(empty($_custom_where)?"$_column <> '' ":$_custom_where).' '.self::$sql_filters['where']['all'].' '.($_use_date_filters?self::$sql_filters['where']['time_range']:'')."
|
528 |
GROUP BY $_column $_having_clause
|
529 |
) AS ts1 INNER JOIN {$GLOBALS['wpdb']->prefix}slim_stats t1 ON ts1.maxid = t1.id ".
|
530 |
+
(!empty($_more_columns)?self::_add_filters_to_sql_from($_more_columns):'').'
|
531 |
ORDER BY '.(empty($_order_by)?'t1.dt '.self::$filters_normalized['misc']['direction']:$_order_by).'
|
532 |
LIMIT '.self::$filters_normalized['misc']['start_from'].', '.self::$filters_normalized['misc']['limit_results'],
|
533 |
+
't1.*, '.(!empty($_more_columns)?$_more_columns:'ts1.maxid'),
|
534 |
empty($_order_by)?'t1.dt '.self::$filters_normalized['misc']['direction']:$_order_by);
|
535 |
}
|
536 |
}
|
573 |
break;
|
574 |
case 'interval':
|
575 |
$group_by = array('MONTH', 'DAY', 'j');
|
576 |
+
$values_in_interval = array(abs(self::$filters_normalized['date']['interval']), abs(self::$filters_normalized['date']['interval']), 0, 86400);
|
577 |
break;
|
578 |
default:
|
579 |
$previous['start'] = mktime(0, 0, 0, (!empty(self::$filters_normalized['date']['month'])?self::$filters_normalized['date']['month']:date_i18n('n'))-1, 1, !empty(self::$filters_normalized['date']['year'])?self::$filters_normalized['date']['year']:date_i18n('Y'));
|
661 |
$filters_normalized = array(
|
662 |
'columns' => array(),
|
663 |
'date' => array(
|
664 |
+
'interval_direction' => '',
|
665 |
'is_past' => false
|
666 |
),
|
667 |
'misc' => $_init_misc?array(
|
757 |
$intval_filter = intval($a_filter[3]);
|
758 |
$filters_normalized['date'][$a_filter[1]] = abs($intval_filter);
|
759 |
if ($intval_filter < 0){
|
760 |
+
$filters_normalized['date']['interval_direction'] = 'minus';
|
761 |
}
|
762 |
break;
|
763 |
case 'interval_direction':
|
admin/view/wp-slimstat-reports.php
CHANGED
@@ -276,7 +276,7 @@ class wp_slimstat_reports {
|
|
276 |
}
|
277 |
|
278 |
public static function report_header($_id = 'p0', $_postbox_class = 'normal', $_tooltip = '', $_title = '', $_show_reload = true){
|
279 |
-
$header_buttons = $_show_reload?'<a class="button-ajax refresh slimstat-font-spin3" title="'.__('Refresh','wp-slimstat').'" href="'.
|
280 |
$header_buttons = apply_filters('slimstat_report_header_buttons', $header_buttons, $_id);
|
281 |
$header_buttons = '<div class="slimstat-header-buttons">'.$header_buttons.'</div>';
|
282 |
|
@@ -311,21 +311,27 @@ class wp_slimstat_reports {
|
|
311 |
$filters_normalized = wp_slimstat_db::parse_filters($_filters, false);
|
312 |
if (!empty($filters_normalized['columns'])){
|
313 |
foreach($filters_normalized['columns'] as $a_key => $a_filter){
|
314 |
-
|
|
|
|
|
315 |
}
|
316 |
}
|
317 |
|
318 |
// Date ranges
|
319 |
if (!empty($filters_normalized['date'])){
|
320 |
foreach($filters_normalized['date'] as $a_key => $a_filter){
|
321 |
-
$
|
|
|
|
|
322 |
}
|
323 |
}
|
324 |
|
325 |
// Misc filters
|
326 |
if (!empty($filters_normalized['misc'])){
|
327 |
foreach($filters_normalized['misc'] as $a_key => $a_filter){
|
328 |
-
|
|
|
|
|
329 |
}
|
330 |
}
|
331 |
|
@@ -421,7 +427,7 @@ class wp_slimstat_reports {
|
|
421 |
//$count_all_results = wp_slimstat_db::count_records();
|
422 |
switch($_type){
|
423 |
case 'recent':
|
424 |
-
$all_results = wp_slimstat_db::get_recent($column, $_args['custom_where'], $_args['
|
425 |
break;
|
426 |
case 'popular':
|
427 |
$all_results = wp_slimstat_db::get_popular($column, $_args['custom_where'], $_args['more_columns'], $_args['having_clause'], $_args['as_column']);
|
@@ -1250,13 +1256,13 @@ class wp_slimstat_reports {
|
|
1250 |
self::show_results('recent', $_report_id, 'country');
|
1251 |
break;
|
1252 |
case 'slim_p2_14':
|
1253 |
-
self::show_results('recent', $_report_id, 'resolution', array('
|
1254 |
break;
|
1255 |
case 'slim_p2_15':
|
1256 |
-
self::show_results('recent', $_report_id, 'platform', array('
|
1257 |
break;
|
1258 |
case 'slim_p2_16':
|
1259 |
-
self::show_results('recent', $_report_id, 'browser', array('
|
1260 |
break;
|
1261 |
case 'slim_p2_17':
|
1262 |
self::show_results('recent', $_report_id, 'language');
|
@@ -1319,7 +1325,7 @@ class wp_slimstat_reports {
|
|
1319 |
self::show_results('popular', $_report_id, 'searchterms', array('total_for_percentage' => wp_slimstat_db::count_records('(t1.resource = "__l_s__" OR t1.resource = "" OR tci.content_type LIKE "%search%")'), 'custom_where' => '(t1.resource = "__l_s__" OR t1.resource = "" OR tci.content_type LIKE "%search%")'));
|
1320 |
break;
|
1321 |
case 'slim_p4_15':
|
1322 |
-
self::show_results('recent', $_report_id, 'resource', array('custom_where' => '(tci.content_type = "category" OR tci.content_type = "tag")', '
|
1323 |
break;
|
1324 |
case 'slim_p4_16':
|
1325 |
self::show_results('popular', $_report_id, 'resource', array('total_for_percentage' => wp_slimstat_db::count_records('(t1.resource LIKE "[404]%" OR tci.content_type LIKE "%404%")'), 'custom_where' => '(t1.resource LIKE "[404]%" OR tci.content_type LIKE "%404%")'));
|
276 |
}
|
277 |
|
278 |
public static function report_header($_id = 'p0', $_postbox_class = 'normal', $_tooltip = '', $_title = '', $_show_reload = true){
|
279 |
+
$header_buttons = $_show_reload?'<a class="button-ajax refresh slimstat-font-spin3" title="'.__('Refresh','wp-slimstat').'" href="'.self::fs_url().'"></a>':'';
|
280 |
$header_buttons = apply_filters('slimstat_report_header_buttons', $header_buttons, $_id);
|
281 |
$header_buttons = '<div class="slimstat-header-buttons">'.$header_buttons.'</div>';
|
282 |
|
311 |
$filters_normalized = wp_slimstat_db::parse_filters($_filters, false);
|
312 |
if (!empty($filters_normalized['columns'])){
|
313 |
foreach($filters_normalized['columns'] as $a_key => $a_filter){
|
314 |
+
if (!empty($a_filter[1])){
|
315 |
+
$filtered_url .= "&fs%5B$a_key%5D=".urlencode($a_filter[0].' '.$a_filter[1]);
|
316 |
+
}
|
317 |
}
|
318 |
}
|
319 |
|
320 |
// Date ranges
|
321 |
if (!empty($filters_normalized['date'])){
|
322 |
foreach($filters_normalized['date'] as $a_key => $a_filter){
|
323 |
+
if (!empty($a_filter) || $a_filter === 0){
|
324 |
+
$filtered_url .= "&fs%5B$a_key%5D=".urlencode('equals '.$a_filter);
|
325 |
+
}
|
326 |
}
|
327 |
}
|
328 |
|
329 |
// Misc filters
|
330 |
if (!empty($filters_normalized['misc'])){
|
331 |
foreach($filters_normalized['misc'] as $a_key => $a_filter){
|
332 |
+
if (!empty($a_filter)){
|
333 |
+
$filtered_url .= "&fs%5B$a_key%5D=".urlencode('equals '.$a_filter);
|
334 |
+
}
|
335 |
}
|
336 |
}
|
337 |
|
427 |
//$count_all_results = wp_slimstat_db::count_records();
|
428 |
switch($_type){
|
429 |
case 'recent':
|
430 |
+
$all_results = wp_slimstat_db::get_recent($column, $_args['custom_where'], $_args['more_columns'], $_args['having_clause'], $_args['order_by'], $_args['use_date_filters']);
|
431 |
break;
|
432 |
case 'popular':
|
433 |
$all_results = wp_slimstat_db::get_popular($column, $_args['custom_where'], $_args['more_columns'], $_args['having_clause'], $_args['as_column']);
|
1256 |
self::show_results('recent', $_report_id, 'country');
|
1257 |
break;
|
1258 |
case 'slim_p2_14':
|
1259 |
+
self::show_results('recent', $_report_id, 'resolution', array('more_columns' => 'tss.*'));
|
1260 |
break;
|
1261 |
case 'slim_p2_15':
|
1262 |
+
self::show_results('recent', $_report_id, 'platform', array('more_columns' => 'tb.*'));
|
1263 |
break;
|
1264 |
case 'slim_p2_16':
|
1265 |
+
self::show_results('recent', $_report_id, 'browser', array('more_columns' => 'tb.*'));
|
1266 |
break;
|
1267 |
case 'slim_p2_17':
|
1268 |
self::show_results('recent', $_report_id, 'language');
|
1325 |
self::show_results('popular', $_report_id, 'searchterms', array('total_for_percentage' => wp_slimstat_db::count_records('(t1.resource = "__l_s__" OR t1.resource = "" OR tci.content_type LIKE "%search%")'), 'custom_where' => '(t1.resource = "__l_s__" OR t1.resource = "" OR tci.content_type LIKE "%search%")'));
|
1326 |
break;
|
1327 |
case 'slim_p4_15':
|
1328 |
+
self::show_results('recent', $_report_id, 'resource', array('custom_where' => '(tci.content_type = "category" OR tci.content_type = "tag")', 'more_columns' => 'tci.*'));
|
1329 |
break;
|
1330 |
case 'slim_p4_16':
|
1331 |
self::show_results('popular', $_report_id, 'resource', array('total_for_percentage' => wp_slimstat_db::count_records('(t1.resource LIKE "[404]%" OR tci.content_type LIKE "%404%")'), 'custom_where' => '(t1.resource LIKE "[404]%" OR tci.content_type LIKE "%404%")'));
|
admin/wp-slimstat-admin.php
CHANGED
@@ -12,8 +12,7 @@ class wp_slimstat_admin{
|
|
12 |
*/
|
13 |
public static function init(){
|
14 |
if ((wp_slimstat::$options['enable_ads_network'] == 'yes' || wp_slimstat::$options['enable_ads_network'] == 'no')){
|
15 |
-
self::$admin_notice =
|
16 |
-
|
17 |
// self::$admin_notice = "The wait is over: our heatmap add-on is finally available <a href='http://slimstat.getused.to.it/downloads/heatmap/' target='_blank'>on our store</a>. We would like to thank all our users who helped us shape this initial release. Go grab your own copy today!";
|
18 |
// self::$admin_notice = "We've been working on the documentation for Slimstat. Now you can find <a href='https://slimstat.freshdesk.com/support/solutions' target='_blank'>detailed information</a> about all the actions and filters available in our source code. Developers can use them to build their own custom add-ons. More information coming soon!";
|
19 |
// self::$admin_notice = "Our add-ons update checker had been unavailable for a while, we apologize for the inconvenience. Now the service is up and running again. Please make sure to update your add-ons to the latest version. If you don't get a message that a new version is available for your add-on (and yet you see the newer version number on our website), feel free to contact us on our support site, and we will send it to you via email.";
|
12 |
*/
|
13 |
public static function init(){
|
14 |
if ((wp_slimstat::$options['enable_ads_network'] == 'yes' || wp_slimstat::$options['enable_ads_network'] == 'no')){
|
15 |
+
self::$admin_notice = "We discovered a bug in our Export to Excel and User Overview add-ons, which prevents them from properly checking for updates, under certain circumstances. Please go to Slimstat > Add-ons to see what the current version available is, and then compare it with the version number you see in your Plugins admin screen. Feel free to <a href='http://support.getused.to.it/' target='_blank'>contact us</a>, if you need to obtain the latest version. Thank you for your cooperation.";
|
|
|
16 |
// self::$admin_notice = "The wait is over: our heatmap add-on is finally available <a href='http://slimstat.getused.to.it/downloads/heatmap/' target='_blank'>on our store</a>. We would like to thank all our users who helped us shape this initial release. Go grab your own copy today!";
|
17 |
// self::$admin_notice = "We've been working on the documentation for Slimstat. Now you can find <a href='https://slimstat.freshdesk.com/support/solutions' target='_blank'>detailed information</a> about all the actions and filters available in our source code. Developers can use them to build their own custom add-ons. More information coming soon!";
|
18 |
// self::$admin_notice = "Our add-ons update checker had been unavailable for a while, we apologize for the inconvenience. Now the service is up and running again. Please make sure to update your add-ons to the latest version. If you don't get a message that a new version is available for your add-on (and yet you see the newer version number on our website), feel free to contact us on our support site, and we will send it to you via email.";
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: coolmann
|
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=BNJR5EZNY3W38
|
4 |
Tags: analytics, tracking, reports, analyze, wassup, geolocation, online users, spider, tracker, pageviews, stats, maxmind, statistics, statpress
|
5 |
Requires at least: 3.8
|
6 |
-
Tested up to: 4.
|
7 |
-
Stable tag: 3.9.
|
8 |
|
9 |
== Description ==
|
10 |
Visit our [website](http://slimstat.getused.to.it/) for more information and to [watch our introductory videos](http://slimstat.getused.to.it/features/video-tutorials/).
|
@@ -63,6 +63,12 @@ Our knowledge base is available on our [support center](https://slimstat.freshde
|
|
63 |
|
64 |
== Changelog ==
|
65 |
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
= 3.9.4 =
|
67 |
* [Note] The URL of the CDN has changed, and is now using the official WordPress repository as a source: cdn.jsdelivr.net/wp/wp-slimstat/trunk/wp-slimstat.js - Please update your "external" tracking codes accordingly.
|
68 |
* [Note] The structure of the array **wp_slimstat_db::$sql_filters** has changed! Please make sure to update your custom code accordingly. Feel free to [contact us](http://support.getused.to.it) for more information.
|
@@ -73,7 +79,7 @@ Our knowledge base is available on our [support center](https://slimstat.freshde
|
|
73 |
* [Fix] Line height of report rows has been added to avoid conflicts with other plugins tweaking this parameter in the admin (thank you, [yk11](https://wordpress.org/support/topic/widgets-bottom-is-cut-off)).
|
74 |
|
75 |
= 3.9.3 =
|
76 |
-
* [
|
77 |
* [New] Three new settings to turn off the tracker completely on specific links (internal and external), by class name, rel attribute or simply by URL.
|
78 |
* [Update] MaxMind GeoLite IP has been updated to the latest version (2015-01-06).
|
79 |
* [Fix] Bug affecting our add-ons setting page, in some specific circumstances (thank you, Erik).
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=BNJR5EZNY3W38
|
4 |
Tags: analytics, tracking, reports, analyze, wassup, geolocation, online users, spider, tracker, pageviews, stats, maxmind, statistics, statpress
|
5 |
Requires at least: 3.8
|
6 |
+
Tested up to: 4.2
|
7 |
+
Stable tag: 3.9.5
|
8 |
|
9 |
== Description ==
|
10 |
Visit our [website](http://slimstat.getused.to.it/) for more information and to [watch our introductory videos](http://slimstat.getused.to.it/features/video-tutorials/).
|
63 |
|
64 |
== Changelog ==
|
65 |
|
66 |
+
= 3.9.5 =
|
67 |
+
* [Note] Some of our add-ons had a bug preventing them from properly checking for updates. Please [contact us](http://support.getused.to.it) if you need to obtain the latest version of your add-ons.
|
68 |
+
* [Update] The Save button in the settings is now always visible, so that there is no need to scroll all the way to the bottom to save your options.
|
69 |
+
* [Update] More data layer updates introduced in wp_slimstat_db. Keep an eye on your custom add-ons!
|
70 |
+
* [Fix] Pagination was not working as expected when a date range was set in the filters (thank you, [nick-v](https://wordpress.org/support/topic/paging-is-broke))
|
71 |
+
|
72 |
= 3.9.4 =
|
73 |
* [Note] The URL of the CDN has changed, and is now using the official WordPress repository as a source: cdn.jsdelivr.net/wp/wp-slimstat/trunk/wp-slimstat.js - Please update your "external" tracking codes accordingly.
|
74 |
* [Note] The structure of the array **wp_slimstat_db::$sql_filters** has changed! Please make sure to update your custom code accordingly. Feel free to [contact us](http://support.getused.to.it) for more information.
|
79 |
* [Fix] Line height of report rows has been added to avoid conflicts with other plugins tweaking this parameter in the admin (thank you, [yk11](https://wordpress.org/support/topic/widgets-bottom-is-cut-off)).
|
80 |
|
81 |
= 3.9.3 =
|
82 |
+
* [Note] We're starting to work on a completely redesigned data layer, which will require less SQL resources and offer a much needed performance improvement. Stay tuned.
|
83 |
* [New] Three new settings to turn off the tracker completely on specific links (internal and external), by class name, rel attribute or simply by URL.
|
84 |
* [Update] MaxMind GeoLite IP has been updated to the latest version (2015-01-06).
|
85 |
* [Fix] Bug affecting our add-ons setting page, in some specific circumstances (thank you, Erik).
|
wp-slimstat.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: WP Slimstat
|
4 |
Plugin URI: http://wordpress.org/plugins/wp-slimstat/
|
5 |
Description: The leading web analytics plugin for WordPress
|
6 |
-
Version: 3.9.
|
7 |
Author: Camu
|
8 |
Author URI: http://slimstat.getused.to.it/
|
9 |
*/
|
@@ -11,7 +11,7 @@ Author URI: http://slimstat.getused.to.it/
|
|
11 |
if (!empty(wp_slimstat::$options)) return true;
|
12 |
|
13 |
class wp_slimstat{
|
14 |
-
public static $version = '3.9.
|
15 |
public static $options = array();
|
16 |
|
17 |
public static $wpdb = '';
|
3 |
Plugin Name: WP Slimstat
|
4 |
Plugin URI: http://wordpress.org/plugins/wp-slimstat/
|
5 |
Description: The leading web analytics plugin for WordPress
|
6 |
+
Version: 3.9.5
|
7 |
Author: Camu
|
8 |
Author URI: http://slimstat.getused.to.it/
|
9 |
*/
|
11 |
if (!empty(wp_slimstat::$options)) return true;
|
12 |
|
13 |
class wp_slimstat{
|
14 |
+
public static $version = '3.9.5';
|
15 |
public static $options = array();
|
16 |
|
17 |
public static $wpdb = '';
|