PluginProbe ʕ •ᴥ•ʔ
Royal Addons for Elementor – Addons and Templates Kit for Elementor / 1.7.1064
Royal Addons for Elementor – Addons and Templates Kit for Elementor v1.7.1064
1.7.1064 1.7.1063 1.7.1062 1.7.1061 1.7.1060 1.7.1059 1.7.1058 trunk 1.0.0 1.1.0 1.2 1.3 1.3.1 1.3.2 1.3.21 1.3.22 1.3.23 1.3.24 1.3.25 1.3.26 1.3.27 1.3.28 1.3.29 1.3.30 1.3.31 1.3.32 1.3.33 1.3.34 1.3.35 1.3.36 1.3.37 1.3.38 1.3.39 1.3.40 1.3.41 1.3.42 1.3.43 1.3.44 1.3.45 1.3.46 1.3.47 1.3.48 1.3.49 1.3.50 1.3.51 1.3.52 1.3.53 1.3.54 1.3.55 1.3.56 1.3.57 1.3.58 1.3.59 1.3.60 1.3.61 1.3.62 1.3.63 1.3.64 1.3.65 1.3.66 1.3.67 1.3.68 1.3.69 1.3.70 1.3.71 1.3.72 1.3.73 1.3.74 1.3.75 1.3.76 1.3.77 1.3.78 1.3.79 1.3.80 1.3.81 1.3.82 1.3.83 1.3.84 1.3.85 1.3.86 1.3.87 1.3.88 1.3.89 1.3.90 1.3.91 1.3.92 1.3.93 1.3.94 1.3.95 1.3.96 1.3.97 1.3.971 1.3.972 1.3.973 1.3.974 1.3.975 1.3.976 1.3.977 1.3.978 1.3.979 1.3.980 1.3.981 1.3.982 1.3.983 1.3.984 1.3.985 1.3.986 1.3.987 1.7.1 1.7.1001 1.7.1002 1.7.1003 1.7.1004 1.7.1005 1.7.1006 1.7.1007 1.7.1008 1.7.1009 1.7.1010 1.7.1011 1.7.1012 1.7.1013 1.7.1014 1.7.1015 1.7.1016 1.7.1017 1.7.1018 1.7.1019 1.7.1020 1.7.1021 1.7.1022 1.7.1023 1.7.1024 1.7.1025 1.7.1026 1.7.1027 1.7.1028 1.7.1029 1.7.1030 1.7.1031 1.7.1032 1.7.1033 1.7.1034 1.7.1035 1.7.1036 1.7.1037 1.7.1038 1.7.1039 1.7.1040 1.7.1041 1.7.1042 1.7.1043 1.7.1044 1.7.1045 1.7.1046 1.7.1047 1.7.1048 1.7.1049 1.7.1050 1.7.1051 1.7.1052 1.7.1053 1.7.1054 1.7.1055 1.7.1056 1.7.1057
royal-elementor-addons / includes / display-conditions / class-section-base.php
royal-elementor-addons / includes / display-conditions Last commit date
sections 5 days ago class-conditions-manager.php 5 days ago class-render-handler.php 5 days ago class-section-base.php 5 days ago
class-section-base.php
101 lines
1 <?php
2
3 if ( ! defined( 'ABSPATH' ) ) {
4 exit;
5 }
6
7 /**
8 * Abstract base class for all visibility condition sections.
9 * Each collapsible section in the Visibility tab extends this class.
10 */
11 abstract class WPR_DC_Section_Base {
12
13 /**
14 * Unique section ID (e.g. 'wpr_dc_visitor_roles').
15 */
16 abstract public function get_id();
17
18 /**
19 * Section label shown in the Elementor panel.
20 */
21 abstract public function get_label();
22
23 /**
24 * Sort order in the tab (10, 20, 30...).
25 */
26 abstract public function get_order();
27
28 /**
29 * Register Elementor controls for this section.
30 */
31 abstract public function register_controls( $element );
32
33 /**
34 * Evaluate conditions for this section.
35 *
36 * @return bool|null true = conditions met, false = not met, null = not configured (skip)
37 */
38 abstract public function evaluate( $settings );
39
40 /**
41 * Whether this section is available (e.g. required plugin is active).
42 */
43 public function is_available() {
44 return true;
45 }
46
47 /**
48 * Compare two values using the given operator.
49 */
50 protected function compare( $actual, $operator, $expected ) {
51 switch ( $operator ) {
52 case 'isset':
53 return '' !== $actual && null !== $actual && false !== $actual;
54 case 'empty':
55 return '' === $actual || null === $actual || false === $actual;
56 case 'equals':
57 return (string) $actual === (string) $expected;
58 case 'not_equals':
59 return (string) $actual !== (string) $expected;
60 case 'contains':
61 return false !== strpos( (string) $actual, (string) $expected );
62 case 'not_contains':
63 return false === strpos( (string) $actual, (string) $expected );
64 case 'starts_with':
65 return 0 === strpos( (string) $actual, (string) $expected );
66 case 'ends_with':
67 return substr( (string) $actual, -strlen( (string) $expected ) ) === (string) $expected;
68 case 'less_than':
69 return (float) $actual < (float) $expected;
70 case 'greater_than':
71 return (float) $actual > (float) $expected;
72 case 'less_equal':
73 return (float) $actual <= (float) $expected;
74 case 'greater_equal':
75 return (float) $actual >= (float) $expected;
76 default:
77 return true;
78 }
79 }
80
81 /**
82 * Get comparison operators for select dropdowns.
83 */
84 protected function get_comparison_operators() {
85 return [
86 'isset' => esc_html__( 'Has any value', 'wpr-addons' ),
87 'empty' => esc_html__( 'Is empty', 'wpr-addons' ),
88 'equals' => esc_html__( 'Equals', 'wpr-addons' ),
89 'not_equals' => esc_html__( 'Does not equal', 'wpr-addons' ),
90 'contains' => esc_html__( 'Contains', 'wpr-addons' ),
91 'not_contains' => esc_html__( 'Does not contain', 'wpr-addons' ),
92 'starts_with' => esc_html__( 'Starts with', 'wpr-addons' ),
93 'ends_with' => esc_html__( 'Ends with', 'wpr-addons' ),
94 'less_than' => esc_html__( 'Less than', 'wpr-addons' ),
95 'greater_than' => esc_html__( 'Greater than', 'wpr-addons' ),
96 'less_equal' => esc_html__( 'Less than or equal to', 'wpr-addons' ),
97 'greater_equal' => esc_html__( 'Greater than or equal to', 'wpr-addons' ),
98 ];
99 }
100 }
101