Skip to content

Commit 504d66f

Browse files
committed
wip
1 parent 17e3f7b commit 504d66f

File tree

5 files changed

+38
-36
lines changed

5 files changed

+38
-36
lines changed

simple-analytics.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
require __DIR__ . '/src/Plugin.php';
3434
require __DIR__ . '/src/Setting.php';
3535
require __DIR__ . '/src/SettingName.php';
36-
require __DIR__ . '/src/TrackingPolicy.php';
36+
require __DIR__ . '/src/TrackingRules.php';
3737
require __DIR__ . '/src/ScriptManager.php';
3838
require __DIR__ . '/src/Scripts/Contracts/Script.php';
3939
require __DIR__ . '/src/Scripts/Contracts/HideScriptId.php';

src/Plugin.php

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,18 @@ public function onUninstall(): void
3434

3535
public function onInit(): void
3636
{
37-
$shouldCollect = (new TrackingPolicy)->shouldCollectAnalytics();
38-
$this->addScripts($shouldCollect);
39-
if (! $shouldCollect) {
40-
AddInactiveComment::register();
41-
}
42-
if ($shouldCollect && Setting::boolean(SettingName::NOSCRIPT)) {
37+
$rules = new TrackingRules();
38+
$tracking = $rules->excludedIp();
39+
40+
$this->addScripts($tracking);
41+
42+
if ($tracking && Setting::boolean(SettingName::NOSCRIPT)) {
4343
AddNoScriptTag::register();
4444
}
45+
46+
if (! $rules->excludedUserRole()) {
47+
AddInactiveComment::register();
48+
}
4549
}
4650

4751
/**

src/Settings/Concerns/WordPressPageIntegration.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88

99
trait WordPressPageIntegration
1010
{
11+
/** @return Tab[] */
12+
abstract function getTabs(): array;
13+
1114
public function register(): void
1215
{
1316
add_action('admin_menu', [$this, 'wpAddMenu']);

src/TrackingPolicy.php

Lines changed: 0 additions & 29 deletions
This file was deleted.

src/TrackingRules.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
namespace SimpleAnalytics;
4+
5+
class TrackingRules
6+
{
7+
public function excludedIp(): bool
8+
{
9+
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['REMOTE_ADDR'];
10+
$list = Setting::array(SettingName::EXCLUDED_IP_ADDRESSES);
11+
12+
return in_array($ip, $list);
13+
}
14+
15+
public function excludedUserRole(): bool
16+
{
17+
if (! is_user_logged_in()) return false;
18+
19+
$needle = Setting::array(SettingName::EXCLUDED_ROLES);
20+
$current = wp_get_current_user()->roles;
21+
22+
return array_intersect($needle, $current) !== [];
23+
}
24+
}

0 commit comments

Comments
 (0)