PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.6
GiveWP – Donation Plugin and Fundraising Platform v4.16.6
4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / vendor / vendor-prefixed / stellarwp / admin-notices / src / ValueObjects / NoticeLocation.php
give / vendor / vendor-prefixed / stellarwp / admin-notices / src / ValueObjects Last commit date
NoticeLocation.php 1 year ago NoticeUrgency.php 1 year ago ScreenCondition.php 1 year ago Script.php 1 year ago Style.php 1 year ago UserCapability.php 1 year ago
NoticeLocation.php
143 lines
1 <?php
2
3 declare(strict_types=1);
4
5
6 namespace Give\Vendors\StellarWP\AdminNotices\ValueObjects;
7
8 use InvalidArgumentException;
9
10 class NoticeLocation
11 {
12 private const ABOVE_HEADER = 'above_header';
13 private const BELOW_HEADER = 'below_header';
14 private const INLINE = 'inline';
15
16 /**
17 * @var string
18 */
19 private $location;
20
21 /**
22 * @since 2.0.0
23 */
24 public static function aboveHeader(): self
25 {
26 return new self(self::ABOVE_HEADER);
27 }
28
29 /**
30 * An alias of aboveHeader(), as this is the standard WordPress location for admin notices.
31 *
32 * @since 2.0.0
33 */
34 public static function standard(): self
35 {
36 return self::belowHeader();
37 }
38
39 /**
40 * @since 2.0.0
41 */
42 public static function belowHeader(): self
43 {
44 return new self(self::BELOW_HEADER);
45 }
46
47 /**
48 * @since 2.0.0
49 */
50 public static function inline(): self
51 {
52 return new self(self::INLINE);
53 }
54
55 /**
56 * @since 2.0.0
57 */
58 public function __construct(string $location)
59 {
60 $this->validateLocation($location);
61
62 $this->location = $location;
63 }
64
65 /**
66 * @since 2.0.0
67 */
68 public function __toString()
69 {
70 return $this->location;
71 }
72
73 /**
74 * @since 2.0.0
75 */
76 public function isAboveHeader(): bool
77 {
78 return $this->location === self::ABOVE_HEADER;
79 }
80
81 /**
82 * @since 2.0.0
83 */
84 public function isBelowHeader(): bool
85 {
86 return $this->location === self::BELOW_HEADER;
87 }
88
89 /**
90 * An alias of isAboveHeader(), as this is the standard WordPress location for admin notices.
91 *
92 * @since 2.0.0
93 */
94 public function isStandard(): bool
95 {
96 return $this->isBelowHeader();
97 }
98
99 /**
100 * @since 2.0.0
101 */
102 public function isInline(): bool
103 {
104 return $this->location === self::INLINE;
105 }
106
107 /**
108 * @since 2.0.0
109 *
110 * @param string|self $location
111 */
112 public function equals($location): bool
113 {
114 if (!(is_string($location) || $location instanceof self)) {
115 throw new InvalidArgumentException(
116 'Invalid location: ' . gettype($location) . ' - must be a string or an instance of ' . self::class
117 );
118 }
119
120 return $location instanceof self
121 ? $this->location === $location->location
122 : $this->location === $location;
123 }
124
125 /**
126 * @since 2.0.0
127 */
128 private function validateLocation(string $location)
129 {
130 $validLocations = [
131 self::ABOVE_HEADER,
132 self::BELOW_HEADER,
133 self::INLINE,
134 ];
135
136 if (!in_array($location, $validLocations, true)) {
137 throw new InvalidArgumentException(
138 "Invalid location: $location - must be one of " . implode(', ', $validLocations)
139 );
140 }
141 }
142 }
143