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 / ScreenCondition.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
ScreenCondition.php
62 lines
1 <?php
2
3 namespace Give\Vendors\StellarWP\AdminNotices\ValueObjects;
4
5 use InvalidArgumentException;
6
7 class ScreenCondition
8 {
9 /**
10 * @var string|array a string compared against the url, a regex for the url, or an array of conditions used against WP_Screen
11 *
12 * @see https://developer.wordpress.org/reference/classes/wp_screen/
13 */
14 private $condition;
15
16 /**
17 * @var bool
18 */
19 private $isRegex = true;
20
21 public function __construct($condition)
22 {
23 $this->validateCondition($condition);
24
25 $this->condition = $condition;
26
27 // check if condition is a string with a regex using ~ as the delimiter
28 $this->isRegex = is_string($condition) && preg_match('/^~.+~[a-z]*$/', $condition) === 1;
29 }
30
31 public function getCondition()
32 {
33 return $this->condition;
34 }
35
36 public function isRegex(): bool
37 {
38 return $this->isRegex;
39 }
40
41 private function validateCondition($condition)
42 {
43 // check if condition is a string or an array
44 if (!(is_string($condition) || is_array($condition))) {
45 throw new InvalidArgumentException('Screen condition must be a string or an array');
46 }
47
48 // check if array is an associative array with WP_Screen properties
49 static $wpScreenProperties = null;
50
51 if ($wpScreenProperties === null) {
52 $wpScreenProperties = get_class_vars('WP_Screen');
53 }
54
55 if (is_array($condition) && array_diff_key($condition, $wpScreenProperties)) {
56 throw new InvalidArgumentException(
57 'Screen condition must be an associative array with WP_Screen properties'
58 );
59 }
60 }
61 }
62