WP Statistics - Version 12.3.6.1

Version Description

  • Improvement i18n strings.
  • Improvement GDPR, Supported for DNT-Header.
  • Improvement GDPR, Added new option for delete visitor data with IP addresses.
Download this release

Release Info

Developer mostafa.s1990
Plugin Icon 128x128 WP Statistics
Version 12.3.6.1
Comparing to
See all releases

Code changes from version 12.3.6 to 12.3.6.1

Files changed (35) hide show
  1. .gitignore +26 -0
  2. assets/css/frontend.css +6 -2
  3. includes/classes/class-wp-statistics-admin-pages.php +1 -1
  4. includes/classes/class-wp-statistics-admin.php +1 -1
  5. includes/classes/class-wp-statistics-ajax.php +42 -4
  6. includes/classes/class-wp-statistics-shortcode.php +1 -1
  7. includes/classes/class-wp-statistics-updates.php +1 -1
  8. includes/classes/class-wp-statistics.php +14 -13
  9. includes/log/authors.php +3 -3
  10. includes/log/categories.php +3 -3
  11. includes/log/exclusions.php +2 -2
  12. includes/log/hit-statistics.php +2 -2
  13. includes/log/tags.php +3 -3
  14. includes/log/widgets/quickstats.php +9 -9
  15. includes/log/widgets/summary.php +9 -9
  16. includes/optimization/tabs/wps-optimization-database.php +46 -16
  17. includes/optimization/tabs/wps-optimization-export.php +3 -3
  18. includes/optimization/tabs/wps-optimization-purging.php +85 -26
  19. includes/optimization/tabs/wps-optimization-resources.php +7 -7
  20. includes/optimization/tabs/wps-optimization-updates.php +2 -2
  21. includes/settings/tabs/wps-about.php +1 -1
  22. includes/settings/tabs/wps-access-level.php +5 -5
  23. includes/settings/tabs/wps-exclusions.php +39 -33
  24. includes/settings/tabs/wps-externals.php +22 -26
  25. includes/settings/tabs/wps-general.php +17 -21
  26. includes/settings/tabs/wps-maintenance.php +19 -7
  27. includes/settings/tabs/wps-notifications.php +10 -10
  28. includes/settings/tabs/wps-overview-display.php +3 -3
  29. includes/settings/tabs/wps-privacy.php +17 -7
  30. includes/settings/tabs/wps-removal.php +2 -2
  31. includes/settings/wps-settings.php +1 -1
  32. includes/templates/welcomes/last-version.php +3 -3
  33. includes/vendor/mimmi20/wurflcache/src/Adapter/File.php +1 -1
  34. readme.txt +8 -3
  35. wp-statistics.php +1 -1
.gitignore ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ### macOS ###
2
+ *.DS_Store
3
+ .AppleDouble
4
+ .LSOverride
5
+
6
+ # Icon must end with two \r
7
+ Icon
8
+
9
+ # Thumbnails
10
+ ._*
11
+
12
+ # Files that might appear in the root of a volume
13
+ .DocumentRevisions-V100
14
+ .fseventsd
15
+ .Spotlight-V100
16
+ .TemporaryItems
17
+ .Trashes
18
+ .VolumeIcon.icns
19
+ .com.apple.timemachine.donotpresent
20
+
21
+ # Directories potentially created on remote AFP share
22
+ .AppleDB
23
+ .AppleDesktop
24
+ Network Trash Folder
25
+ Temporary Items
26
+ .apdisk
assets/css/frontend.css CHANGED
@@ -5,9 +5,13 @@
5
 
6
  .wp-statistics-opt-out {
7
  width: 100%;
8
- background: #e2e2e2a3;
 
9
  position: fixed;
10
  bottom: 0;
 
 
11
  text-align: center;
12
- padding: 8px 0;
 
13
  }
5
 
6
  .wp-statistics-opt-out {
7
  width: 100%;
8
+ background: #e2e2e2;
9
+ border-top: 5px solid #333333;
10
  position: fixed;
11
  bottom: 0;
12
+ left: 0;
13
+ right: 0;
14
  text-align: center;
15
+ padding: 8px 5px;
16
+ z-index: 9999;
17
  }
includes/classes/class-wp-statistics-admin-pages.php CHANGED
@@ -434,7 +434,7 @@ class WP_Statistics_Admin_Pages {
434
  wp_die(
435
  '<div class="error"><p>' . sprintf(
436
  __(
437
- 'The following plugin table(s) do not exist in the database, please re-run the %s install routine %s: ',
438
  'wp-statistics'
439
  ),
440
  '<a href="' . $get_bloginfo_url . '">',
434
  wp_die(
435
  '<div class="error"><p>' . sprintf(
436
  __(
437
+ 'The following plugin table(s) do not exist in the database, please re-run the %s install routine %s:',
438
  'wp-statistics'
439
  ),
440
  '<a href="' . $get_bloginfo_url . '">',
includes/classes/class-wp-statistics-admin.php CHANGED
@@ -665,7 +665,7 @@ class WP_Statistics_Admin {
665
  sprintf( __( 'WP Statistics %s installed on', 'wp-statistics' ), WP_Statistics::$reg['version'] ) .
666
  ' ' .
667
  $blogname,
668
- "Installation/upgrade complete!",
669
  $headers
670
  );
671
  }
665
  sprintf( __( 'WP Statistics %s installed on', 'wp-statistics' ), WP_Statistics::$reg['version'] ) .
666
  ' ' .
667
  $blogname,
668
+ __( 'Installation/upgrade complete!', 'wp-statistics' ),
669
  $headers
670
  );
671
  }
includes/classes/class-wp-statistics-ajax.php CHANGED
@@ -13,17 +13,18 @@ class WP_Statistics_Ajax {
13
  'wp_ajax_wp_statistics_close_donation_nag',
14
  'WP_Statistics_Ajax::close_donation_nag_action_callback'
15
  );
 
16
  add_action( 'wp_ajax_wp_statistics_delete_agents', 'WP_Statistics_Ajax::delete_agents_action_callback' );
17
- add_action(
18
- 'wp_ajax_wp_statistics_delete_platforms',
19
- 'WP_Statistics_Ajax::delete_platforms_action_callback'
20
- );
21
  add_action( 'wp_ajax_wp_statistics_empty_table', 'WP_Statistics_Ajax::empty_table_action_callback' );
22
  add_action( 'wp_ajax_wp_statistics_purge_data', 'WP_Statistics_Ajax::purge_data_action_callback' );
23
  add_action(
24
  'wp_ajax_wp_statistics_purge_visitor_hits',
25
  'WP_Statistics_Ajax::purge_visitor_hits_action_callback'
26
  );
 
27
  add_action( 'wp_ajax_wp_statistics_get_widget_contents', 'WP_Statistics_Ajax::get_widget_contents_callback' );
28
  }
29
 
@@ -119,6 +120,43 @@ class WP_Statistics_Ajax {
119
  wp_die(); // this is required to terminate immediately and return a proper response
120
  }
121
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
122
  /**
123
  * Setup an AJAX action to empty a table in the optimization page.
124
  */
13
  'wp_ajax_wp_statistics_close_donation_nag',
14
  'WP_Statistics_Ajax::close_donation_nag_action_callback'
15
  );
16
+
17
  add_action( 'wp_ajax_wp_statistics_delete_agents', 'WP_Statistics_Ajax::delete_agents_action_callback' );
18
+ add_action( 'wp_ajax_wp_statistics_delete_platforms', 'WP_Statistics_Ajax::delete_platforms_action_callback' );
19
+ add_action( 'wp_ajax_wp_statistics_delete_ip', 'WP_Statistics_Ajax::delete_ip_action_callback' );
20
+
 
21
  add_action( 'wp_ajax_wp_statistics_empty_table', 'WP_Statistics_Ajax::empty_table_action_callback' );
22
  add_action( 'wp_ajax_wp_statistics_purge_data', 'WP_Statistics_Ajax::purge_data_action_callback' );
23
  add_action(
24
  'wp_ajax_wp_statistics_purge_visitor_hits',
25
  'WP_Statistics_Ajax::purge_visitor_hits_action_callback'
26
  );
27
+
28
  add_action( 'wp_ajax_wp_statistics_get_widget_contents', 'WP_Statistics_Ajax::get_widget_contents_callback' );
29
  }
30
 
120
  wp_die(); // this is required to terminate immediately and return a proper response
121
  }
122
 
123
+ /**
124
+ * Setup an AJAX action to delete a ip in the optimization page.
125
+ */
126
+ static function delete_ip_action_callback() {
127
+ GLOBAL $WP_Statistics, $wpdb; // this is how you get access to the database
128
+
129
+ $manage_cap = wp_statistics_validate_capability(
130
+ $WP_Statistics->get_option( 'manage_capability', 'manage_options' )
131
+ );
132
+
133
+ if ( current_user_can( $manage_cap ) ) {
134
+ $ip_address = sanitize_text_field($_POST['ip-address']);
135
+
136
+ if ( $ip_address ) {
137
+
138
+ $result = $wpdb->query(
139
+ $wpdb->prepare( "DELETE FROM {$wpdb->prefix}statistics_visitor WHERE `ip` = %s", $ip_address )
140
+ );
141
+
142
+ if ( $result ) {
143
+ echo sprintf(
144
+ __( '%s IP data deleted successfully.', 'wp-statistics' ),
145
+ '<code>' . htmlentities( $ip_address, ENT_QUOTES ) . '</code>'
146
+ );
147
+ } else {
148
+ _e( 'No IP address data found to remove!', 'wp-statistics' );
149
+ }
150
+ } else {
151
+ _e( 'Please select the desired items.', 'wp-statistics' );
152
+ }
153
+ } else {
154
+ _e( 'Access denied!', 'wp-statistics' );
155
+ }
156
+
157
+ wp_die(); // this is required to terminate immediately and return a proper response
158
+ }
159
+
160
  /**
161
  * Setup an AJAX action to empty a table in the optimization page.
162
  */
includes/classes/class-wp-statistics-shortcode.php CHANGED
@@ -206,7 +206,7 @@ class WP_Statistics_Shortcode {
206
  'label' => __( 'Post/Page ID', 'wp-statistics' ),
207
  'attr' => 'id',
208
  'type' => 'number',
209
- 'description' => __( 'The post/page id to get page statistics on.', 'wp-statistics' ),
210
  'meta' => array( 'size' => '5' ),
211
  ),
212
  ),
206
  'label' => __( 'Post/Page ID', 'wp-statistics' ),
207
  'attr' => 'id',
208
  'type' => 'number',
209
+ 'description' => __( 'The post/page ID to get page statistics on.', 'wp-statistics' ),
210
  'meta' => array( 'size' => '5' ),
211
  ),
212
  ),
