PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.14.8
Independent Analytics – WordPress Analytics Plugin v2.14.8
2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / IAWP / Click_Tracking / Link_Rule.php
independent-analytics / IAWP / Click_Tracking Last commit date
Click.php 8 months ago Click_Processing_Job.php 5 months ago Config_File_Manager.php 1 year ago Link_Rule.php 1 year ago Link_Rule_Finder.php 9 months ago
Link_Rule.php
71 lines
1 <?php
2
3 namespace IAWP\Click_Tracking;
4
5 use IAWP\Illuminate_Builder;
6 use IAWP\Tables;
7 /** @internal */
8 class Link_Rule
9 {
10 private $attributes;
11 public function __construct(object $attributes)
12 {
13 // There's a small chance that is_active is a string instead of an int. In that case,
14 // it should be converted to a string.
15 // https://github.com/andrewjmead/independent-analytics/issues/1335
16 if (\is_string($attributes->is_active)) {
17 $attributes->is_active = (int) $attributes->is_active;
18 }
19 $this->attributes = $attributes;
20 }
21 public function id() : int
22 {
23 return $this->attributes->link_rule_id;
24 }
25 public function name() : string
26 {
27 return $this->attributes->name;
28 }
29 public function type() : string
30 {
31 return $this->attributes->type;
32 }
33 public function value() : string
34 {
35 return $this->attributes->value;
36 }
37 public function toggle_active() : bool
38 {
39 $new_is_active = !$this->is_active() ? 1 : 0;
40 $records_updated = Illuminate_Builder::new()->from(Tables::link_rules())->where('link_rule_id', '=', $this->id())->update(['is_active' => $new_is_active]);
41 if ($records_updated === 1) {
42 $this->attributes->is_active = $new_is_active;
43 return \true;
44 } else {
45 return \false;
46 }
47 }
48 public function is_active() : bool
49 {
50 return $this->attributes->is_active === 1;
51 }
52 public function to_array() : array
53 {
54 $array = (array) $this->attributes;
55 // Rename id
56 $array['id'] = $array['link_rule_id'];
57 unset($array['link_rule_id']);
58 // Convert is_active to a boolean
59 $array['is_active'] = $array['is_active'] === 1 ? \true : \false;
60 return $array;
61 }
62 public static function find(int $id) : ?self
63 {
64 $link_rule = Illuminate_Builder::new()->from(Tables::link_rules())->where('link_rule_id', '=', $id)->first();
65 if (\is_null($link_rule)) {
66 return null;
67 }
68 return new self($link_rule);
69 }
70 }
71