PluginProbe
Simple Analytics / 1.75
Simple Analytics v1.75
1.109 1.108 1.107 1.106 1.73 1.74 1.75 1.76 1.77 1.78 1.79 1.8 1.80 1.81 1.82 1.83 1.84 1.85 1.86 1.87 1.88 1.89 1.9 1.90 1.91 All 98 releases
simpleanalytics / src / TrackingPolicy.php

TrackingPolicy.php in Simple Analytics 1.75, at src/TrackingPolicy.php

37 lines 844 B
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace SimpleAnalytics;
4
5 class TrackingPolicy
6 {
7 public function shouldCollectAnalytics(): bool
8 {
9 if ($this->isClientIpExcluded()) {
10 return false;
11 }
12
13 if (! is_user_logged_in()) {
14 return true;
15 }
16
17 return ! $this->containsExcludedRole();
18 }
19
20 protected function isClientIpExcluded(): bool
21 {
22 $ip = $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['REMOTE_ADDR'];
23
24 if (empty($ip)) return false;
25
26 return in_array($ip, Setting::array(SettingName::EXCLUDED_IP_ADDRESSES));
27 }
28
29 protected function containsExcludedRole(): bool
30 {
31 $currentRoles = wp_get_current_user()->roles;
32 $excludedRoles = Setting::array(SettingName::EXCLUDED_ROLES);
33
34 return array_intersect($excludedRoles, $currentRoles) !== [];
35 }
36 }
37