includes/classes/class-wp-statistics-updates.php CHANGED
@@ -68,7 +68,7 @@ class WP_Statistics_Updates {
68
 
69
  $result = "<div class='updated settings-error'><p><strong>" . sprintf(
70
  __(
71
- 'Error creating GeoIP database directory, make sure your web server has permissions to create directories in : %s',
72
  'wp-statistics'
73
  ),
74
  $upload_dir['basedir']
68
 
69
  $result = "<div class='updated settings-error'><p><strong>" . sprintf(
70
  __(
71
+ 'Error creating GeoIP database directory, make sure your web server has permissions to create directories in: %s',
72
  'wp-statistics'
73
  ),
74
  $upload_dir['basedir']
includes/classes/class-wp-statistics.php CHANGED
@@ -399,18 +399,11 @@ class WP_Statistics {
399
  * Check Opt-Out for data protection
400
  */
401
  public function check_opt_out() {
402
- // Ger IP hashed
403
  $get_hash = $this->get_hash_string();
404
 
405
- // Hash IP if the Opt-Out cookie is 0
406
- if ( isset( $_COOKIE['wp_statistics_opt_out'] ) and $_COOKIE['wp_statistics_opt_out'] == 0 ) {
407
- $this->ip_hash = $get_hash;
408
-
409
- return;
410
- }
411
-
412
- // Set cookie and redirect to current URL
413
- if ( empty( $_COOKIE['wp_statistics_opt_out'] ) and isset( $_GET['wp_statistics_opt_out'] ) ) {
414
  global $wpdb;
415
 
416
  // Set cookie
@@ -440,6 +433,13 @@ class WP_Statistics {
440
  exit;
441
  }
442
 
 
 
 
 
 
 
 
443
  // Show Opt-Out message for the user
444
  if ( empty( $_COOKIE['wp_statistics_opt_out'] ) ) {
445
  // Show Popup to visitor
@@ -759,7 +759,7 @@ class WP_Statistics {
759
  $options['check_online'] = '30';
760
  $options['menu_bar'] = false;
761
  $options['coefficient'] = '1';
762
- $options['opt_out_message'] = 'This website stores some user agent data. These data are used to provide a more personalized experience and to track your whereabouts around our website in compliance with the European General Data Protection Regulation. If you decide to opt-out of any future tracking, a cookie will be set up in your browser to remember this choice for one year. <a href="%accept_url%">I Agree</a>, <a href="%cancel_url%">Deny</a>';
763
  $options['stats_report'] = false;
764
  $options['time_report'] = 'daily';
765
  $options['send_report'] = 'mail';
@@ -842,11 +842,11 @@ class WP_Statistics {
842
  return $this->ip;
843
  }
844
 
 
 
845
  // By default we use the remote address the server has.
846
  if ( array_key_exists( 'REMOTE_ADDR', $_SERVER ) ) {
847
  $temp_ip = $this->get_ip_value( $_SERVER['REMOTE_ADDR'] );
848
- } else {
849
- $temp_ip = '127.0.0.1';
850
  }
851
 
852
  if ( false !== $temp_ip ) {
@@ -867,6 +867,7 @@ class WP_Statistics {
867
  'HTTP_X_FORWARDED',
868
  'HTTP_FORWARDED_FOR',
869
  'HTTP_FORWARDED',
 
870
  );
871
 
872
  foreach ( $envs as $env ) {
399
  * Check Opt-Out for data protection
400
  */
401
  public function check_opt_out() {
402
+ // Get IP hashed
403
  $get_hash = $this->get_hash_string();
404
 
405
+ // Set cookie and redirect to current URL if requested
406
+ if ( isset( $_GET['wp_statistics_opt_out'] ) ) {
 
 
 
 
 
 
 
407
  global $wpdb;
408
 
409
  // Set cookie
433
  exit;
434
  }
435
 
436
+ // Hash IP if the Opt-Out cookie is 0 or DNT is set
437
+ if ( ( isset( $_COOKIE['wp_statistics_opt_out'] ) and $_COOKIE['wp_statistics_opt_out'] == 0 ) or ( isset( $_SERVER['HTTP_DNT'] ) and $_SERVER['HTTP_DNT'] == '1' and ( ! isset( $_COOKIE['wp_statistics_opt_out'] ) or $_COOKIE['wp_statistics_opt_out'] != 1 ) ) ) {
438
+ $this->ip_hash = $get_hash;
439
+
440
+ return;
441
+ }
442
+
443
  // Show Opt-Out message for the user
444
  if ( empty( $_COOKIE['wp_statistics_opt_out'] ) ) {
445
  // Show Popup to visitor
759
  $options['check_online'] = '30';
760
  $options['menu_bar'] = false;
761
  $options['coefficient'] = '1';
762
+ $options['opt_out_message'] = __( 'This website stores some user agent data. These data are used to provide a more personalized experience and to track your whereabouts around our website in compliance with the European General Data Protection Regulation. If you decide to opt-out of any future tracking, a cookie will be set up in your browser to remember this choice for one year.', 'wp-statistics' ) . ' <a href="%accept_url%">' . __( 'I Agree', 'wp-statistics' ) . '</a>, <a href="%cancel_url%">' . __( 'Deny', 'wp-statistics' ) . '</a>';
763
  $options['stats_report'] = false;
764
  $options['time_report'] = 'daily';
765
  $options['send_report'] = 'mail';
842
  return $this->ip;
843
  }
844
 
845
+ $temp_ip = false;
846
+
847
  // By default we use the remote address the server has.
848
  if ( array_key_exists( 'REMOTE_ADDR', $_SERVER ) ) {
849
  $temp_ip = $this->get_ip_value( $_SERVER['REMOTE_ADDR'] );
 
 
850
  }
851
 
852
  if ( false !== $temp_ip ) {
867
  'HTTP_X_FORWARDED',
868
  'HTTP_FORWARDED_FOR',
869
  'HTTP_FORWARDED',
870
+ 'HTTP_X_REAL_IP',
871
  );
872
 
873
  foreach ( $envs as $env ) {
includes/log/authors.php CHANGED
@@ -190,19 +190,19 @@
190
  </tr>
191
 
192
  <tr>
193
- <th><?php _e( 'Number of posts by author', 'wp-statistics' ); ?>:</th>
194
  <th class="th-center"><span><?php echo number_format_i18n( count( $posts ) ); ?></span>
195
  </th>
196
  </tr>
197
 
198
  <tr>
199
- <th><?php _e( 'Chart Visits Total', 'wp-statistics' ); ?>:</th>
200
  <th class="th-center"><span><?php echo number_format_i18n( $visit_total ); ?></span>
201
  </th>
202
  </tr>
203
 
204
  <tr>
205
- <th><?php _e( 'All Time Visits Total', 'wp-statistics' ); ?>:</th>
206
  <th class="th-center"><span><?php
207
 
208
  $stat = 0;
190
  </tr>
191
 
192
  <tr>
193
+ <th><?php _e( 'Number of posts by author:', 'wp-statistics' ); ?></th>
194
  <th class="th-center"><span><?php echo number_format_i18n( count( $posts ) ); ?></span>
195
  </th>
196
  </tr>
197
 
198
  <tr>
199
+ <th><?php _e( 'Chart Visits Total:', 'wp-statistics' ); ?></th>
200
  <th class="th-center"><span><?php echo number_format_i18n( $visit_total ); ?></span>
201
  </th>
202
  </tr>
203
 
204
  <tr>
205
+ <th><?php _e( 'All Time Visits Total:', 'wp-statistics' ); ?></th>
206
  <th class="th-center"><span><?php
207
 
208
  $stat = 0;
includes/log/categories.php CHANGED
@@ -175,19 +175,19 @@
175
  </tr>
176
 
177
  <tr>
178
- <th><?php _e( 'Number of posts in category', 'wp-statistics' ); ?>:</th>
179
  <th class="th-center"><span><?php echo number_format_i18n( count( $posts ) ); ?></span>
180
  </th>
181
  </tr>
182
 
183
  <tr>
184
- <th><?php _e( 'Chart Visits Total', 'wp-statistics' ); ?>:</th>
185
  <th class="th-center"><span><?php echo number_format_i18n( $visit_total ); ?></span>
186
  </th>
187
  </tr>
188
 
189
  <tr>
190
- <th><?php _e( 'All Time Visits Total', 'wp-statistics' ); ?>:</th>
191
  <th class="th-center"><span><?php
192
 
193
  $stat = 0;
175
  </tr>
176
 
177
  <tr>
178
+ <th><?php _e( 'Number of posts in category:', 'wp-statistics' ); ?></th>
179
  <th class="th-center"><span><?php echo number_format_i18n( count( $posts ) ); ?></span>
180
  </th>
181
  </tr>
182
 
183
  <tr>
184
+ <th><?php _e( 'Chart Visits Total:', 'wp-statistics' ); ?></th>
185
  <th class="th-center"><span><?php echo number_format_i18n( $visit_total ); ?></span>
186
  </th>
187
  </tr>
188
 
189
  <tr>
190
+ <th><?php _e( 'All Time Visits Total:', 'wp-statistics' ); ?></th>
191
  <th class="th-center"><span><?php
192
 
193
  $stat = 0;
includes/log/exclusions.php CHANGED
@@ -262,13 +262,13 @@ foreach ( $excluded_reasons as $reason ) {
262
  </tr>
263
 
264
  <tr>
265
- <th><?php _e( 'Chart Total', 'wp-statistics' ); ?>:</th>
266
  <th class="th-center"><span><?php echo number_format_i18n( $excluded_total ); ?></span>
267
  </th>
268
  </tr>
269
 
270
  <tr>
271
- <th><?php _e( 'All Time Total', 'wp-statistics' ); ?>:</th>
272
  <th class="th-center">
273
  <span><?php echo number_format_i18n( $excuded_all_time ); ?></span>
274
  </th>
262
  </tr>
263
 
264
  <tr>
265
+ <th><?php _e( 'Chart Total:', 'wp-statistics' ); ?></th>
266
  <th class="th-center"><span><?php echo number_format_i18n( $excluded_total ); ?></span>
267
  </th>
268
  </tr>
269
 
270
  <tr>
271
+ <th><?php _e( 'All Time Total:', 'wp-statistics' ); ?></th>
272
  <th class="th-center">
273
  <span><?php echo number_format_i18n( $excuded_all_time ); ?></span>
274
  </th>
includes/log/hit-statistics.php CHANGED
@@ -150,7 +150,7 @@
150
  </tr>
151
 
152
  <tr>
153
- <th><?php _e( 'Chart Total', 'wp-statistics' ); ?>:</th>
154
  <th class="th-center"><span><?php echo number_format_i18n( $visit_total ); ?></span>
155
  </th>
156
  <th class="th-center"><span><?php echo number_format_i18n( $visitor_total ); ?></span>
@@ -158,7 +158,7 @@
158
  </tr>
159
 
160
  <tr>
161
- <th><?php _e( 'All Time Total', 'wp-statistics' ); ?>:</th>
162
  <th class="th-center">
163
  <span><?php echo number_format_i18n( wp_statistics_visit( 'total' ) ); ?></span>
164
  </th>
150
  </tr>
151
 
152
  <tr>
153
+ <th><?php _e( 'Chart Total:', 'wp-statistics' ); ?></th>
154
  <th class="th-center"><span><?php echo number_format_i18n( $visit_total ); ?></span>
155
  </th>
156
  <th class="th-center"><span><?php echo number_format_i18n( $visitor_total ); ?></span>
158
  </tr>
159
 
160
  <tr>
161
+ <th><?php _e( 'All Time Total:', 'wp-statistics' ); ?></th>
162
  <th class="th-center">
163
  <span><?php echo number_format_i18n( wp_statistics_visit( 'total' ) ); ?></span>
164
  </th>
includes/log/tags.php CHANGED
@@ -186,19 +186,19 @@
186
  </tr>
187
 
188
  <tr>
189
- <th><?php _e( 'Number of posts in tag', 'wp-statistics' ); ?>:</th>
190
  <th class="th-center"><span><?php echo number_format_i18n( count( $posts ) ); ?></span>
191
  </th>
192
  </tr>
193
 
194
  <tr>
195
- <th><?php _e( 'Chart Visits Total', 'wp-statistics' ); ?>:</th>
196
  <th class="th-center"><span><?php echo number_format_i18n( $visit_total ); ?></span>
197
  </th>
198
  </tr>
199
 
200
  <tr>
201
- <th><?php _e( 'All Time Visits Total', 'wp-statistics' ); ?>:</th>
202
  <th class="th-center"><span><?php
203
 
204
  $stat = 0;
186
  </tr>
187
 
188
  <tr>
189
+ <th><?php _e( 'Number of posts in tag:', 'wp-statistics' ); ?></th>
190
  <th class="th-center"><span><?php echo number_format_i18n( count( $posts ) ); ?></span>
191
  </th>
192
  </tr>
193
 
194
  <tr>
195
+ <th><?php _e( 'Chart Visits Total:', 'wp-statistics' ); ?></th>
196
  <th class="th-center"><span><?php echo number_format_i18n( $visit_total ); ?></span>
197
  </th>
198
  </tr>
199
 
200
  <tr>
201
+ <th><?php _e( 'All Time Visits Total:', 'wp-statistics' ); ?></th>
202
  <th class="th-center"><span><?php
203
 
204
  $stat = 0;
includes/log/widgets/quickstats.php CHANGED
@@ -9,7 +9,7 @@ function wp_statistics_generate_quickstats_postbox_content( $search_engines, $se
9
  <tbody>
10
  <?php if ( $WP_Statistics->get_option( 'useronline' ) ) { ?>
11
  <tr>
12
- <th><?php _e( 'Online Users', 'wp-statistics' ); ?>:</th>
13
  <th colspan="2" id="th-colspan">
14
  <span><a
15
  href="admin.php?page=<?php echo WP_Statistics::$page['online']; ?>"><?php echo wp_statistics_useronline(); ?></a></span>
@@ -34,7 +34,7 @@ function wp_statistics_generate_quickstats_postbox_content( $search_engines, $se
34
  </tr>
35
 
36
  <tr>
37
- <th><?php _e( 'Today', 'wp-statistics' ); ?>:</th>
38
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
39
  echo '<a href="admin.php?page=' .
40
  WP_Statistics::$page['visitors'] .
@@ -56,7 +56,7 @@ function wp_statistics_generate_quickstats_postbox_content( $search_engines, $se
56
  </tr>
57
 
58
  <tr>
59
- <th><?php _e( 'Yesterday', 'wp-statistics' ); ?>:</th>
60
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
61
  echo '<a href="admin.php?page=' .
62
  WP_Statistics::$page['visitors'] .
@@ -78,7 +78,7 @@ function wp_statistics_generate_quickstats_postbox_content( $search_engines, $se
78
  </tr>
79
 
80
  <tr>
81
- <th><?php _e( 'Last 7 Days (Week)', 'wp-statistics' ); ?>:</th>
82
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
83
  echo '<a href="admin.php?page=' .
84
  WP_Statistics::$page['visitors'] .
@@ -100,7 +100,7 @@ function wp_statistics_generate_quickstats_postbox_content( $search_engines, $se
100
  </tr>
101
 
102
  <tr>
103
- <th><?php _e( 'Last 30 Days (Month)', 'wp-statistics' ); ?>:</th>
104
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
105
  echo '<a href="admin.php?page=' .
106
  WP_Statistics::$page['visitors'] .
@@ -122,7 +122,7 @@ function wp_statistics_generate_quickstats_postbox_content( $search_engines, $se
122
  </tr>
123
 
124
  <tr>
125
- <th><?php _e( 'Last 365 Days (Year)', 'wp-statistics' ); ?>:</th>
126
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
127
  echo '<a href="admin.php?page=' .
128
  WP_Statistics::$page['visitors'] .
@@ -144,7 +144,7 @@ function wp_statistics_generate_quickstats_postbox_content( $search_engines, $se
144
  </tr>
145
 
146
  <tr>
147
- <th><?php _e( 'Total', 'wp-statistics' ); ?>:</th>
148
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
149
  echo '<a href="admin.php?page=' .
150
  WP_Statistics::$page['visitors'] .
@@ -219,7 +219,7 @@ function wp_statistics_generate_quickstats_postbox_content( $search_engines, $se
219
  }
220
  ?>
221
  <tr>
222
- <th><?php _e( 'Daily Total', 'wp-statistics' ); ?>:</th>
223
  <td id="th-colspan" class="th-center"><span><?php echo number_format_i18n( $se_today_total ); ?></span>
224
  </td>
225
  <td id="th-colspan" class="th-center">
@@ -227,7 +227,7 @@ function wp_statistics_generate_quickstats_postbox_content( $search_engines, $se
227
  </tr>
228
 
229
  <tr>
230
- <th><?php _e( 'Total', 'wp-statistics' ); ?>:</th>
231
  <th colspan="2" id="th-colspan">
232
  <span><?php echo number_format_i18n( wp_statistics_searchengine( 'all' ) ); ?></span></th>
233
  </tr>
9
  <tbody>
10
  <?php if ( $WP_Statistics->get_option( 'useronline' ) ) { ?>
11
  <tr>
12
+ <th><?php _e( 'Online Users:', 'wp-statistics' ); ?></th>
13
  <th colspan="2" id="th-colspan">
14
  <span><a
15
  href="admin.php?page=<?php echo WP_Statistics::$page['online']; ?>"><?php echo wp_statistics_useronline(); ?></a></span>
34
  </tr>
35
 
36
  <tr>
37
+ <th><?php _e( 'Today:', 'wp-statistics' ); ?></th>
38
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
39
  echo '<a href="admin.php?page=' .
40
  WP_Statistics::$page['visitors'] .
56
  </tr>
57
 
58
  <tr>
59
+ <th><?php _e( 'Yesterday:', 'wp-statistics' ); ?></th>
60
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
61
  echo '<a href="admin.php?page=' .
62
  WP_Statistics::$page['visitors'] .
78
  </tr>
79
 
80
  <tr>
81
+ <th><?php _e( 'Last 7 Days (Week):', 'wp-statistics' ); ?></th>
82
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
83
  echo '<a href="admin.php?page=' .
84
  WP_Statistics::$page['visitors'] .
100
  </tr>
101
 
102
  <tr>
103
+ <th><?php _e( 'Last 30 Days (Month):', 'wp-statistics' ); ?></th>
104
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
105
  echo '<a href="admin.php?page=' .
106
  WP_Statistics::$page['visitors'] .
122
  </tr>
123
 
124
  <tr>
125
+ <th><?php _e( 'Last 365 Days (Year):', 'wp-statistics' ); ?></th>
126
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
127
  echo '<a href="admin.php?page=' .
128
  WP_Statistics::$page['visitors'] .
144
  </tr>
145
 
146
  <tr>
147
+ <th><?php _e( 'Total:', 'wp-statistics' ); ?></th>
148
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
149
  echo '<a href="admin.php?page=' .
150
  WP_Statistics::$page['visitors'] .
219
  }
220
  ?>
221
  <tr>
222
+ <th><?php _e( 'Daily Total:', 'wp-statistics' ); ?></th>
223
  <td id="th-colspan" class="th-center"><span><?php echo number_format_i18n( $se_today_total ); ?></span>
224
  </td>
225
  <td id="th-colspan" class="th-center">
227
  </tr>
228
 
229
  <tr>
230
+ <th><?php _e( 'Total:', 'wp-statistics' ); ?></th>
231
  <th colspan="2" id="th-colspan">
232
  <span><?php echo number_format_i18n( wp_statistics_searchengine( 'all' ) ); ?></span></th>
233
  </tr>
includes/log/widgets/summary.php CHANGED
@@ -9,7 +9,7 @@ function wp_statistics_generate_summary_postbox_content( $search_engines, $searc
9
  <tbody>
10
  <?php if ( $WP_Statistics->get_option( 'useronline' ) ) { ?>
11
  <tr>
12
- <th><?php _e( 'Online Users', 'wp-statistics' ); ?>:</th>
13
  <th colspan="2" id="th-colspan">
14
  <span><a
15
  href="admin.php?page=<?php echo WP_Statistics::$page['online']; ?>"><?php echo wp_statistics_useronline(); ?></a></span>
@@ -34,7 +34,7 @@ function wp_statistics_generate_summary_postbox_content( $search_engines, $searc
34
  </tr>
35
 
36
  <tr>
37
- <th><?php _e( 'Today', 'wp-statistics' ); ?>:</th>
38
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
39
  echo '<a href="admin.php?page=' .
40
  WP_Statistics::$page['visitors'] .
@@ -56,7 +56,7 @@ function wp_statistics_generate_summary_postbox_content( $search_engines, $searc
56
  </tr>
57
 
58
  <tr>
59
- <th><?php _e( 'Yesterday', 'wp-statistics' ); ?>:</th>
60
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
61
  echo '<a href="admin.php?page=' .
62
  WP_Statistics::$page['visitors'] .
@@ -78,7 +78,7 @@ function wp_statistics_generate_summary_postbox_content( $search_engines, $searc
78
  </tr>
79
 
80
  <tr>
81
- <th><?php _e( 'Last 7 Days', 'wp-statistics' ); ?>:</th>
82
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
83
  echo '<a href="admin.php?page=' .
84
  WP_Statistics::$page['visitors'] .
@@ -100,7 +100,7 @@ function wp_statistics_generate_summary_postbox_content( $search_engines, $searc
100
  </tr>
101
 
102
  <tr>
103
- <th><?php _e( 'Last 30 Days', 'wp-statistics' ); ?>:</th>
104
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
105
  echo '<a href="admin.php?page=' .
106
  WP_Statistics::$page['visitors'] .
@@ -122,7 +122,7 @@ function wp_statistics_generate_summary_postbox_content( $search_engines, $searc
122
  </tr>
123
 
124
  <tr>
125
- <th><?php _e( 'Last 365 Days', 'wp-statistics' ); ?>:</th>
126
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
127
  echo '<a href="admin.php?page=' .
128
  WP_Statistics::$page['visitors'] .
@@ -144,7 +144,7 @@ function wp_statistics_generate_summary_postbox_content( $search_engines, $searc
144
  </tr>
145
 
146
  <tr>
147
- <th><?php _e( 'Total', 'wp-statistics' ); ?>:</th>
148
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
149
  echo '<a href="admin.php?page=' .
150
  WP_Statistics::$page['visitors'] .
@@ -219,7 +219,7 @@ function wp_statistics_generate_summary_postbox_content( $search_engines, $searc
219
  }
220
  ?>
221
  <tr>
222
- <th><?php _e( 'Daily Total', 'wp-statistics' ); ?>:</th>
223
  <td id="th-colspan" class="th-center"><span><?php echo number_format_i18n( $se_today_total ); ?></span>
224
  </td>
225
  <td id="th-colspan" class="th-center">
@@ -227,7 +227,7 @@ function wp_statistics_generate_summary_postbox_content( $search_engines, $searc
227
  </tr>
228
 
229
  <tr>
230
- <th><?php _e( 'Total', 'wp-statistics' ); ?>:</th>
231
  <th colspan="2" id="th-colspan">
232
  <span><?php echo number_format_i18n( wp_statistics_searchengine( 'all' ) ); ?></span></th>
233
  </tr>
9
  <tbody>
10
  <?php if ( $WP_Statistics->get_option( 'useronline' ) ) { ?>
11
  <tr>
12
+ <th><?php _e( 'Online Users:', 'wp-statistics' ); ?></th>
13
  <th colspan="2" id="th-colspan">
14
  <span><a
15
  href="admin.php?page=<?php echo WP_Statistics::$page['online']; ?>"><?php echo wp_statistics_useronline(); ?></a></span>
34
  </tr>
35
 
36
  <tr>
37
+ <th><?php _e( 'Today:', 'wp-statistics' ); ?></th>
38
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
39
  echo '<a href="admin.php?page=' .
40
  WP_Statistics::$page['visitors'] .
56
  </tr>
57
 
58
  <tr>
59
+ <th><?php _e( 'Yesterday:', 'wp-statistics' ); ?></th>
60
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
61
  echo '<a href="admin.php?page=' .
62
  WP_Statistics::$page['visitors'] .
78
  </tr>
79
 
80
  <tr>
81
+ <th><?php _e( 'Last 7 Days:', 'wp-statistics' ); ?></th>
82
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
83
  echo '<a href="admin.php?page=' .
84
  WP_Statistics::$page['visitors'] .
100
  </tr>
101
 
102
  <tr>
103
+ <th><?php _e( 'Last 30 Days:', 'wp-statistics' ); ?></th>
104
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
105
  echo '<a href="admin.php?page=' .
106
  WP_Statistics::$page['visitors'] .
122
  </tr>
123
 
124
  <tr>
125
+ <th><?php _e( 'Last 365 Days:', 'wp-statistics' ); ?></th>
126
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
127
  echo '<a href="admin.php?page=' .
128
  WP_Statistics::$page['visitors'] .
144
  </tr>
145
 
146
  <tr>
147
+ <th><?php _e( 'Total:', 'wp-statistics' ); ?></th>
148
  <th class="th-center"><?php if ( $WP_Statistics->get_option( 'visitors' ) ) {
149
  echo '<a href="admin.php?page=' .
150
  WP_Statistics::$page['visitors'] .
219
  }
220
  ?>
221
  <tr>
222
+ <th><?php _e( 'Daily Total:', 'wp-statistics' ); ?></th>
223
  <td id="th-colspan" class="th-center"><span><?php echo number_format_i18n( $se_today_total ); ?></span>
224
  </td>
225
  <td id="th-colspan" class="th-center">
227
  </tr>
228
 
229
  <tr>
230
+ <th><?php _e( 'Total:', 'wp-statistics' ); ?></th>
231
  <th colspan="2" id="th-colspan">
232
  <span><?php echo number_format_i18n( wp_statistics_searchengine( 'all' ) ); ?></span></th>
233
  </tr>
includes/optimization/tabs/wps-optimization-database.php CHANGED
@@ -7,7 +7,7 @@
7
 
8
  <tr valign="top">
9
  <th scope="row">
10
- <label for="index-submit"><?php _e( 'Re-run Install', 'wp-statistics' ); ?>:</label>
11
  </th>
12
 
13
  <td>
@@ -28,7 +28,7 @@
28
 
29
  <tr valign="top">
30
  <th scope="row">
31
- <label for="index-submit"><?php _e( 'Countries', 'wp-statistics' ); ?>:</label>
32
  </th>
33
 
34
  <td>
@@ -50,8 +50,17 @@
50
  <input id="index-submit" class="button button-primary" type="button"
51
  value="<?php _e( 'Update Now!', 'wp-statistics' ); ?>" name="index-submit"
52
  onclick="location.href=document.URL+'&index=1&tab=database'">
53
- <p class="description"><?php _e(
54
- 'Older installs of WP Statistics allow for duplicate entries in the visitors table in a corner case. Newer installs protect against this with a unique index on the table. To create the index on the older installs duplicate entries must be deleted first. Clicking "Update Now" will scan the vistitors table, delete duplicate entries and add the index.',
 
 
 
 
 
 
 
 
 
55
  'wp-statistics'
56
  ); ?></p>
57
  <p class="description"><?php _e(
@@ -62,8 +71,11 @@
62
  } else {
63
  $dbupdates['date_ip_agent'] = false;
64
  ?>
65
- <p class="description"><?php _e(
66
- 'Older installs of WP Statistics allow for duplicate entries in the visitors table in a corner case. Newer installs protect against this with a unique index on the table.',
 
 
 
67
  'wp-statistics'
68
  ); ?></p>
69
  <p class="description"><?php _e(
@@ -78,7 +90,7 @@
78
 
79
  <tr valign="top">
80
  <th scope="row">
81
- <label for="index-submit"><?php _e( 'Visits Table', 'wp-statistics' ); ?>:</label>
82
  </th>
83
  <td>
84
  <?php
@@ -95,8 +107,17 @@
95
  <input id="visits-submit" class="button button-primary" type="button"
96
  value="<?php _e( 'Update Now!', 'wp-statistics' ); ?>" name="visit-submit"
97
  onclick="location.href=document.URL+'&visits=1&tab=database'">
98
- <p class="description"><?php _e(
99
- 'Older installs of WP Statistics allow for duplicate entries in the visits table in a corner case. Newer installs protect against this with a unique index on the table. To create the index on the older installs duplicate entries must be deleted first. Clicking "Update Now" will scan the vistits table, delete duplicate entries and add the index.',
 
 
 
 
 
 
 
 
 
100
  'wp-statistics'
101
  ); ?></p>
102
  <p class="description"><?php _e(
@@ -107,8 +128,11 @@
107
  } else {
108
  $dbupdates['unique_date'] = false;
109
  ?>
110
- <p class="description"><?php _e(
111
- 'Older installs of WP Statistics allow for duplicate entries in the visits table in a corner case. Newer installs protect against this with a unique index on the table.',
 
 
 
112
  'wp-statistics'
113
  ); ?></p>
114
  <p class="description"><?php _e(
@@ -130,7 +154,7 @@
130
 
131
  <tr valign="top">
132
  <th scope="row">
133
- <label for="index-submit"><?php _e( 'Convert', 'wp-statistics' ); ?>:</label>
134
  </th>
135
  <td>
136
  <?php
@@ -140,8 +164,11 @@
140
  <input id="visits-submit" class="button button-primary" type="button"
141
  value="<?php _e( 'Convert Now!', 'wp-statistics' ); ?>" name="search-submit"
142
  onclick="location.href=document.URL+'&search=1&tab=database'">
143
- <p class="description"><?php _e(
144
- 'Older installs of WP Statistics store details of searches in the visitors table which can become a performance issue on large datasets. A new table has been created to hold this information in a more scalable fashion, however the old data must first be converted to the new format before it can be used.',
 
 
 
145
  'wp-statistics'
146
  ); ?></p>
147
  <p class="description"><?php _e(
@@ -151,8 +178,11 @@
151
  <?php
152
  } else {
153
  ?>
154
- <p class="description"><?php _e(
155
- 'Older installs of WP Statistics store details of searches in the visitors table which can become a performance issue on large datasets. A new table has been created to hold this information in a more scalable fashion.',
 
 
 
156
  'wp-statistics'
157
  ); ?></p>
158
  <p class="description"><?php _e(
7
 
8
  <tr valign="top">
9
  <th scope="row">
10
+ <label for="index-submit"><?php _e( 'Re-run Install:', 'wp-statistics' ); ?></label>
11
  </th>
12
 
13
  <td>
28
 
29
  <tr valign="top">
30
  <th scope="row">
31
+ <label for="index-submit"><?php _e( 'Countries:', 'wp-statistics' ); ?></label>
32
  </th>
33
 
34
  <td>
50
  <input id="index-submit" class="button button-primary" type="button"
51
  value="<?php _e( 'Update Now!', 'wp-statistics' ); ?>" name="index-submit"
52
  onclick="location.href=document.URL+'&index=1&tab=database'">
53
+ <p class="description"><?php echo __(
54
+ 'Older installs of WP Statistics allow for duplicate entries in the visitors table in a corner case.',
55
+ 'wp-statistics'
56
+ ) . ' ' . __(
57
+ 'Newer installs protect against this with a unique index on the table.',
58
+ 'wp-statistics'
59
+ ) . ' ' . __(
60
+ 'To create the index on the older installs duplicate entries must be deleted first.',
61
+ 'wp-statistics'
62
+ ) . ' ' . __(
63
+ 'Clicking "Update Now" will scan the vistitors table, delete duplicate entries and add the index.',
64
  'wp-statistics'
65
  ); ?></p>
66
  <p class="description"><?php _e(
71
  } else {
72
  $dbupdates['date_ip_agent'] = false;
73
  ?>
74
+ <p class="description"><?php echo __(
75
+ 'Older installs of WP Statistics allow for duplicate entries in the visitors table in a corner case.',
76
+ 'wp-statistics'
77
+ ) . ' ' . __(
78
+ 'Newer installs protect against this with a unique index on the table.',
79
  'wp-statistics'
80
  ); ?></p>
81
  <p class="description"><?php _e(
90
 
91
  <tr valign="top">
92
  <th scope="row">
93
+ <label for="index-submit"><?php _e( 'Visits Table:', 'wp-statistics' ); ?></label>
94
  </th>
95
  <td>
96
  <?php
107
  <input id="visits-submit" class="button button-primary" type="button"
108
  value="<?php _e( 'Update Now!', 'wp-statistics' ); ?>" name="visit-submit"
109
  onclick="location.href=document.URL+'&visits=1&tab=database'">
110
+ <p class="description"><?php echo __(
111
+ 'Older installs of WP Statistics allow for duplicate entries in the visits table in a corner case.',
112
+ 'wp-statistics'
113
+ ) . ' ' . __(
114
+ 'Newer installs protect against this with a unique index on the table.',
115
+ 'wp-statistics'
116
+ ) . ' ' . __(
117
+ 'To create the index on the older installs duplicate entries must be deleted first.',
118
+ 'wp-statistics'
119
+ ) . ' ' . __(
120
+ 'Clicking "Update Now" will scan the vistits table, delete duplicate entries and add the index.',
121
  'wp-statistics'
122
  ); ?></p>
123
  <p class="description"><?php _e(
128
  } else {
129
  $dbupdates['unique_date'] = false;
130
  ?>
131
+ <p class="description"><?php echo __(
132
+ 'Older installs of WP Statistics allow for duplicate entries in the visits table in a corner case.',
133
+ 'wp-statistics'
134
+ ) . ' ' . __(
135
+ 'Newer installs protect against this with a unique index on the table.',
136
  'wp-statistics'
137
  ); ?></p>
138
  <p class="description"><?php _e(
154
 
155
  <tr valign="top">
156
  <th scope="row">
157
+ <label for="index-submit"><?php _e( 'Convert:', 'wp-statistics' ); ?></label>
158
  </th>
159
  <td>
160
  <?php
164
  <input id="visits-submit" class="button button-primary" type="button"
165
  value="<?php _e( 'Convert Now!', 'wp-statistics' ); ?>" name="search-submit"
166
  onclick="location.href=document.URL+'&search=1&tab=database'">
167
+ <p class="description"><?php echo __(
168
+ 'Older installs of WP Statistics store details of searches in the visitors table which can become a performance issue on large datasets.',
169
+ 'wp-statistics'
170
+ ) . ' ' . __(
171
+ 'A new table has been created to hold this information in a more scalable fashion, however the old data must first be converted to the new format before it can be used.',
172
  'wp-statistics'
173
  ); ?></p>
174
  <p class="description"><?php _e(
178
  <?php
179
  } else {
180
  ?>
181
+ <p class="description"><?php echo __(
182
+ 'Older installs of WP Statistics store details of searches in the visitors table which can become a performance issue on large datasets.',
183
+ 'wp-statistics'
184
+ ) . ' ' . __(
185
+ 'A new table has been created to hold this information in a more scalable fashion.',
186
  'wp-statistics'
187
  ); ?></p>
188
  <p class="description"><?php _e(
includes/optimization/tabs/wps-optimization-export.php CHANGED
@@ -10,7 +10,7 @@
10
 
11
  <tr valign="top">
12
  <th scope="row">
13
- <label for="table-to-export"><?php _e( 'Export from', 'wp-statistics' ); ?>:</label>
14
  </th>
15
 
16
  <td>
@@ -30,7 +30,7 @@
30
 
31
  <tr valign="top">
32
  <th scope="row">
33
- <label for="export-file-type"><?php _e( 'Export To', 'wp-statistics' ); ?>:</label>
34
  </th>
35
 
36
  <td>
@@ -47,7 +47,7 @@
47
 
48
  <tr valign="top">
49
  <th scope="row">
50
- <label for="export-headers"><?php _e( 'Include Header Row', 'wp-statistics' ); ?>:</label>
51
  </th>
52
 
53
  <td>
10
 
11
  <tr valign="top">
12
  <th scope="row">
13
+ <label for="table-to-export"><?php _e( 'Export from:', 'wp-statistics' ); ?></label>
14
  </th>
15
 
16
  <td>
30
 
31
  <tr valign="top">
32
  <th scope="row">
33
+ <label for="export-file-type"><?php _e( 'Export To:', 'wp-statistics' ); ?></label>
34
  </th>
35
 
36
  <td>
47
 
48
  <tr valign="top">
49
  <th scope="row">
50
+ <label for="export-headers"><?php _e( 'Include Header Row:', 'wp-statistics' ); ?></label>
51
  </th>
52
 
53
  <td>
includes/optimization/tabs/wps-optimization-purging.php CHANGED
@@ -170,6 +170,39 @@
170
  });
171
  });
172
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
173
  });
174
  </script>
175
 
@@ -182,7 +215,7 @@
182
 
183
  <tr valign="top">
184
  <th scope="row">
185
- <label for="empty-table"><?php _e( 'Empty Table', 'wp-statistics' ); ?>:</label>
186
  </th>
187
 
188
  <td>
@@ -202,37 +235,37 @@
202
  value="<?php _e( 'Clear now!', 'wp-statistics' ); ?>" name="empty-table-submit"
203
  Onclick="return false;"/>
204
  <span id="empty-status"></span>
205
-
206
  <div id="empty-result"></div>
207
  </td>
208
  </tr>
209
 
210
  <tr>
211
  <th scope="row">
212
- <label for="purge-data"><?php _e( 'Purge records older than', 'wp-statistics' ); ?>:</label>
213
  </th>
214
 
215
  <td>
216
  <input type="text" class="small-text code" id="purge-data" name="wps_purge_data" value="365"/>
217
  <label for="purge-data"><?php _e( 'Days', 'wp-statistics' ); ?></label>
218
 
219
- <p class="description"><?php _e(
220
- 'Delete user statistics data older than the selected number of days. Minimum value is 30 days.',
 
 
 
221
  'wp-statistics'
222
  ); ?></p>
223
  <input id="purge-data-submit" class="button button-primary" type="submit"
224
  value="<?php _e( 'Purge now!', 'wp-statistics' ); ?>" name="purge-data-submit"
225
  Onclick="return false;"/>
226
  <span id="purge-data-status"></span>
227
-
228
  <div id="purge-data-result"></div>
229
  </td>
230
  </tr>
231
 
232
  <tr>
233
  <th scope="row">
234
- <label for="purge-visitor-hits"><?php _e( 'Purge visitors with more than', 'wp-statistics' ); ?>
235
- :</label>
236
  </th>
237
 
238
  <td>
@@ -240,15 +273,23 @@
240
  value="10"/>
241
  <label for="purge-visitor-hits"><?php _e( 'Hits', 'wp-statistics' ); ?></label>
242
 
243
- <p class="description"><?php _e(
244
- 'Delete user statistics data where the user has more than the defined number of hits in a day. This can be useful to clear up old data when your site has been hit by a bot. This will remove the visitor and their hits to the site, however it will not remove individual page hits as that data is not recorded on a per use basis. Minimum value is 10 hits.',
 
 
 
 
 
 
 
 
 
245
  'wp-statistics'
246
  ); ?></p>
247
  <input id="purge-visitor-hits-submit" class="button button-primary" type="submit"
248
  value="<?php _e( 'Purge now!', 'wp-statistics' ); ?>" name="purge-visitor-hits-submit"
249
  Onclick="return false;"/>
250
  <span id="purge-visitor-hits-status"></span>
251
-
252
  <div id="purge-visitor-hits-result"></div>
253
  </td>
254
  </tr>
@@ -259,7 +300,7 @@
259
 
260
  <tr valign="top">
261
  <th scope="row">
262
- <label for="delete-agent"><?php _e( 'Delete Agents', 'wp-statistics' ); ?>:</label>
263
  </th>
264
 
265
  <td>
@@ -283,41 +324,59 @@
283
  value="<?php _e( 'Delete now!', 'wp-statistics' ); ?>" name="delete-agents-submit"
284
  Onclick="return false;">
285
  <span id="delete-agents-status"></span>
286
-
287
  <div id="delete-agents-result"></div>
288
  </td>
289
  </tr>
290
 
291
  <tr valign="top">
292
  <th scope="row">
293
- <label for="delete-platform"><?php _e( 'Delete Platforms', 'wp-statistics' ); ?>:</label>
294
  </th>
295
 
296
  <td>
297
  <select dir="ltr" id="delete-platform" name="delete-platform">
298
  <option value="0"><?php _e( 'Please select', 'wp-statistics' ); ?></option>
299
- <?php
300
- $platforms = wp_statistics_platform_list();
301
-
302
- foreach ( $platforms as $platform ) {
303
- $pid = preg_replace( "/[^a-zA-Z]/", "", $platform );
304
- echo "<option value='$platform' id='platform-" . $pid . "-id'>" . $platform . "</option>";
305
- }
306
- ?>
307
  </select>
308
 
309
  <p class="description"><?php _e(
310
- 'All visitor data will be lost for this platform type.',
311
- 'wp-statistics'
312
- ); ?></p>
313
  <input id="delete-platforms-submit" class="button button-primary" type="submit"
314
  value="<?php _e( 'Delete now!', 'wp-statistics' ); ?>" name="delete-platforms-submit"
315
  Onclick="return false;">
316
  <span id="delete-platforms-status"></span>
317
-
318
  <div id="delete-platforms-result"></div>
319
  </td>
320
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
321
  </tbody>
322
  </table>
323
  </div>
170
  });
171
  });
172
 
173
+ jQuery("#delete-ip-submit").click(function () {
174
+
175
+ var value = jQuery('#delete-ip').val();
176
+
177
+ if (value == 0)
178
+ return false;
179
+
180
+ var agree = confirm('<?php _e( 'Are you sure?', 'wp-statistics' ); ?>');
181
+
182
+ if (!agree)
183
+ return false;
184
+
185
+ jQuery("#delete-ip-submit").attr("disabled", "disabled");
186
+ jQuery("#delete-ip-status").html("<img src='<?php echo plugins_url( 'wp-statistics' ); ?>/assets/images/loading.gif'/>");
187
+
188
+ var data = {
189
+ 'action': 'wp_statistics_delete_ip',
190
+ 'ip-address': value,
191
+ };
192
+
193
+ jQuery.ajax({
194
+ url: ajaxurl,
195
+ type: 'post',
196
+ data: data,
197
+ datatype: 'json',
198
+ })
199
+ .always(function (result) {
200
+ jQuery("#delete-ip-status").html("");
201
+ jQuery("#delete-ip-result").html(result);
202
+ jQuery("#delete-ip-submit").removeAttr("disabled");
203
+ jQuery("#delete-ip").value('');
204
+ });
205
+ });
206
  });
207
  </script>
208
 
215
 
216
  <tr valign="top">
217
  <th scope="row">
218
+ <label for="empty-table"><?php _e( 'Empty Table:', 'wp-statistics' ); ?></label>
219
  </th>
220
 
221
  <td>
235
  value="<?php _e( 'Clear now!', 'wp-statistics' ); ?>" name="empty-table-submit"
236
  Onclick="return false;"/>
237
  <span id="empty-status"></span>
 
238
  <div id="empty-result"></div>
239
  </td>
240
  </tr>
241
 
242
  <tr>
243
  <th scope="row">
244
+ <label for="purge-data"><?php _e( 'Purge records older than:', 'wp-statistics' ); ?></label>
245
  </th>
246
 
247
  <td>
248
  <input type="text" class="small-text code" id="purge-data" name="wps_purge_data" value="365"/>
249
  <label for="purge-data"><?php _e( 'Days', 'wp-statistics' ); ?></label>
250
 
251
+ <p class="description"><?php echo __(
252
+ 'Delete user statistics data older than the selected number of days.',
253
+ 'wp-statistics'
254
+ ) . ' ' . __(
255
+ 'Minimum value is 30 days.',
256
  'wp-statistics'
257
  ); ?></p>
258
  <input id="purge-data-submit" class="button button-primary" type="submit"
259
  value="<?php _e( 'Purge now!', 'wp-statistics' ); ?>" name="purge-data-submit"
260
  Onclick="return false;"/>
261
  <span id="purge-data-status"></span>
 
262
  <div id="purge-data-result"></div>
263
  </td>
264
  </tr>
265
 
266
  <tr>
267
  <th scope="row">
268
+ <label for="purge-visitor-hits"><?php _e( 'Purge visitors with more than:', 'wp-statistics' ); ?></label>
 
269
  </th>
270
 
271
  <td>
273
  value="10"/>
274
  <label for="purge-visitor-hits"><?php _e( 'Hits', 'wp-statistics' ); ?></label>
275
 
276
+ <p class="description"><?php echo __(
277
+ 'Delete user statistics data where the user has more than the defined number of hits in a day.',
278
+ 'wp-statistics'
279
+ ) . ' ' . __(
280
+ 'This can be useful to clear up old data when your site has been hit by a bot.',
281
+ 'wp-statistics'
282
+ ) . ' ' . __(
283
+ 'This will remove the visitor and their hits to the site, however it will not remove individual page hits as that data is not recorded on a per use basis.',
284
+ 'wp-statistics'
285
+ ) . ' ' . __(
286
+ 'Minimum value is 10 hits.',
287
  'wp-statistics'
288
  ); ?></p>
289
  <input id="purge-visitor-hits-submit" class="button button-primary" type="submit"
290
  value="<?php _e( 'Purge now!', 'wp-statistics' ); ?>" name="purge-visitor-hits-submit"
291
  Onclick="return false;"/>
292
  <span id="purge-visitor-hits-status"></span>
 
293
  <div id="purge-visitor-hits-result"></div>
294
  </td>
295
  </tr>
300
 
301
  <tr valign="top">
302
  <th scope="row">
303
+ <label for="delete-agent"><?php _e( 'Delete Agents:', 'wp-statistics' ); ?></label>
304
  </th>
305
 
306
  <td>
324
  value="<?php _e( 'Delete now!', 'wp-statistics' ); ?>" name="delete-agents-submit"
325
  Onclick="return false;">
326
  <span id="delete-agents-status"></span>
 
327
  <div id="delete-agents-result"></div>
328
  </td>
329
  </tr>
330
 
331
  <tr valign="top">
332
  <th scope="row">
333
+ <label for="delete-platform"><?php _e( 'Delete Platforms:', 'wp-statistics' ); ?></label>
334
  </th>
335
 
336
  <td>
337
  <select dir="ltr" id="delete-platform" name="delete-platform">
338
  <option value="0"><?php _e( 'Please select', 'wp-statistics' ); ?></option>
339
+ <?php
340
+ $platforms = wp_statistics_platform_list();
341
+
342
+ foreach ( $platforms as $platform ) {
343
+ $pid = preg_replace( "/[^a-zA-Z]/", "", $platform );
344
+ echo "<option value='$platform' id='platform-" . $pid . "-id'>" . $platform . "</option>";
345
+ }
346
+ ?>
347
  </select>
348
 
349
  <p class="description"><?php _e(
350
+ 'All visitor data will be lost for this platform type.',
351
+ 'wp-statistics'
352
+ ); ?></p>
353
  <input id="delete-platforms-submit" class="button button-primary" type="submit"
354
  value="<?php _e( 'Delete now!', 'wp-statistics' ); ?>" name="delete-platforms-submit"
355
  Onclick="return false;">
356
  <span id="delete-platforms-status"></span>
 
357
  <div id="delete-platforms-result"></div>
358
  </td>
359
  </tr>
360
+
361
+ <tr valign="top">
362
+ <th scope="row">
363
+ <label for="delete-ip"><?php _e( 'Delete IP:', 'wp-statistics' ); ?></label>
364
+ </th>
365
+
366
+ <td>
367
+ <input dir="ltr" id="delete-ip" type="text" name="delete-ip"/>
368
+
369
+ <p class="description"><?php _e(
370
+ 'All visitor data will be lost for this IP.',
371
+ 'wp-statistics'
372
+ ); ?></p>
373
+ <input id="delete-ip-submit" class="button button-primary" type="submit"
374
+ value="<?php _e( 'Delete now!', 'wp-statistics' ); ?>" name="delete-ip-submit"
375
+ Onclick="return false;">
376
+ <span id="delete-ip-status"></span>
377
+ <div id="delete-ip-result"></div>
378
+ </td>
379
+ </tr>
380
  </tbody>
381
  </table>
382
  </div>
includes/optimization/tabs/wps-optimization-resources.php CHANGED
@@ -251,7 +251,7 @@ function formatSize( $size ) {
251
  } ?></strong>
252
 
253
  <p class="description"><?php _e(
254
- 'Is PHP Safe Mode active. The GeoIP code is not supported in Safe Mode.',
255
  'wp-statistics'
256
  ); ?></p>
257
  </td>
@@ -270,7 +270,7 @@ function formatSize( $size ) {
270
  } ?></strong>
271
 
272
  <p class="description"><?php _e(
273
- 'Is PHP compiled with IPv6 support. You may see warning messages in your PHP log if it is not and you receive HTTP headers with IPv6 addresses in them.',
274
  'wp-statistics'
275
  ); ?></p>
276
  </td>
@@ -304,7 +304,7 @@ function formatSize( $size ) {
304
  } ?></strong>
305
 
306
  <p class="description"><?php _e(
307
- 'The PHP cURL Extension version you are running. cURL is required for the GeoIP code, if it is not installed GeoIP will be disabled.',
308
  'wp-statistics'
309
  ); ?></p>
310
  </td>
@@ -323,7 +323,7 @@ function formatSize( $size ) {
323
  } ?></strong>
324
 
325
  <p class="description"><?php _e(
326
- 'If the gzopen() function is installed. gzopen() is required for the GeoIP database to be downloaded successfully.',
327
  'wp-statistics'
328
  ); ?></p>
329
  </td>
@@ -426,7 +426,7 @@ function formatSize( $size ) {
426
 
427
  <tr valign="top">
428
  <th scope="row">
429
- <?php _e( 'browscap Cache File', 'wp-statistics' ); ?>:
430
  </th>
431
 
432
  <td>
@@ -435,7 +435,7 @@ function formatSize( $size ) {
435
  $browscap_filedate = @filemtime( $browscap_filename );
436
 
437
  if ( $browscap_filedate === false ) {
438
- _e( 'browscap cache file does not exist.', 'wp-statistics' );
439
  } else {
440
  echo formatSize( @filesize( $browscap_filename ) ) .
441
  __( ', created on ', 'wp-statistics' ) .
@@ -446,7 +446,7 @@ function formatSize( $size ) {
446
  } ?></strong>
447
 
448
  <p class="description"><?php _e(
449
- 'The file size and date of the browscap cache file.',
450
  'wp-statistics'
451
  ); ?></p>
452
  </td>
251
  } ?></strong>
252
 
253
  <p class="description"><?php _e(
254
+ 'Is PHP Safe Mode active. The GeoIP code is not supported in Safe Mode.',
255
  'wp-statistics'
256
  ); ?></p>
257
  </td>
270
  } ?></strong>
271
 
272
  <p class="description"><?php _e(
273
+ 'Is PHP compiled with IPv6 support. You may see warning messages in your PHP log if it is not and you receive HTTP headers with IPv6 addresses in them.',
274
  'wp-statistics'
275
  ); ?></p>
276
  </td>
304
  } ?></strong>
305
 
306
  <p class="description"><?php _e(
307
+ 'The PHP cURL Extension version you are running. cURL is required for the GeoIP code, if it is not installed GeoIP will be disabled.',
308
  'wp-statistics'
309
  ); ?></p>
310
  </td>
323
  } ?></strong>
324
 
325
  <p class="description"><?php _e(
326
+ 'If the gzopen() function is installed. The gzopen() function is required for the GeoIP database to be downloaded successfully.',
327
  'wp-statistics'
328
  ); ?></p>
329
  </td>
426
 
427
  <tr valign="top">
428
  <th scope="row">
429
+ <?php _e( 'Browscap Cache File', 'wp-statistics' ); ?>:
430
  </th>
431
 
432
  <td>
435
  $browscap_filedate = @filemtime( $browscap_filename );
436
 
437
  if ( $browscap_filedate === false ) {
438
+ _e( 'Browscap cache file does not exist.', 'wp-statistics' );
439
  } else {
440
  echo formatSize( @filesize( $browscap_filename ) ) .
441
  __( ', created on ', 'wp-statistics' ) .
446
  } ?></strong>
447
 
448
  <p class="description"><?php _e(
449
+ 'The file size and date of the Browscap cache file.',
450
  'wp-statistics'
451
  ); ?></p>
452
  </td>
includes/optimization/tabs/wps-optimization-updates.php CHANGED
@@ -18,7 +18,7 @@
18
 
19
  <tr valign="top">
20
  <th scope="row">
21
- <label for="populate-submit"><?php _e( 'Countries', 'wp-statistics' ); ?>:</label>
22
  </th>
23
 
24
  <td>
@@ -39,7 +39,7 @@
39
 
40
  <tr valign="top">
41
  <th scope="row">
42
- <label for="populate-submit"><?php _e( 'Hash IP Addresses', 'wp-statistics' ); ?>:</label>
43
  </th>
44
 
45
  <td>
18
 
19
  <tr valign="top">
20
  <th scope="row">
21
+ <label for="populate-submit"><?php _e( 'Countries:', 'wp-statistics' ); ?></label>
22
  </th>
23
 
24
  <td>
39
 
40
  <tr valign="top">
41
  <th scope="row">
42
+ <label for="populate-submit"><?php _e( 'Hash IP Addresses:', 'wp-statistics' ); ?></label>
43
  </th>
44
 
45
  <td>
includes/settings/tabs/wps-about.php CHANGED
@@ -94,7 +94,7 @@
94
  <tr valign="top">
95
  <td scope="row" colspan="2">
96
  <p><?php _e(
97
- "We're sorry you're having problem with WP Statistics and we're happy to help out. Here are a few things to do before contacting us:",
98
  'wp-statistics'
99
  ); ?></p>
100
 
94
  <tr valign="top">
95
  <td scope="row" colspan="2">
96
  <p><?php _e(
97
+ "We're sorry you're having problem with WP Statistics and we're happy to help out. Here are a few things to do before contacting us:",
98
  'wp-statistics'
99
  ); ?></p>
100
 
includes/settings/tabs/wps-access-level.php CHANGED
@@ -59,9 +59,9 @@ if ( $wps_nonce_valid ) {
59
  <tr valign="top">
60
  <th scope="row">
61
  <label for="wps_read_capability"><?php _e(
62
- 'Required user level to view WP Statistics',
63
  'wp-statistics'
64
- ) ?>:</label>
65
  </th>
66
  <td>
67
  <select dir="ltr" id="wps_read_capability" name="wps_read_capability"><?php echo $option_list; ?></select>
@@ -83,9 +83,9 @@ if ( $wps_nonce_valid ) {
83
  <tr valign="top">
84
  <th scope="row">
85
  <label for="wps_manage_capability"><?php _e(
86
- 'Required user level to manage WP Statistics',
87
  'wp-statistics'
88
- ) ?>:</label>
89
  </th>
90
  <td>
91
  <select dir="ltr" id="wps_manage_capability" name="wps_manage_capability"><?php echo $option_list; ?></select>
@@ -109,7 +109,7 @@ if ( $wps_nonce_valid ) {
109
  ); ?></p>
110
 
111
  <p class="description"><?php echo __(
112
- 'Each of the above casscades the rights upwards in the default WordPress configuration. So for example selecting publish_posts grants the right to Authors, Editors, Admins and Super Admins.',
113
  'wp-statistics'
114
  ); ?></p>
115
 
59
  <tr valign="top">
60
  <th scope="row">
61
  <label for="wps_read_capability"><?php _e(
62
+ 'Required user level to view WP Statistics:',
63
  'wp-statistics'
64
+ ) ?></label>
65
  </th>
66
  <td>
67
  <select dir="ltr" id="wps_read_capability" name="wps_read_capability"><?php echo $option_list; ?></select>
83
  <tr valign="top">
84
  <th scope="row">
85
  <label for="wps_manage_capability"><?php _e(
86
+ 'Required user level to manage WP Statistics:',
87
  'wp-statistics'
88
+ ) ?></label>
89
  </th>
90
  <td>
91
  <select dir="ltr" id="wps_manage_capability" name="wps_manage_capability"><?php echo $option_list; ?></select>
109
  ); ?></p>
110
 
111
  <p class="description"><?php echo __(
112
+ 'Each of the above cascades the rights upwards in the default WordPress configuration. So for example selecting publish_posts grants the right to Authors, Editors, Admins and Super Admins.',
113
  'wp-statistics'
114
  ); ?></p>
115
 
includes/settings/tabs/wps-exclusions.php CHANGED
@@ -26,7 +26,7 @@ if ( $wps_nonce_valid ) {
26
  ' [' .
27
  $WP_Statistics->Current_Date() .
28
  ']',
29
- 'post_content' => __( 'This is the honey pot for WP Statistics to use, do not delete.', 'wp-statistics' ),
30
  'post_status' => 'publish',
31
  'post_author' => 1,
32
  );
@@ -78,7 +78,7 @@ if ( $wps_nonce_valid ) {
78
  </tr>
79
 
80
  <tr valign="top">
81
- <th scope="row"><label for="wps-exclusions"><?php _e( 'Record exclusions', 'wp-statistics' ); ?></label>:
82
  </th>
83
  <td>
84
  <input id="wps-exclusions" type="checkbox" value="1"
@@ -88,8 +88,11 @@ if ( $wps_nonce_valid ) {
88
  'wp-statistics'
89
  ); ?></label>
90
 
91
- <p class="description"><?php _e(
92
- 'This will record all the excluded hits in a separate table with the reasons why it was excluded but no other information. This will generate a lot of data but is useful if you want to see the total number of hits your site gets, not just actual user visits.',
 
 
 
93
  'wp-statistics'
94
  ); ?></p>
95
  </td>
@@ -133,7 +136,7 @@ if ( $wps_nonce_valid ) {
133
  </tr>
134
 
135
  <tr valign="top">
136
- <th scope="row"><?php _e( 'Robot list', 'wp-statistics' ); ?>:</th>
137
  <td>
138
  <textarea name="wps_robotlist" class="code" dir="ltr" rows="10" cols="60" id="wps_robotlist"><?php
139
  $robotlist = $WP_Statistics->get_option( 'robotlist' );
@@ -150,7 +153,7 @@ if ( $wps_nonce_valid ) {
150
  echo htmlentities( $robotlist, ENT_QUOTES ); ?></textarea>
151
 
152
  <p class="description"><?php echo __(
153
- 'A list of words (one per line) to match against to detect robots. Entries must be at least 4 characters long or they will be ignored.',
154
  'wp-statistics'
155
  ); ?></p>
156
  <a onclick="var wps_robotlist = getElementById('wps_robotlist'); wps_robotlist.value = '<?php echo implode(
@@ -162,8 +165,7 @@ if ( $wps_nonce_valid ) {
162
 
163
  <tr valign="top">
164
  <th scope="row">
165
- <label for="force_robot_update"><?php _e( 'Force robot list update after upgrades', 'wp-statistics' ); ?>
166
- :</label>
167
  </th>
168
  <td>
169
  <input id="force_robot_update" type="checkbox" value="1"
@@ -175,7 +177,7 @@ if ( $wps_nonce_valid ) {
175
 
176
  <p class="description"><?php echo sprintf(
177
  __(
178
- 'Force the robot list to be reset to the default after an update to WP Statistics takes place. Note if this option is enabled any custom robots you have added to the list will be lost.',
179
  'wp-statistics'
180
  ),
181
  $role
@@ -184,22 +186,21 @@ if ( $wps_nonce_valid ) {
184
  </tr>
185
 
186
  <tr valign="top">
187
- <th scope="row"><label for="wps_robot_threshold"><?php _e( 'Robot visit threshold', 'wp-statistics' ); ?>
188
- :</label>
189
  </th>
190
  <td>
191
  <input id="wps_robot_threshold" type="text" size="5" name="wps_robot_threshold"
192
  value="<?php echo $WP_Statistics->get_option( 'robot_threshold' ); ?>">
193
 
194
  <p class="description"><?php echo __(
195
- 'Treat visitors with more than this number of visits per day as robots. 0 = disabled.',
196
  'wp-statistics'
197
  ); ?></p>
198
  </td>
199
  </tr>
200
 
201
  <tr valign="top">
202
- <th scope="row"><?php _e( 'Excluded IP address list', 'wp-statistics' ); ?>:</th>
203
  <td>
204
  <textarea id="wps_exclude_ip" name="wps_exclude_ip" rows="5" cols="60" class="code"
205
  dir="ltr"><?php echo htmlentities(
@@ -213,7 +214,7 @@ if ( $wps_nonce_valid ) {
213
  ); ?></p>
214
 
215
  <p class="description"><?php echo __(
216
- 'For IPv4 addresses, both 192.168.0.0/24 and 192.168.0.0/255.255.255.0 formats are accepted. To specify an IP address only, use a subnet value of 32 or 255.255.255.255.',
217
  'wp-statistics'
218
  ); ?></p>
219
 
@@ -233,7 +234,7 @@ if ( $wps_nonce_valid ) {
233
  </tr>
234
 
235
  <tr valign="top">
236
- <th scope="row"><?php _e( 'Use honey pot', 'wp-statistics' ); ?>:</th>
237
  <td>
238
  <input id="use_honeypot" type="checkbox" value="1"
239
  name="wps_use_honeypot" <?php echo $WP_Statistics->get_option( 'use_honeypot' ) == true
@@ -243,14 +244,14 @@ if ( $wps_nonce_valid ) {
243
  ); ?></label>
244
 
245
  <p class="description"><?php echo __(
246
- 'Use a honey pot page to identify robots.',
247
  'wp-statistics'
248
  ); ?></p>
249
  </td>
250
  </tr>
251
 
252
  <tr valign="top">
253
- <th scope="row"><label for="honeypot_postid"><?php _e( 'Honey pot post id', 'wp-statistics' ); ?>:</label>
254
  </th>
255
  <td>
256
  <input id="honeypot_postid" type="text"
@@ -258,18 +259,17 @@ if ( $wps_nonce_valid ) {
258
  size="5" name="wps_honeypot_postid">
259
 
260
  <p class="description"><?php echo __(
261
- 'The post id to use for the honeypot page.',
262
  'wp-statistics'
263
  ); ?></p>
264
  <input id="wps_create_honeypot" type="checkbox" value="1" name="wps_create_honeypot"><label
265
- for="wps_create_honeypot"><?php _e( 'Create a new honey pot page', 'wp-statistics' ); ?></label>
266
  </td>
267
  </tr>
268
 
269
  <tr valign="top">
270
  <th scope="row">
271
- <label for="corrupt_browser_info"><?php _e( 'Treat corrupt browser info as a bot', 'wp-statistics' ); ?>
272
- :</label>
273
  </th>
274
  <td>
275
  <input id="corrupt_browser_info" type="checkbox" value="1"
@@ -289,7 +289,7 @@ if ( $wps_nonce_valid ) {
289
  </tr>
290
 
291
  <tr valign="top">
292
- <th scope="row"><?php _e( 'Excluded countries list', 'wp-statistics' ); ?>:</th>
293
  <td>
294
  <textarea id="wps_excluded_countries" name="wps_excluded_countries" rows="5" cols="10" class="code"
295
  dir="ltr"><?php echo htmlentities(
@@ -298,14 +298,17 @@ if ( $wps_nonce_valid ) {
298
  ); ?></textarea>
299
 
300
  <p class="description"><?php echo __(
301
- 'A list of country codes (one per line, two letters each) to exclude from statistics collection. Use "000" (three zeros) to exclude unknown countries.',
 
 
 
302
  'wp-statistics'
303
  ); ?></p>
304
  </td>
305
  </tr>
306
 
307
  <tr valign="top">
308
- <th scope="row"><?php _e( 'Included countries list', 'wp-statistics' ); ?>:</th>
309
  <td>
310
  <textarea id="wps_included_countries" name="wps_included_countries" rows="5" cols="10" class="code"
311
  dir="ltr"><?php echo htmlentities(
@@ -314,7 +317,10 @@ if ( $wps_nonce_valid ) {
314
  ); ?></textarea>
315
 
316
  <p class="description"><?php echo __(
317
- 'A list of country codes (one per line, two letters each) to include in statistics collection, if this list is not empty, only visitors from the included countries will be recorded. Use "000" (three zeros) to exclude unknown countries.',
 
 
 
318
  'wp-statistics'
319
  ); ?></p>
320
  </td>
@@ -325,7 +331,7 @@ if ( $wps_nonce_valid ) {
325
  </tr>
326
 
327
  <tr valign="top">
328
- <th scope="row"><?php _e( 'Excluded hosts list', 'wp-statistics' ); ?>:</th>
329
  <td>
330
  <textarea id="wps_excluded_hosts" name="wps_excluded_hosts" rows="5" cols="80" class="code"
331
  dir="ltr"><?php echo htmlentities(
@@ -340,7 +346,7 @@ if ( $wps_nonce_valid ) {
340
  <br>
341
 
342
  <p class="description"><?php echo __(
343
- 'Note: this option will NOT perform a reverse DNS lookup on each page load but instead cache the IP address for the provided hostnames for one hour. If you are excluding dynamically assigned hosts you may find some degree of overlap when the host changes it\'s IP address and when the cache is updated resulting in some hits recorded.',
344
  'wp-statistics'
345
  ); ?></p>
346
  </td>
@@ -351,7 +357,7 @@ if ( $wps_nonce_valid ) {
351
  </tr>
352
 
353
  <tr valign="top">
354
- <th scope="row"><?php _e( 'Excluded login page', 'wp-statistics' ); ?>:</th>
355
  <td>
356
  <input id="wps-exclude-loginpage" type="checkbox" value="1"
357
  name="wps_exclude_loginpage" <?php echo $WP_Statistics->get_option( 'exclude_loginpage' ) == true
@@ -367,7 +373,7 @@ if ( $wps_nonce_valid ) {
367
  </td>
368
  </tr>
369
  <tr valign="top">
370
- <th scope="row"><?php _e( 'Excluded RSS feeds', 'wp-statistics' ); ?>:</th>
371
  <td>
372
  <input id="wps-exclude-feeds" type="checkbox" value="1"
373
  name="wps_exclude_feeds" <?php echo $WP_Statistics->get_option( 'exclude_feeds' ) == true
@@ -383,7 +389,7 @@ if ( $wps_nonce_valid ) {
383
  </td>
384
  </tr>
385
  <tr valign="top">
386
- <th scope="row"><?php _e( 'Excluded 404 pages', 'wp-statistics' ); ?>:</th>
387
  <td>
388
  <input id="wps-exclude-404s" type="checkbox" value="1"
389
  name="wps_exclude_404s" <?php echo $WP_Statistics->get_option( 'exclude_404s' ) == true
@@ -399,7 +405,7 @@ if ( $wps_nonce_valid ) {
399
  </td>
400
  </tr>
401
  <tr valign="top">
402
- <th scope="row"><?php _e( 'Excluded AJAX calls', 'wp-statistics' ); ?>:</th>
403
  <td>
404
  <input id="wps-exclude-ajax" type="checkbox" value="1"
405
  name="wps_exclude_ajax" <?php echo $WP_Statistics->get_option( 'exclude_ajax' ) == true
@@ -415,7 +421,7 @@ if ( $wps_nonce_valid ) {
415
  </td>
416
  </tr>
417
  <tr valign="top">
418
- <th scope="row"><?php _e( 'Excluded URLs list', 'wp-statistics' ); ?>:</th>
419
  <td>
420
  <textarea id="wps_excluded_urls" name="wps_excluded_urls" rows="5" cols="80" class="code"
421
  dir="ltr"><?php echo htmlentities(
@@ -430,7 +436,7 @@ if ( $wps_nonce_valid ) {
430
  <br>
431
 
432
  <p class="description"><?php echo __(
433
- 'Note: this option will NOT handle url parameters (anything after the ?), only to the script name. Entries less than two characters will be ignored.',
434
  'wp-statistics'
435
  ); ?></p>
436
  </td>
26
  ' [' .
27
  $WP_Statistics->Current_Date() .
28
  ']',
29
+ 'post_content' => __( 'This is the Honey Pot for WP Statistics to use, do not delete.', 'wp-statistics' ),
30
  'post_status' => 'publish',
31
  'post_author' => 1,
32
  );
78
  </tr>
79
 
80
  <tr valign="top">
81
+ <th scope="row"><label for="wps-exclusions"><?php _e( 'Record exclusions:', 'wp-statistics' ); ?></label>
82
  </th>
83
  <td>
84
  <input id="wps-exclusions" type="checkbox" value="1"
88
  'wp-statistics'
89
  ); ?></label>
90
 
91
+ <p class="description"><?php echo __(
92
+ 'This will record all the excluded hits in a separate table with the reasons why it was excluded but no other information.',
93
+ 'wp-statistics'
94
+ ) . ' ' . __(
95
+ 'This will generate a lot of data but is useful if you want to see the total number of hits your site gets, not just actual user visits.',
96
  'wp-statistics'
97
  ); ?></p>
98
  </td>
136
  </tr>
137
 
138
  <tr valign="top">
139
+ <th scope="row"><?php _e( 'Robot list:', 'wp-statistics' ); ?></th>
140
  <td>
141
  <textarea name="wps_robotlist" class="code" dir="ltr" rows="10" cols="60" id="wps_robotlist"><?php
142
  $robotlist = $WP_Statistics->get_option( 'robotlist' );
153
  echo htmlentities( $robotlist, ENT_QUOTES ); ?></textarea>
154
 
155
  <p class="description"><?php echo __(
156
+ 'A list of words (one per line) to match against to detect robots. Entries must be at least 4 characters long or they will be ignored.',
157
  'wp-statistics'
158
  ); ?></p>
159
  <a onclick="var wps_robotlist = getElementById('wps_robotlist'); wps_robotlist.value = '<?php echo implode(
165
 
166
  <tr valign="top">
167
  <th scope="row">
168
+ <label for="force_robot_update"><?php _e( 'Force robot list update after upgrades:', 'wp-statistics' ); ?></label>
 
169
  </th>
170
  <td>
171
  <input id="force_robot_update" type="checkbox" value="1"
177
 
178
  <p class="description"><?php echo sprintf(
179
  __(
180
+ 'Force the robot list to be reset to the default after an update to WP Statistics takes place. Note if this option is enabled any custom robots you have added to the list will be lost.',
181
  'wp-statistics'
182
  ),
183
  $role
186
  </tr>
187
 
188
  <tr valign="top">
189
+ <th scope="row"><label for="wps_robot_threshold"><?php _e( 'Robot visit threshold:', 'wp-statistics' ); ?></label>
 
190
  </th>
191
  <td>
192
  <input id="wps_robot_threshold" type="text" size="5" name="wps_robot_threshold"
193
  value="<?php echo $WP_Statistics->get_option( 'robot_threshold' ); ?>">
194
 
195
  <p class="description"><?php echo __(
196
+ 'Treat visitors with more than this number of visits per day as robots. 0 = disabled.',
197
  'wp-statistics'
198
  ); ?></p>
199
  </td>
200
  </tr>
201
 
202
  <tr valign="top">
203
+ <th scope="row"><?php _e( 'Excluded IP address list:', 'wp-statistics' ); ?></th>
204
  <td>
205
  <textarea id="wps_exclude_ip" name="wps_exclude_ip" rows="5" cols="60" class="code"
206
  dir="ltr"><?php echo htmlentities(
214
  ); ?></p>
215
 
216
  <p class="description"><?php echo __(
217
+ 'For IPv4 addresses, both 192.168.0.0/24 and 192.168.0.0/255.255.255.0 formats are accepted. To specify an IP address only, use a subnet value of 32 or 255.255.255.255.',
218
  'wp-statistics'
219
  ); ?></p>
220
 
234
  </tr>
235
 
236
  <tr valign="top">
237
+ <th scope="row"><?php _e( 'Use Honey Pot:', 'wp-statistics' ); ?></th>
238
  <td>
239
  <input id="use_honeypot" type="checkbox" value="1"
240
  name="wps_use_honeypot" <?php echo $WP_Statistics->get_option( 'use_honeypot' ) == true
244
  ); ?></label>
245
 
246
  <p class="description"><?php echo __(
247
+ 'Use a Honey Pot page to identify robots.',
248
  'wp-statistics'
249
  ); ?></p>
250
  </td>
251
  </tr>
252
 
253
  <tr valign="top">
254
+ <th scope="row"><label for="honeypot_postid"><?php _e( 'Honey Pot post ID', 'wp-statistics' ); ?></label>
255
  </th>
256
  <td>
257
  <input id="honeypot_postid" type="text"
259
  size="5" name="wps_honeypot_postid">
260
 
261
  <p class="description"><?php echo __(
262
+ 'The post ID to use for the Honey Pot page.',
263
  'wp-statistics'
264
  ); ?></p>
265
  <input id="wps_create_honeypot" type="checkbox" value="1" name="wps_create_honeypot"><label
266
+ for="wps_create_honeypot"><?php _e( 'Create a new Honey Pot page', 'wp-statistics' ); ?></label>
267
  </td>
268
  </tr>
269
 
270
  <tr valign="top">
271
  <th scope="row">
272
+ <label for="corrupt_browser_info"><?php _e( 'Treat corrupt browser info as a bot:', 'wp-statistics' ); ?></label>
 
273
  </th>
274
  <td>
275
  <input id="corrupt_browser_info" type="checkbox" value="1"
289
  </tr>
290
 
291
  <tr valign="top">
292
+ <th scope="row"><?php _e( 'Excluded countries list:', 'wp-statistics' ); ?></th>
293
  <td>
294
  <textarea id="wps_excluded_countries" name="wps_excluded_countries" rows="5" cols="10" class="code"
295
  dir="ltr"><?php echo htmlentities(
298
  ); ?></textarea>
299
 
300
  <p class="description"><?php echo __(
301
+ 'A list of country codes (one per line, two letters each) to exclude from statistics collection.',
302
+ 'wp-statistics'
303
+ ) . ' ' . __(
304
+ 'Use "000" (three zeros) to exclude unknown countries.',
305
  'wp-statistics'
306
  ); ?></p>
307
  </td>
308
  </tr>
309
 
310
  <tr valign="top">
311
+ <th scope="row"><?php _e( 'Included countries list:', 'wp-statistics' ); ?></th>
312
  <td>
313
  <textarea id="wps_included_countries" name="wps_included_countries" rows="5" cols="10" class="code"
314
  dir="ltr"><?php echo htmlentities(
317
  ); ?></textarea>
318
 
319
  <p class="description"><?php echo __(
320
+ 'A list of country codes (one per line, two letters each) to include in statistics collection, if this list is not empty, only visitors from the included countries will be recorded.',
321
+ 'wp-statistics'
322
+ ) . ' ' . __(
323
+ 'Use "000" (three zeros) to exclude unknown countries.',
324
  'wp-statistics'
325
  ); ?></p>
326
  </td>
331
  </tr>
332
 
333
  <tr valign="top">
334
+ <th scope="row"><?php _e( 'Excluded hosts list:', 'wp-statistics' ); ?></th>
335
  <td>
336
  <textarea id="wps_excluded_hosts" name="wps_excluded_hosts" rows="5" cols="80" class="code"
337
  dir="ltr"><?php echo htmlentities(
346
  <br>
347
 
348
  <p class="description"><?php echo __(
349
+ 'Note: this option will NOT perform a reverse DNS lookup on each page load but instead cache the IP address for the provided hostnames for one hour. If you are excluding dynamically assigned hosts you may find some degree of overlap when the host changes it\'s IP address and when the cache is updated resulting in some hits recorded.',
350
  'wp-statistics'
351
  ); ?></p>
352
  </td>
357
  </tr>
358
 
359
  <tr valign="top">
360
+ <th scope="row"><?php _e( 'Excluded login page:', 'wp-statistics' ); ?></th>
361
  <td>
362
  <input id="wps-exclude-loginpage" type="checkbox" value="1"
363
  name="wps_exclude_loginpage" <?php echo $WP_Statistics->get_option( 'exclude_loginpage' ) == true
373
  </td>
374
  </tr>
375
  <tr valign="top">
376
+ <th scope="row"><?php _e( 'Excluded RSS feeds:', 'wp-statistics' ); ?></th>
377
  <td>
378
  <input id="wps-exclude-feeds" type="checkbox" value="1"
379
  name="wps_exclude_feeds" <?php echo $WP_Statistics->get_option( 'exclude_feeds' ) == true
389
  </td>
390
  </tr>
391
  <tr valign="top">
392
+ <th scope="row"><?php _e( 'Excluded 404 pages:', 'wp-statistics' ); ?></th>
393
  <td>
394
  <input id="wps-exclude-404s" type="checkbox" value="1"
395
  name="wps_exclude_404s" <?php echo $WP_Statistics->get_option( 'exclude_404s' ) == true
405
  </td>
406
  </tr>
407
  <tr valign="top">
408
+ <th scope="row"><?php _e( 'Excluded AJAX calls:', 'wp-statistics' ); ?></th>
409
  <td>
410
  <input id="wps-exclude-ajax" type="checkbox" value="1"
411
  name="wps_exclude_ajax" <?php echo $WP_Statistics->get_option( 'exclude_ajax' ) == true
421
  </td>
422
  </tr>
423
  <tr valign="top">
424
+ <th scope="row"><?php _e( 'Excluded URLs list:', 'wp-statistics' ); ?></th>
425
  <td>
426
  <textarea id="wps_excluded_urls" name="wps_excluded_urls" rows="5" cols="80" class="code"
427
  dir="ltr"><?php echo htmlentities(
436
  <br>
437
 
438
  <p class="description"><?php echo __(
439
+ 'Note: this option will NOT handle URL parameters (anything after the ?), only to the script name. Entries less than two characters will be ignored.',
440
  'wp-statistics'
441
  ); ?></p>
442
  </td>
includes/settings/tabs/wps-externals.php CHANGED
@@ -63,7 +63,7 @@ if ( $wps_nonce_valid ) {
63
  ?>
64
  <tr valign="top">
65
  <th scope="row">
66
- <label for="geoip-enable"><?php _e( 'GeoIP collection', 'wp-statistics' ); ?>:</label>
67
  </th>
68
 
69
  <td>
@@ -81,7 +81,7 @@ if ( $wps_nonce_valid ) {
81
 
82
  <tr valign="top">
83
  <th scope="row">
84
- <label for="geoip-update"><?php _e( 'Update GeoIP Info', 'wp-statistics' ); ?>:</label>
85
  </th>
86
 
87
  <td>
@@ -99,8 +99,7 @@ if ( $wps_nonce_valid ) {
99
 
100
  <tr valign="top">
101
  <th scope="row">
102
- <label for="geoip-schedule"><?php _e( 'Schedule monthly update of GeoIP DB', 'wp-statistics' ); ?>
103
- :</label>
104
  </th>
105
 
106
  <td>
@@ -151,10 +150,9 @@ if ( $wps_nonce_valid ) {
151
  <tr valign="top">
152
  <th scope="row">
153
  <label for="geoip-schedule"><?php _e(
154
- 'Populate missing GeoIP after update of GeoIP DB',
155
  'wp-statistics'
156
- ); ?>
157
- :</label>
158
  </th>
159
 
160
  <td>
@@ -172,8 +170,7 @@ if ( $wps_nonce_valid ) {
172
 
173
  <tr valign="top">
174
  <th scope="row">
175
- <label for="geoip-schedule"><?php _e( 'Country code for private IP addresses', 'wp-statistics' ); ?>
176
- :</label>
177
  </th>
178
 
179
  <td>
@@ -183,8 +180,11 @@ if ( $wps_nonce_valid ) {
183
  ENT_QUOTES
184
  ); ?>">
185
 
186
- <p class="description"><?php _e(
187
- 'The international standard two letter country code (ie. US = United States, CA = Canada, etc.) for private (non-routable) IP addresses (ie. 10.0.0.1, 192.158.1.1, 127.0.0.1, etc.). Use "000" (three zeros) to use "Unknown" as the country code.',
 
 
 
188
  'wp-statistics'
189
  ); ?></p>
190
  </td>
@@ -218,7 +218,7 @@ if ( $wps_nonce_valid ) {
218
  if ( ini_get( 'safe_mode' ) ) {
219
  echo '<br>&nbsp;&nbsp;&nbsp;&nbsp;* ';
220
  _e(
221
- 'PHP safe mode detected! GeoIP collection is not supported with PHP\'s safe mode enabled!',
222
  'wp-statistics'
223
  );
224
  echo '<br>';
@@ -235,7 +235,7 @@ if ( $wps_nonce_valid ) {
235
 
236
  <tr valign="top">
237
  <th scope="row">
238
- <label for="browscap-enable"><?php _e( 'browscap usage', 'wp-statistics' ); ?>:</label>
239
  </th>
240
 
241
  <td>
@@ -245,7 +245,7 @@ if ( $wps_nonce_valid ) {
245
  <label for="browscap-enable"><?php _e( 'Enable', 'wp-statistics' ); ?></label>
246
 
247
  <p class="description"><?php _e(
248
- 'The browscap database will be downloaded and used to detect robots.',
249
  'wp-statistics'
250
  ); ?></p>
251
  </td>
@@ -253,14 +253,14 @@ if ( $wps_nonce_valid ) {
253
 
254
  <tr valign="top">
255
  <th scope="row">
256
- <label for="browscap-update"><?php _e( 'Update browscap Info', 'wp-statistics' ); ?>:</label>
257
  </th>
258
 
259
  <td>
260
  <input id="browscap-update" type="checkbox"
261
  name="wps_update_browscap" <?php echo $WP_Statistics->get_option( 'update_browscap' ) == true
262
  ? "checked='checked'" : ''; ?>>
263
- <label for="browscap-update"><?php _e( 'Download browscap Database', 'wp-statistics' ); ?></label>
264
 
265
  <p class="description"><?php _e(
266
  'Save changes on this page to download the update.',
@@ -271,8 +271,7 @@ if ( $wps_nonce_valid ) {
271
 
272
  <tr valign="top">
273
  <th scope="row">
274
- <label for="browscap-schedule"><?php _e( 'Schedule weekly update of browscap DB', 'wp-statistics' ); ?>
275
- :</label>
276
  </th>
277
 
278
  <td>
@@ -305,7 +304,7 @@ if ( $wps_nonce_valid ) {
305
  }
306
  ?>
307
  <p class="description"><?php _e(
308
- 'Download of the browscap database will be scheduled for once a week.',
309
  'wp-statistics'
310
  ); ?></p>
311
  </td>
@@ -328,8 +327,7 @@ if ( $wps_nonce_valid ) {
328
 
329
  <tr valign="top">
330
  <th scope="row">
331
- <label for="referrerspam-enable"><?php _e( 'Piwik Referrer Spam Blacklist usage', 'wp-statistics' ); ?>
332
- :</label>
333
  </th>
334
 
335
  <td>
@@ -347,8 +345,7 @@ if ( $wps_nonce_valid ) {
347
 
348
  <tr valign="top">
349
  <th scope="row">
350
- <label for="geoip-update"><?php _e( 'Update Piwik Referrer Spam Blacklist Info', 'wp-statistics' ); ?>
351
- :</label>
352
  </th>
353
 
354
  <td>
@@ -370,10 +367,9 @@ if ( $wps_nonce_valid ) {
370
  <tr valign="top">
371
  <th scope="row">
372
  <label for="referrerspam-schedule"><?php _e(
373
- 'Schedule weekly update of Piwik Referrer Spam Blacklist DB',
374
  'wp-statistics'
375
- ); ?>
376
- :</label>
377
  </th>
378
 
379
  <td>
63
  ?>
64
  <tr valign="top">
65
  <th scope="row">
66
+ <label for="geoip-enable"><?php _e( 'GeoIP collection:', 'wp-statistics' ); ?></label>
67
  </th>
68
 
69
  <td>
81
 
82
  <tr valign="top">
83
  <th scope="row">
84
+ <label for="geoip-update"><?php _e( 'Update GeoIP Info:', 'wp-statistics' ); ?></label>
85
  </th>
86
 
87
  <td>
99
 
100
  <tr valign="top">
101
  <th scope="row">
102
+ <label for="geoip-schedule"><?php _e( 'Schedule monthly update of GeoIP DB:', 'wp-statistics' ); ?></label>
 
103
  </th>
104
 
105
  <td>
150
  <tr valign="top">
151
  <th scope="row">
152
  <label for="geoip-schedule"><?php _e(
153
+ 'Populate missing GeoIP after update of GeoIP DB:',
154
  'wp-statistics'
155
+ ); ?></label>
 
156
  </th>
157
 
158
  <td>
170
 
171
  <tr valign="top">
172
  <th scope="row">
173
+ <label for="geoip-schedule"><?php _e( 'Country code for private IP addresses:', 'wp-statistics' ); ?></label>
 
174
  </th>
175
 
176
  <td>
180
  ENT_QUOTES
181
  ); ?>">
182
 
183
+ <p class="description"><?php echo __(
184
+ 'The international standard two letter country code (ie. US = United States, CA = Canada, etc.) for private (non-routable) IP addresses (ie. 10.0.0.1, 192.158.1.1, 127.0.0.1, etc.).',
185
+ 'wp-statistics'
186
+ ) . ' ' . __(
187
+ 'Use "000" (three zeros) to use "Unknown" as the country code.',
188
  'wp-statistics'
189
  ); ?></p>
190
  </td>
218
  if ( ini_get( 'safe_mode' ) ) {
219
  echo '<br>&nbsp;&nbsp;&nbsp;&nbsp;* ';
220
  _e(
221
+ 'PHP safe mode detected! GeoIP collection is not supported with PHP\'s safe mode enabled!',
222
  'wp-statistics'
223
  );
224
  echo '<br>';
235
 
236
  <tr valign="top">
237
  <th scope="row">
238
+ <label for="browscap-enable"><?php _e( 'Browscap usage:', 'wp-statistics' ); ?></label>
239
  </th>
240
 
241
  <td>
245
  <label for="browscap-enable"><?php _e( 'Enable', 'wp-statistics' ); ?></label>
246
 
247
  <p class="description"><?php _e(
248
+ 'The Browscap database will be downloaded and used to detect robots.',
249
  'wp-statistics'
250
  ); ?></p>
251
  </td>
253
 
254
  <tr valign="top">
255
  <th scope="row">
256
+ <label for="browscap-update"><?php _e( 'Update Browscap Info:', 'wp-statistics' ); ?></label>
257
  </th>
258
 
259
  <td>
260
  <input id="browscap-update" type="checkbox"
261
  name="wps_update_browscap" <?php echo $WP_Statistics->get_option( 'update_browscap' ) == true
262
  ? "checked='checked'" : ''; ?>>
263
+ <label for="browscap-update"><?php _e( 'Download Browscap Database', 'wp-statistics' ); ?></label>
264
 
265
  <p class="description"><?php _e(
266
  'Save changes on this page to download the update.',
271
 
272
  <tr valign="top">
273
  <th scope="row">
274
+ <label for="browscap-schedule"><?php _e( 'Schedule weekly update of browscap DB:', 'wp-statistics' ); ?></label>
 
275
  </th>
276
 
277
  <td>
304
  }
305
  ?>
306
  <p class="description"><?php _e(
307
+ 'Download of the Browscap database will be scheduled for once a week.',
308
  'wp-statistics'
309
  ); ?></p>
310
  </td>
327
 
328
  <tr valign="top">
329
  <th scope="row">
330
+ <label for="referrerspam-enable"><?php _e( 'Piwik Referrer Spam Blacklist usage:', 'wp-statistics' ); ?></label>
 
331
  </th>
332
 
333
  <td>
345
 
346
  <tr valign="top">
347
  <th scope="row">
348
+ <label for="geoip-update"><?php _e( 'Update Piwik Referrer Spam Blacklist Info:', 'wp-statistics' ); ?></label>
 
349
  </th>
350
 
351
  <td>
367
  <tr valign="top">
368
  <th scope="row">
369
  <label for="referrerspam-schedule"><?php _e(
370
+ 'Schedule weekly update of Piwik Referrer Spam Blacklist DB:',
371
  'wp-statistics'
372
+ ); ?></label>
 
373
  </th>
374
 
375
  <td>
includes/settings/tabs/wps-general.php CHANGED
@@ -69,7 +69,7 @@ if ( $wps_nonce_valid ) {
69
 
70
  <tr valign="top">
71
  <th scope="row">
72
- <label for="useronline"><?php _e( 'Online User', 'wp-statistics' ); ?>:</label>
73
  </th>
74
 
75
  <td>
@@ -84,7 +84,7 @@ if ( $wps_nonce_valid ) {
84
 
85
  <tr valign="top">
86
  <th scope="row">
87
- <label for="check_online"><?php _e( 'Check for online users every', 'wp-statistics' ); ?>:</label>
88
  </th>
89
 
90
  <td>
@@ -100,7 +100,7 @@ if ( $wps_nonce_valid ) {
100
 
101
  <tr valign="top">
102
  <th scope="row">
103
- <label for="allonline"><?php _e( 'Record all user', 'wp-statistics' ); ?>:</label>
104
  </th>
105
 
106
  <td>
@@ -110,7 +110,7 @@ if ( $wps_nonce_valid ) {
110
  <label for="allonline"><?php _e( 'Enable', 'wp-statistics' ); ?></label>
111
 
112
  <p class="description"><?php _e(
113
- 'Ignores the exclusion settings and records all users that are online (including self referrals and robots). Should only be used for troubleshooting.',
114
  'wp-statistics'
115
  ); ?></p>
116
  </td>
@@ -122,7 +122,7 @@ if ( $wps_nonce_valid ) {
122
 
123
  <tr valign="top">
124
  <th scope="row">
125
- <label for="visits"><?php _e( 'Visits', 'wp-statistics' ); ?>:</label>
126
  </th>
127
 
128
  <td>
@@ -141,7 +141,7 @@ if ( $wps_nonce_valid ) {
141
 
142
  <tr valign="top">
143
  <th scope="row">
144
- <label for="visitors"><?php _e( 'Visitors', 'wp-statistics' ); ?>:</label>
145
  </th>
146
 
147
  <td>
@@ -156,7 +156,7 @@ if ( $wps_nonce_valid ) {
156
 
157
  <tr valign="top">
158
  <th scope="row">
159
- <label for="coefficient"><?php _e( 'Coefficient per visitor', 'wp-statistics' ); ?>:</label>
160
  </th>
161
 
162
  <td>
@@ -176,7 +176,7 @@ if ( $wps_nonce_valid ) {
176
 
177
  <tr valign="top">
178
  <th scope="row">
179
- <label for="pages"><?php _e( 'Pages', 'wp-statistics' ); ?>:</label>
180
  </th>
181
 
182
  <td>
@@ -191,7 +191,7 @@ if ( $wps_nonce_valid ) {
191
 
192
  <tr valign="top">
193
  <th scope="row">
194
- <label for="all_pages"><?php _e( 'Track all pages', 'wp-statistics' ); ?>:</label>
195
  </th>
196
 
197
  <td>
@@ -209,8 +209,7 @@ if ( $wps_nonce_valid ) {
209
  ?>
210
  <tr valign="top">
211
  <th scope="row">
212
- <label for="strip_uri_parameters"><?php _e( 'Strip parameters from URI', 'wp-statistics' ); ?>
213
- :</label>
214
  </th>
215
 
216
  <td>
@@ -231,8 +230,7 @@ if ( $wps_nonce_valid ) {
231
  ?>
232
  <tr valign="top">
233
  <th scope="row">
234
- <label for="disable_column"><?php _e( 'Disable hits column in post/pages list', 'wp-statistics' ); ?>
235
- :</label>
236
  </th>
237
 
238
  <td>
@@ -247,7 +245,7 @@ if ( $wps_nonce_valid ) {
247
 
248
  <tr valign="top">
249
  <th scope="row">
250
- <label for="show_hits"><?php _e( 'Show hits in posts/pages in the site', 'wp-statistics' ); ?>:</label>
251
  </th>
252
 
253
  <td>
@@ -267,7 +265,7 @@ if ( $wps_nonce_valid ) {
267
  } ?>
268
  <tr valign="top"<?php echo $hidden; ?> id='wps_show_hits_option'>
269
  <td scope="row" style="vertical-align: top;">
270
- <label for="display_hits_position"><?php _e( 'Display position', 'wp-statistics' ); ?>:</label>
271
  </td>
272
 
273
  <td>
@@ -300,7 +298,7 @@ if ( $wps_nonce_valid ) {
300
 
301
  <tr valign="top">
302
  <th scope="row">
303
- <label for="menu-bar"><?php _e( 'Show stats in menu bar', 'wp-statistics' ); ?>:</label>
304
  </th>
305
 
306
  <td>
@@ -321,8 +319,7 @@ if ( $wps_nonce_valid ) {
321
 
322
  <tr valign="top">
323
  <th scope="row">
324
- <label for="hide_notices"><?php _e( 'Hide admin notices about non active features', 'wp-statistics' ); ?>
325
- :</label>
326
  </th>
327
 
328
  <td>
@@ -344,8 +341,7 @@ if ( $wps_nonce_valid ) {
344
 
345
  <tr valign="top">
346
  <th scope="row">
347
- <label for="addsearchwords"><?php _e( 'Add page title to empty search words', 'wp-statistics' ); ?>
348
- :</label>
349
  </th>
350
 
351
  <td>
@@ -404,7 +400,7 @@ if ( $wps_nonce_valid ) {
404
 
405
  <tr valign="top">
406
  <th scope="row">
407
- <label for="chart-totals"><?php _e( 'Include totals', 'wp-statistics' ); ?>:</label>
408
  </th>
409
 
410
  <td>
69
 
70
  <tr valign="top">
71
  <th scope="row">
72
+ <label for="useronline"><?php _e( 'Online User:', 'wp-statistics' ); ?></label>
73
  </th>
74
 
75
  <td>
84
 
85
  <tr valign="top">
86
  <th scope="row">
87
+ <label for="check_online"><?php _e( 'Check for online users every:', 'wp-statistics' ); ?></label>
88
  </th>
89
 
90
  <td>
100
 
101
  <tr valign="top">
102
  <th scope="row">
103
+ <label for="allonline"><?php _e( 'Record all user:', 'wp-statistics' ); ?></label>
104
  </th>
105
 
106
  <td>
110
  <label for="allonline"><?php _e( 'Enable', 'wp-statistics' ); ?></label>
111
 
112
  <p class="description"><?php _e(
113
+ 'Ignores the exclusion settings and records all users that are online (including self referrals and robots). Should only be used for troubleshooting.',
114
  'wp-statistics'
115
  ); ?></p>
116
  </td>
122
 
123
  <tr valign="top">
124
  <th scope="row">
125
+ <label for="visits"><?php _e( 'Visits:', 'wp-statistics' ); ?></label>
126
  </th>
127
 
128
  <td>
141
 
142
  <tr valign="top">
143
  <th scope="row">
144
+ <label for="visitors"><?php _e( 'Visitors:', 'wp-statistics' ); ?></label>
145
  </th>
146
 
147
  <td>
156
 
157
  <tr valign="top">
158
  <th scope="row">
159
+ <label for="coefficient"><?php _e( 'Coefficient per visitor:', 'wp-statistics' ); ?></label>
160
  </th>
161
 
162
  <td>
176
 
177
  <tr valign="top">
178
  <th scope="row">
179
+ <label for="pages"><?php _e( 'Pages:', 'wp-statistics' ); ?></label>
180
  </th>
181
 
182
  <td>
191
 
192
  <tr valign="top">
193
  <th scope="row">
194
+ <label for="all_pages"><?php _e( 'Track all pages:', 'wp-statistics' ); ?></label>
195
  </th>
196
 
197
  <td>
209
  ?>
210
  <tr valign="top">
211
  <th scope="row">
212
+ <label for="strip_uri_parameters"><?php _e( 'Strip parameters from URI:', 'wp-statistics' ); ?></label>
 
213
  </th>
214
 
215
  <td>
230
  ?>
231
  <tr valign="top">
232
  <th scope="row">
233
+ <label for="disable_column"><?php _e( 'Disable hits column in post/pages list:', 'wp-statistics' ); ?></label>
 
234
  </th>
235
 
236
  <td>
245
 
246
  <tr valign="top">
247
  <th scope="row">
248
+ <label for="show_hits"><?php _e( 'Show hits in posts/pages in the site:', 'wp-statistics' ); ?></label>
249
  </th>
250
 
251
  <td>
265
  } ?>
266
  <tr valign="top"<?php echo $hidden; ?> id='wps_show_hits_option'>
267
  <td scope="row" style="vertical-align: top;">
268
+ <label for="display_hits_position"><?php _e( 'Display position:', 'wp-statistics' ); ?></label>
269
  </td>
270
 
271
  <td>
298
 
299
  <tr valign="top">
300
  <th scope="row">
301
+ <label for="menu-bar"><?php _e( 'Show stats in menu bar:', 'wp-statistics' ); ?></label>
302
  </th>
303
 
304
  <td>
319
 
320
  <tr valign="top">
321
  <th scope="row">
322
+ <label for="hide_notices"><?php _e( 'Hide admin notices about non active features:', 'wp-statistics' ); ?></label>
 
323
  </th>
324
 
325
  <td>
341
 
342
  <tr valign="top">
343
  <th scope="row">
344
+ <label for="addsearchwords"><?php _e( 'Add page title to empty search words:', 'wp-statistics' ); ?></label>
 
345
  </th>
346
 
347
  <td>
400
 
401
  <tr valign="top">
402
  <th scope="row">
403
+ <label for="chart-totals"><?php _e( 'Include totals:', 'wp-statistics' ); ?></label>
404
  </th>
405
 
406
  <td>
includes/settings/tabs/wps-maintenance.php CHANGED
@@ -40,7 +40,7 @@ if ( $wps_nonce_valid ) {
40
 
41
  <tr valign="top">
42
  <th scope="row">
43
- <label for="wps_schedule_dbmaint"><?php _e( 'Enabled', 'wp-statistics' ); ?>:</label>
44
  </th>
45
 
46
  <td>
@@ -58,7 +58,7 @@ if ( $wps_nonce_valid ) {
58
 
59
  <tr valign="top">
60
  <th scope="row">
61
- <label for="wps_schedule_dbmaint_days"><?php _e( 'Purge data older than', 'wp-statistics' ); ?>:</label>
62
  </th>
63
 
64
  <td>
@@ -69,7 +69,13 @@ if ( $wps_nonce_valid ) {
69
  ); ?>"/>
70
  <?php _e( 'Days', 'wp-statistics' ); ?>
71
  <p class="description"><?php echo __(
72
- 'The number of days to keep statistics for. Minimum value is 30 days. Invalid values will disable the daily maintenance.',
 
 
 
 
 
 
73
  'wp-statistics'
74
  ); ?></p>
75
  </td>
@@ -82,7 +88,7 @@ if ( $wps_nonce_valid ) {
82
 
83
  <tr valign="top">
84
  <th scope="row">
85
- <label for="wps_schedule_dbmaint_visitor"><?php _e( 'Enabled', 'wp-statistics' ); ?>:</label>
86
  </th>
87
 
88
  <td>
@@ -102,9 +108,9 @@ if ( $wps_nonce_valid ) {
102
  <tr valign="top">
103
  <th scope="row">
104
  <label for="wps_schedule_dbmaint_visitor_hits"><?php _e(
105
- 'Purge visitors with more than',
106
  'wp-statistics'
107
- ); ?>:</label>
108
  </th>
109
 
110
  <td>
@@ -115,7 +121,13 @@ if ( $wps_nonce_valid ) {
115
  ); ?>"/>
116
  <?php _e( 'Hits', 'wp-statistics' ); ?>
117
  <p class="description"><?php echo __(
118
- 'The number of hits required to delete the visitor. Minimum value is 10 hits. Invalid values will disable the daily maintenance.',
 
 
 
 
 
 
119
  'wp-statistics'
120
  ); ?></p>
121
  </td>
40
 
41
  <tr valign="top">
42
  <th scope="row">
43
+ <label for="wps_schedule_dbmaint"><?php _e( 'Enabled:', 'wp-statistics' ); ?></label>
44
  </th>
45
 
46
  <td>
58
 
59
  <tr valign="top">
60
  <th scope="row">
61
+ <label for="wps_schedule_dbmaint_days"><?php _e( 'Purge data older than:', 'wp-statistics' ); ?></label>
62
  </th>
63
 
64
  <td>
69
  ); ?>"/>
70
  <?php _e( 'Days', 'wp-statistics' ); ?>
71
  <p class="description"><?php echo __(
72
+ 'The number of days to keep statistics for.',
73
+ 'wp-statistics'
74
+ ) . ' ' . __(
75
+ 'Minimum value is 30 days.',
76
+ 'wp-statistics'
77
+ ) . ' ' . __(
78
+ 'Invalid values will disable the daily maintenance.',
79
  'wp-statistics'
80
  ); ?></p>
81
  </td>
88
 
89
  <tr valign="top">
90
  <th scope="row">
91
+ <label for="wps_schedule_dbmaint_visitor"><?php _e( 'Enabled:', 'wp-statistics' ); ?></label>
92
  </th>
93
 
94
  <td>
108
  <tr valign="top">
109
  <th scope="row">
110
  <label for="wps_schedule_dbmaint_visitor_hits"><?php _e(
111
+ 'Purge visitors with more than:',
112
  'wp-statistics'
113
+ ); ?></label>
114
  </th>
115
 
116
  <td>
121
  ); ?>"/>
122
  <?php _e( 'Hits', 'wp-statistics' ); ?>
123
  <p class="description"><?php echo __(
124
+ 'The number of hits required to delete the visitor.',
125
+ 'wp-statistics'
126
+ ) . ' ' . __(
127
+ 'Minimum value is 10 hits.',
128
+ 'wp-statistics'
129
+ ) . ' ' . __(
130
+ 'Invalid values will disable the daily maintenance.',
131
  'wp-statistics'
132
  ); ?></p>
133
  </td>
includes/settings/tabs/wps-notifications.php CHANGED
@@ -60,7 +60,7 @@ if ( $wps_nonce_valid ) {
60
 
61
  <tr valign="top">
62
  <td scope="row" style="vertical-align: top;">
63
- <label for="email-report"><?php _e( 'E-mail addresses', 'wp-statistics' ); ?>:</label>
64
  </td>
65
 
66
  <td>
@@ -83,7 +83,7 @@ if ( $wps_nonce_valid ) {
83
 
84
  <tr valign="top">
85
  <td scope="row">
86
- <label for="browscap-report"><?php _e( 'Browscap', 'wp-statistics' ); ?>:</label>
87
  </td>
88
 
89
  <td>
@@ -101,7 +101,7 @@ if ( $wps_nonce_valid ) {
101
 
102
  <tr valign="top">
103
  <td scope="row">
104
- <label for="geoip-report"><?php _e( 'GeoIP', 'wp-statistics' ); ?>:</label>
105
  </td>
106
 
107
  <td>
@@ -119,7 +119,7 @@ if ( $wps_nonce_valid ) {
119
 
120
  <tr valign="top">
121
  <td scope="row">
122
- <label for="prune-report"><?php _e( 'Pruning', 'wp-statistics' ); ?>:</label>
123
  </td>
124
 
125
  <td>
@@ -137,7 +137,7 @@ if ( $wps_nonce_valid ) {
137
 
138
  <tr valign="top">
139
  <td scope="row">
140
- <label for="upgrade-report"><?php _e( 'Upgrade', 'wp-statistics' ); ?>:</label>
141
  </td>
142
 
143
  <td>
@@ -159,7 +159,7 @@ if ( $wps_nonce_valid ) {
159
 
160
  <tr valign="top">
161
  <th scope="row">
162
- <label for="stats-report"><?php _e( 'Statistical reporting', 'wp-statistics' ); ?>:</label>
163
  </th>
164
 
165
  <td>
@@ -179,7 +179,7 @@ if ( $wps_nonce_valid ) {
179
  } ?>
180
  <tr valign="top"<?php echo $hidden; ?> id='wps_stats_report_option'>
181
  <td scope="row" style="vertical-align: top;">
182
- <label for="time-report"><?php _e( 'Schedule', 'wp-statistics' ); ?>:</label>
183
  </td>
184
 
185
  <td>
@@ -222,7 +222,7 @@ if ( $wps_nonce_valid ) {
222
 
223
  <tr valign="top"<?php echo $hidden; ?> id='wps_stats_report_option'>
224
  <td scope="row" style="vertical-align: top;">
225
- <label for="send-report"><?php _e( 'Send reports via', 'wp-statistics' ); ?>:</label>
226
  </td>
227
 
228
  <td>
@@ -261,7 +261,7 @@ if ( $wps_nonce_valid ) {
261
 
262
  <tr valign="top"<?php echo $hidden; ?> id='wps_stats_report_option'>
263
  <td scope="row" style="vertical-align: top;">
264
- <label for="content-report"><?php _e( 'Report body', 'wp-statistics' ); ?>:</label>
265
  </td>
266
 
267
  <td>
@@ -278,7 +278,7 @@ if ( $wps_nonce_valid ) {
278
 
279
  <p class="description data">
280
  <?php _e(
281
- 'Any shortcode supported by your installation of WordPress, include all shortcodes for WP Statistics (see the documentation for a list of codes available) are supported in the body of the message. Here are some examples:',
282
  'wp-statistics'
283
  ); ?>
284
  <br><br>
60
 
61
  <tr valign="top">
62
  <td scope="row" style="vertical-align: top;">
63
+ <label for="email-report"><?php _e( 'E-mail addresses:', 'wp-statistics' ); ?></label>
64
  </td>
65
 
66
  <td>
83
 
84
  <tr valign="top">
85
  <td scope="row">
86
+ <label for="browscap-report"><?php _e( 'Browscap:', 'wp-statistics' ); ?></label>
87
  </td>
88
 
89
  <td>
101
 
102
  <tr valign="top">
103
  <td scope="row">
104
+ <label for="geoip-report"><?php _e( 'GeoIP:', 'wp-statistics' ); ?></label>
105
  </td>
106
 
107
  <td>
119
 
120
  <tr valign="top">
121
  <td scope="row">
122
+ <label for="prune-report"><?php _e( 'Pruning:', 'wp-statistics' ); ?></label>
123
  </td>
124
 
125
  <td>
137
 
138
  <tr valign="top">
139
  <td scope="row">
140
+ <label for="upgrade-report"><?php _e( 'Upgrade:', 'wp-statistics' ); ?></label>
141
  </td>
142
 
143
  <td>
159
 
160
  <tr valign="top">
161
  <th scope="row">
162
+ <label for="stats-report"><?php _e( 'Statistical reporting:', 'wp-statistics' ); ?></label>
163
  </th>
164
 
165
  <td>
179
  } ?>
180
  <tr valign="top"<?php echo $hidden; ?> id='wps_stats_report_option'>
181
  <td scope="row" style="vertical-align: top;">
182
+ <label for="time-report"><?php _e( 'Schedule:', 'wp-statistics' ); ?></label>
183
  </td>
184
 
185
  <td>
222
 
223
  <tr valign="top"<?php echo $hidden; ?> id='wps_stats_report_option'>
224
  <td scope="row" style="vertical-align: top;">
225
+ <label for="send-report"><?php _e( 'Send reports via:', 'wp-statistics' ); ?></label>
226
  </td>
227
 
228
  <td>
261
 
262
  <tr valign="top"<?php echo $hidden; ?> id='wps_stats_report_option'>
263
  <td scope="row" style="vertical-align: top;">
264
+ <label for="content-report"><?php _e( 'Message body:', 'wp-statistics' ); ?></label>
265
  </td>
266
 
267
  <td>
278
 
279
  <p class="description data">
280
  <?php _e(
281
+ 'Any shortcode supported by your installation of WordPress, include all shortcodes for WP Statistics (see the documentation for a list of codes available) are supported in the body of the message. Here are some examples:',
282
  'wp-statistics'
283
  ); ?>
284
  <br><br>
includes/settings/tabs/wps-overview-display.php CHANGED
@@ -33,7 +33,7 @@ if ( $wps_admin ) {
33
 
34
  <tr valign="top">
35
  <th scope="row">
36
- <label for="disable-map"><?php _e( 'Disable dashboard widgets', 'wp-statistics' ); ?>:</label>
37
  </th>
38
 
39
  <td>
@@ -59,7 +59,7 @@ if ( $wps_admin ) {
59
 
60
  <tr valign="top">
61
  <th scope="row">
62
- <label for="disable-map"><?php _e( 'Disable post/page editor widget', 'wp-statistics' ); ?>:</label>
63
  </th>
64
 
65
  <td>
@@ -85,7 +85,7 @@ if ( $wps_admin ) {
85
 
86
  <tr valign="top">
87
  <th scope="row">
88
- <label for="disable-map"><?php _e( 'Disable map', 'wp-statistics' ); ?>:</label>
89
  </th>
90
 
91
  <td>
33
 
34
  <tr valign="top">
35
  <th scope="row">
36
+ <label for="disable-map"><?php _e( 'Disable dashboard widgets:', 'wp-statistics' ); ?></label>
37
  </th>
38
 
39
  <td>
59
 
60
  <tr valign="top">
61
  <th scope="row">
62
+ <label for="disable-map"><?php _e( 'Disable post/page editor widget:', 'wp-statistics' ); ?></label>
63
  </th>
64
 
65
  <td>
85
 
86
  <tr valign="top">
87
  <th scope="row">
88
+ <label for="disable-map"><?php _e( 'Disable map:', 'wp-statistics' ); ?></label>
89
  </th>
90
 
91
  <td>
includes/settings/tabs/wps-privacy.php CHANGED
@@ -43,9 +43,13 @@ if ( $wps_nonce_valid ) {
43
  <th scope="row" colspan="2"><h3><?php _e( 'Privacy and Data Protection', 'wp-statistics' ); ?></h3></th>
44
  </tr>
45
 
 
 
 
 
46
  <tr valign="top">
47
  <th scope="row">
48
- <label for="allow_opt_out"><?php _e( 'Allow Opt-out', 'wp-statistics' ); ?>:</label>
49
  </th>
50
 
51
  <td>
@@ -65,7 +69,7 @@ if ( $wps_nonce_valid ) {
65
  } ?>
66
  <tr valign="top"<?php echo $hidden; ?> id='wps_show_opt_out_option'>
67
  <td scope="row" style="vertical-align: top;">
68
- <label for="opt-out-message"><?php _e( 'Report body', 'wp-statistics' ); ?>:</label>
69
  </td>
70
 
71
  <td>
@@ -94,7 +98,7 @@ if ( $wps_nonce_valid ) {
94
 
95
  <tr valign="top">
96
  <th scope="row">
97
- <label for="hash_ips"><?php _e( 'Hash IP Addresses', 'wp-statistics' ); ?>:</label>
98
  </th>
99
 
100
  <td>
@@ -103,8 +107,14 @@ if ( $wps_nonce_valid ) {
103
  ? "checked='checked'" : ''; ?>>
104
  <label for="hash_ips"><?php _e( 'Enable', 'wp-statistics' ); ?></label>
105
 
106
- <p class="description"><?php _e(
107
- 'This feature will not store IP addresses in the database but instead used a unique hash. The "Store entire user agent string" setting will be disabled if this is selected. You will not be able to recover the IP addresses in the future to recover location information if this is enabled.',
 
 
 
 
 
 
108
  'wp-statistics'
109
  ); ?></p>
110
  </td>
@@ -112,7 +122,7 @@ if ( $wps_nonce_valid ) {
112
 
113
  <tr valign="top">
114
  <th scope="row">
115
- <label for="store_ua"><?php _e( 'Store entire user agent string', 'wp-statistics' ); ?>:</label>
116
  </th>
117
 
118
  <td>
@@ -127,4 +137,4 @@ if ( $wps_nonce_valid ) {
127
  </tbody>
128
  </table>
129
 
130
- <?php submit_button( __( 'Update', 'wp-statistics' ), 'primary', 'submit' );
43
  <th scope="row" colspan="2"><h3><?php _e( 'Privacy and Data Protection', 'wp-statistics' ); ?></h3></th>
44
  </tr>
45
 
46
+ <tr valign="top">
47
+ <td scope="row" colspan="2"><?php echo __(sprintf('If you want to delete visitor data, Please <a href="%s">click here</a>.', admin_url('admin.php?page=wps_optimization_page&tab=purging')), 'wp-statistics'); ?></td>
48
+ </tr>
49
+
50
  <tr valign="top">
51
  <th scope="row">
52
+ <label for="allow_opt_out"><?php _e( 'Allow Opt-out:', 'wp-statistics' ); ?></label>
53
  </th>
54
 
55
  <td>
69
  } ?>
70
  <tr valign="top"<?php echo $hidden; ?> id='wps_show_opt_out_option'>
71
  <td scope="row" style="vertical-align: top;">
72
+ <label for="opt-out-message"><?php _e( 'Message body:', 'wp-statistics' ); ?></label>
73
  </td>
74
 
75
  <td>
98
 
99
  <tr valign="top">
100
  <th scope="row">
101
+ <label for="hash_ips"><?php _e( 'Hash IP Addresses:', 'wp-statistics' ); ?></label>
102
  </th>
103
 
104
  <td>
107
  ? "checked='checked'" : ''; ?>>
108
  <label for="hash_ips"><?php _e( 'Enable', 'wp-statistics' ); ?></label>
109
 
110
+ <p class="description"><?php echo __(
111
+ 'This feature will not store IP addresses in the database but instead used a unique hash.',
112
+ 'wp-statistics'
113
+ ) . ' ' . __(
114
+ 'The "Store entire user agent string" setting will be disabled if this is selected.',
115
+ 'wp-statistics'
116
+ ) . ' ' . __(
117
+ 'You will not be able to recover the IP addresses in the future to recover location information if this is enabled.',
118
  'wp-statistics'
119
  ); ?></p>
120
  </td>
122
 
123
  <tr valign="top">
124
  <th scope="row">
125
+ <label for="store_ua"><?php _e( 'Store entire user agent string:', 'wp-statistics' ); ?></label>
126
  </th>
127
 
128
  <td>
137
  </tbody>
138
  </table>
139
 
140
+ <?php submit_button( __( 'Update', 'wp-statistics' ), 'primary', 'submit' );
includes/settings/tabs/wps-removal.php CHANGED
@@ -95,7 +95,7 @@ if ( $wps_nonce_valid ) {
95
 
96
  <tr valign="top">
97
  <th scope="row">
98
- <label for="reset-plugin"><?php _e( 'Reset options', 'wp-statistics' ); ?>:</label>
99
  </th>
100
 
101
  <td>
@@ -111,7 +111,7 @@ if ( $wps_nonce_valid ) {
111
 
112
  <tr valign="top">
113
  <th scope="row">
114
- <label for="remove-plugin"><?php _e( 'Remove data and settings', 'wp-statistics' ); ?>:</label>
115
  </th>
116
 
117
  <td>
95
 
96
  <tr valign="top">
97
  <th scope="row">
98
+ <label for="reset-plugin"><?php _e( 'Reset options:', 'wp-statistics' ); ?></label>
99
  </th>
100
 
101
  <td>
111
 
112
  <tr valign="top">
113
  <th scope="row">
114
+ <label for="remove-plugin"><?php _e( 'Remove data and settings:', 'wp-statistics' ); ?></label>
115
  </th>
116
 
117
  <td>
includes/settings/wps-settings.php CHANGED
@@ -43,7 +43,7 @@ if ($wps_admin === false) {
43
  'wp-statistics'
44
  ); ?></li>
45
  <li class="tab-link" data-tab="overview-display-settings"><?php _e(
46
- 'Dashboard/Overview',
47
  'wp-statistics'
48
  ); ?></li>
49
  <li class="tab-link" data-tab="access-settings"><?php _e(
43
  'wp-statistics'
44
  ); ?></li>
45
  <li class="tab-link" data-tab="overview-display-settings"><?php _e(
46
+ 'Dashboard',
47
  'wp-statistics'
48
  ); ?></li>
49
  <li class="tab-link" data-tab="access-settings"><?php _e(
includes/templates/welcomes/last-version.php CHANGED
@@ -5,14 +5,14 @@
5
  <p class="about-text">
6
  <?php printf(
7
  __(
8
- 'Thank you for updating to the latest version! we encourage you to submit a %srating and review%s over at WordPress.org. Your feedback is greatly appreciated!',
9
  'wp-statistics'
10
  ),
11
  '<a href="https://wordpress.org/support/plugin/wp-statistics/reviews/?rate=5#new-post" target="_blank">',
12
  '</a>'
13
  ); ?>
14
 
15
- Submit your rating: <a href="https://wordpress.org/support/plugin/wp-statistics/reviews/?rate=5#new-post" target="_blank"><img src="<?php echo plugins_url( 'wp-statistics/assets/images/stars.png' ); ?>"/></a>
16
  </p>
17
 
18
  <div class="wp-badge"><?php printf( __( 'Version %s', 'wp-statistics' ), WP_Statistics::$reg['version'] ); ?></div>
@@ -42,7 +42,7 @@
42
  <div class="left">
43
  <div class="content-padding">
44
  <h2><?php _e( 'Chart.js Updated!', 'wp-statistics' ); ?></h2>
45
- <h4><?php _e( 'The Chart.js library to v2.7.2', 'wp-statistics' ); ?></h4>
46
  </div>
47
  </div>
48
 
5
  <p class="about-text">
6
  <?php printf(
7
  __(
8
+ 'Thank you for updating to the latest version! We encourage you to submit a %srating and review%s over at WordPress.org. Your feedback is greatly appreciated!',
9
  'wp-statistics'
10
  ),
11
  '<a href="https://wordpress.org/support/plugin/wp-statistics/reviews/?rate=5#new-post" target="_blank">',
12
  '</a>'
13
  ); ?>
14
 
15
+ <?php _e( 'Submit your rating:', 'wp-statistics' ); ?> <a href="https://wordpress.org/support/plugin/wp-statistics/reviews/?rate=5#new-post" target="_blank"><img src="<?php echo plugins_url( 'wp-statistics/assets/images/stars.png' ); ?>"/></a>
16
  </p>
17
 
18
  <div class="wp-badge"><?php printf( __( 'Version %s', 'wp-statistics' ), WP_Statistics::$reg['version'] ); ?></div>
42
  <div class="left">
43
  <div class="content-padding">
44
  <h2><?php _e( 'Chart.js Updated!', 'wp-statistics' ); ?></h2>
45
+ <h4><?php printf( __( 'The Chart.js library was updated to %s', 'wp-statistics' ), 'v2.7.2' ); ?></h4>
46
  </div>
47
  </div>
48
 
includes/vendor/mimmi20/wurflcache/src/Adapter/File.php CHANGED
@@ -197,7 +197,7 @@ class File extends AbstractAdapter
197
  {
198
  if (!isset($this->root)) {
199
  throw new Exception(
200
- 'You have to provide a path to read/store the browscap cache file',
201
  Exception::CACHE_DIR_MISSING
202
  );
203
  }
197
  {
198
  if (!isset($this->root)) {
199
  throw new Exception(
200
+ __( 'You have to provide a path to read/store the Browscap cache file', 'wp-statistics' ),
201
  Exception::CACHE_DIR_MISSING
202
  );
203
  }
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://wp-statistics.com/donate/
4
  Tags: analytics, wordpress analytics, stats, statistics, visit, visitors, hits, chart, browser, today, yesterday, week, month, year, total, post, page, sidebar, google, live visit, search word, agent, google analytics, webmasters, google webmasters, geoip, location
5
  Requires at least: 3.0
6
  Tested up to: 4.9
7
- Stable tag: 12.3.6
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -47,7 +47,7 @@ Translations are done by people just like you, help make WP Statistics available
47
  WP-Statistics is being developed on GitHub, If you’re interested in contributing to plugin, Please look at [Github page](https://github.com/wp-statistics/wp-statistics)
48
 
49
  = Support =
50
- We're sorry you're having problem with WP Statistics and we're happy to help out. Here are a few things to do before contacting us:
51
 
52
  * Have you read the [FAQs](https://wordpress.org/plugins/wp-statistics/faq/)?
53
  * Have you read the [documentation](http://wp-statistics.com/category/documentation)?
@@ -203,6 +203,11 @@ Introduction of a popup with “Accept” and “Deny” before collection data
203
  This is a security fix, please update immediately.
204
 
205
  == Changelog ==
 
 
 
 
 
206
  = 12.3.6 =
207
  * Note: GDPR, We Updated Our [Privacy Policy](https://wp-statistics.com/privacy-and-policy/).
208
  * Added Privacy tab in the setting page and moved Hash IP Addresses and Store entire user agent in this tab.
@@ -490,4 +495,4 @@ This is a security fix, please update immediately.
490
  * Fixed: UpdatedSQL for last post date detection to order by post_date instead of ID as someone could enter a date in the past for their publish date. Thanks PC1271 for the fix.
491
  * Fixed: The referrers widget would only select the first 100k records due to a limit in PHP/MySQL, it will now select all records.
492
  * Removed: Widget selection and ordering from the settings page, the "Screen Options" tab can now be used on the enabled/disable widgets and drag and drop will remember their location.
493
- * Removed: Overview page memory usage in the optimization page as it is no longer relevant.
4
  Tags: analytics, wordpress analytics, stats, statistics, visit, visitors, hits, chart, browser, today, yesterday, week, month, year, total, post, page, sidebar, google, live visit, search word, agent, google analytics, webmasters, google webmasters, geoip, location
5
  Requires at least: 3.0
6
  Tested up to: 4.9
7
+ Stable tag: 12.3.6.1
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
47
  WP-Statistics is being developed on GitHub, If you’re interested in contributing to plugin, Please look at [Github page](https://github.com/wp-statistics/wp-statistics)
48
 
49
  = Support =
50
+ We're sorry you're having problem with WP Statistics and we're happy to help out. Here are a few things to do before contacting us:
51
 
52
  * Have you read the [FAQs](https://wordpress.org/plugins/wp-statistics/faq/)?
53
  * Have you read the [documentation](http://wp-statistics.com/category/documentation)?
203
  This is a security fix, please update immediately.
204
 
205
  == Changelog ==
206
+ = 12.3.6.1 =
207
+ * Improvement i18n strings.
208
+ * Improvement GDPR, Supported for DNT-Header.
209
+ * Improvement GDPR, Added new option for delete visitor data with IP addresses.
210
+
211
  = 12.3.6 =
212
  * Note: GDPR, We Updated Our [Privacy Policy](https://wp-statistics.com/privacy-and-policy/).
213
  * Added Privacy tab in the setting page and moved Hash IP Addresses and Store entire user agent in this tab.
495
  * Fixed: UpdatedSQL for last post date detection to order by post_date instead of ID as someone could enter a date in the past for their publish date. Thanks PC1271 for the fix.
496
  * Fixed: The referrers widget would only select the first 100k records due to a limit in PHP/MySQL, it will now select all records.
497
  * Removed: Widget selection and ordering from the settings page, the "Screen Options" tab can now be used on the enabled/disable widgets and drag and drop will remember their location.
498
+ * Removed: Overview page memory usage in the optimization page as it is no longer relevant.
wp-statistics.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: WP Statistics
4
  * Plugin URI: https://wp-statistics.com/
5
  * Description: Complete WordPress Analytics and Statistics for your site!
6
- * Version: 12.3.6
7
  * Author: Verona Labs
8
  * Author URI: http://veronalabs.com/
9
  *
3
  * Plugin Name: WP Statistics
4
  * Plugin URI: https://wp-statistics.com/
5
  * Description: Complete WordPress Analytics and Statistics for your site!
6
+ * Version: 12.3.6.1
7
  * Author: Verona Labs
8
  * Author URI: http://veronalabs.com/
9
  *