PluginProbe
Simple Analytics / trunk
Simple Analytics vtrunk
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 / TrackingRules.php

TrackingRules.php in Simple Analytics trunk, at src/TrackingRules.php

42 lines 870 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 TrackingRules
6 {
7 protected $settings;
8
9 public function __construct(WordPressSettings $settings)
10 {
11 $this->settings = $settings;
12 }
13
14 public function hasExcludedIp(): bool
15 {
16 $ip = $_SERVER['HTTP_X_FORWARDED_FOR'] ?? ($_SERVER['REMOTE_ADDR'] ?? null);
17
18 if (empty($ip)) return false;
19
20 $list = $this->settings->array(SettingName::EXCLUDED_IP_ADDRESSES);
21
22 return in_array($ip, $list);
23 }
24
25 public function hasExcludedUserRole(): bool
26 {
27 if (! is_user_logged_in()) {
28 return false;
29 }
30
31 $needle = $this->settings->array(SettingName::EXCLUDED_ROLES);
32
33 if ($needle === []) {
34 return true;
35 }
36
37 $current = wp_get_current_user()->roles;
38
39 return array_intersect($needle, $current) !== [];
40 }
41 }
42