PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / trunk
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress vtrunk
4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / src / ContentProtection / Init.php
wp-user-avatar / src / ContentProtection Last commit date
Frontend 3 months ago views 1 year ago CapabilityCheck.php 3 years ago ConditionCallbacks.php 3 years ago ConditionalBlocksIntegration.php 3 years ago ContentConditions.php 7 months ago ElementorDisplayCondition.php 1 month ago ElementorRestriction.php 3 years ago Init.php 1 month ago NavMenuProtection.php 3 years ago SettingsPage.php 1 year ago WPListTable.php 1 year ago index.php 5 years ago
Init.php
181 lines
1 <?php
2
3 namespace ProfilePress\Core\ContentProtection;
4
5 use ProfilePress\Core\ContentProtection\Frontend\PostContent;
6 use ProfilePress\Core\ContentProtection\Frontend\Redirect;
7 use ProfilePress\Core\ContentProtection\Frontend\RestrictionShortcode;
8 use ProfilePress\Core\ContentProtection\Frontend\SearchAndAPI;
9
10 class Init
11 {
12 public function __construct()
13 {
14 add_action('wp_ajax_ppress_exempt_content_condition_field', [$this, 'get_exempt_content_condition_field']);
15 add_action('wp_ajax_ppress_content_condition_field', [$this, 'get_content_condition_field']);
16 add_action('wp_ajax_ppress_cr_object_search', [$this, 'get_content_condition_search']);
17
18 PostContent::get_instance();
19 Redirect::get_instance();
20 SearchAndAPI::get_instance();
21 RestrictionShortcode::get_instance();
22 NavMenuProtection::get_instance();
23 CapabilityCheck::get_instance();
24
25 ConditionalBlocksIntegration::get_instance();
26
27 ElementorRestriction::get_instance();
28 add_action( 'elementor/display_conditions/register', function( $conditions_manager ) {
29 $conditions_manager->register_condition_instance(
30 new ElementorDisplayCondition()
31 );
32 } );
33 }
34
35 public function get_content_condition_field()
36 {
37 check_ajax_referer('ppress_cr_nonce', 'nonce');
38
39 $instance = ContentConditions::get_instance();
40
41 if ( ! empty($_POST['field_type']) && ! empty($_POST['facetId']) && ! empty($_POST['facetListId'])) {
42
43 $condition_id = sanitize_text_field($_POST['condition_id']);
44
45 $field = $instance->rule_value_field(
46 $condition_id,
47 sanitize_text_field($_POST['facetListId']),
48 sanitize_text_field($_POST['facetId'])
49 );
50
51 if (false !== $field) wp_send_json_success($field);
52 }
53
54 wp_send_json_error();
55 }
56
57 public function get_exempt_content_condition_field()
58 {
59 check_ajax_referer('ppress_cr_nonce', 'nonce');
60
61 $instance = ContentConditions::get_instance();
62
63 if ( ! empty($_POST['field_type']) && ! empty($_POST['facetId']) && ! empty($_POST['facetListId'])) {
64
65 $condition_id = sanitize_text_field($_POST['condition_id']);
66
67 $field = $instance->exempt_rule_value_field(
68 $condition_id,
69 sanitize_text_field($_POST['facetListId']),
70 sanitize_text_field($_POST['facetId'])
71 );
72
73 if (false !== $field) wp_send_json_success($field);
74 }
75
76 wp_send_json_error();
77 }
78
79 public function get_content_condition_search()
80 {
81 check_ajax_referer('ppress_cr_nonce', 'nonce');
82
83 $results['results'] = [];
84
85 $object_type = sanitize_text_field($_REQUEST['object_type']);
86
87 switch ($object_type) {
88
89 case 'post_type':
90
91 $post_type = ! empty($_REQUEST['object_key']) ? sanitize_text_field($_REQUEST['object_key']) : 'post';
92
93 $search = ! empty($_REQUEST['search']) ? esc_attr($_REQUEST['search']) : false;
94
95 $query = $this->post_type_query($post_type, ['s' => $search]);
96
97 foreach ($query as $post) {
98 $results['results'][] = array(
99 'id' => $post->ID,
100 'text' => $post->post_title,
101 );
102 }
103
104 break;
105 case 'taxonomy':
106
107 $taxonomy = ! empty($_REQUEST['object_key']) ? sanitize_text_field($_REQUEST['object_key']) : 'category';
108
109 $search = ! empty($_REQUEST['search']) ? sanitize_text_field($_REQUEST['search']) : false;
110
111 $query = $this->taxonomy_query($taxonomy, ['search' => $search]);
112
113 foreach ($query as $term) {
114 $results['results'][] = array(
115 'id' => $term->term_id,
116 'text' => $term->name,
117 );
118 }
119 break;
120 case 'wp_users':
121
122 $search = ! empty($_REQUEST['search']) ? sanitize_text_field($_REQUEST['search']) : '';
123
124 $query = get_users([
125 'search' => '*' . $search . '*',
126 'search_columns' => ['user_email', 'user_login', 'user_nicename', 'display_name'],
127 'fields' => ['ID', 'user_email', 'user_login'],
128 'number' => 1000
129 ]);
130
131 foreach ($query as $user) {
132 $results['results'][] = array(
133 'id' => $user->ID,
134 'text' => sprintf('%s (%s)', $user->user_login, $user->user_email),
135 );
136 }
137 break;
138 }
139
140 wp_send_json($results, 200);
141 }
142
143 /**
144 * @param string|array $post_type
145 * @param array $args
146 *
147 * @return int[]|\WP_Post[]
148 */
149 public static function post_type_query($post_type, $args = [])
150 {
151 $default_args = [
152 'numberposts' => 50,
153 'post_type' => $post_type
154 ];
155
156 return get_posts(array_filter(wp_parse_args($args, $default_args)));
157 }
158
159 public function taxonomy_query($taxonomy, $args = [])
160 {
161 $args = wp_parse_args($args, array(
162 'hide_empty' => false,
163 'number' => 50,
164 'taxonomy' => $taxonomy,
165 ));
166
167 return get_terms($args);
168 }
169
170 public static function get_instance()
171 {
172 static $instance = null;
173
174 if (is_null($instance)) {
175 $instance = new self();
176 }
177
178 return $instance;
179 }
180 }
181