PluginProbe
Simple Analytics / 1.47
Simple Analytics v1.47
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.47, at src/TrackingPolicy.php

34 lines 838 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 (Setting::boolean(SettingName::ENABLED, true) === false) {
10 return false;
11 }
12
13 if ($this->clientIpExcluded($_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['REMOTE_ADDR'])) {
14 return false;
15 }
16
17 if (! is_user_logged_in()) {
18 return true;
19 }
20
21 return ! $this->containsExcludedRole(wp_get_current_user()->roles);
22 }
23
24 protected function clientIpExcluded(string $ip): bool
25 {
26 return in_array($ip, Setting::array(SettingName::EXCLUDED_IP_ADDRESSES));
27 }
28
29 protected function containsExcludedRole(array $roles): bool
30 {
31 return array_intersect(Setting::array(SettingName::EXCLUDED_ROLES), $roles) !== [];
32 }
33 }
34