PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 4.0.3
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v4.0.3
4.16.19 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 4 years ago views 4 years ago ConditionCallbacks.php 5 years ago ContentConditions.php 5 years ago Init.php 4 years ago SettingsPage.php 4 years ago WPListTable.php 4 years ago index.php 5 years ago
Init.php
145 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
9 class Init
10 {
11 public function __construct()
12 {
13 add_action('wp_ajax_ppress_content_condition_field', [$this, 'get_content_condition_field']);
14 add_action('wp_ajax_ppress_cr_object_search', [$this, 'get_content_condition_search']);
15
16 PostContent::get_instance();
17 Redirect::get_instance();
18 RestrictionShortcode::get_instance();
19 }
20
21 public function get_content_condition_field()
22 {
23 check_ajax_referer('ppress_cr_nonce', 'nonce');
24
25 $instance = ContentConditions::get_instance();
26
27 if ( ! empty($_POST['field_type']) && ! empty($_POST['facetId']) && ! empty($_POST['facetListId'])) {
28
29 $condition_id = sanitize_text_field($_POST['condition_id']);
30
31 $field = $instance->rule_value_field(
32 $condition_id,
33 sanitize_text_field($_POST['facetListId']),
34 sanitize_text_field($_POST['facetId'])
35 );
36
37 if (false !== $field) wp_send_json_success($field);
38 }
39
40 wp_send_json_error();
41 }
42
43 public function get_content_condition_search()
44 {
45 check_ajax_referer('ppress_cr_nonce', 'nonce');
46
47 $results['results'] = [];
48
49 $object_type = sanitize_text_field($_REQUEST['object_type']);
50
51 switch ($object_type) {
52
53 case 'post_type':
54
55 $post_type = ! empty($_REQUEST['object_key']) ? sanitize_text_field($_REQUEST['object_key']) : 'post';
56
57 $search = ! empty($_REQUEST['search']) ? esc_attr($_REQUEST['search']) : false;
58
59 $query = $this->post_type_query($post_type, ['s' => $search]);
60
61 foreach ($query as $post) {
62 $results['results'][] = array(
63 'id' => $post->ID,
64 'text' => $post->post_title,
65 );
66 }
67
68 break;
69 case 'taxonomy':
70
71 $taxonomy = ! empty($_REQUEST['object_key']) ? sanitize_text_field($_REQUEST['object_key']) : 'category';
72
73 $search = ! empty($_REQUEST['search']) ? sanitize_text_field($_REQUEST['search']) : false;
74
75 $query = $this->taxonomy_query($taxonomy, ['search' => $search]);
76
77 foreach ($query as $term) {
78 $results['results'][] = array(
79 'id' => $term->term_id,
80 'text' => $term->name,
81 );
82 }
83 break;
84 case 'wp_users':
85
86 $search = ! empty($_REQUEST['search']) ? sanitize_text_field($_REQUEST['search']) : '';
87
88 $query = get_users([
89 'search' => '*' . $search . '*',
90 'search_columns' => ['user_email', 'user_login', 'user_nicename', 'display_name'],
91 'fields' => ['ID', 'user_email', 'user_login'],
92 'number' => 1000
93 ]);
94
95 foreach ($query as $user) {
96 $results['results'][] = array(
97 'id' => $user->ID,
98 'text' => sprintf('%s (%s)', $user->user_login, $user->user_email),
99 );
100 }
101 break;
102 }
103
104 wp_send_json($results, 200);
105 }
106
107 /**
108 * @param string|array $post_type
109 * @param array $args
110 *
111 * @return int[]|\WP_Post[]
112 */
113 public static function post_type_query($post_type, $args = [])
114 {
115 $default_args = [
116 'numberposts' => 50,
117 'post_type' => $post_type
118 ];
119
120 return get_posts(array_filter(wp_parse_args($args, $default_args)));
121 }
122
123 public function taxonomy_query($taxonomy, $args = [])
124 {
125 $args = wp_parse_args($args, array(
126 'hide_empty' => false,
127 'number' => 50,
128 'taxonomy' => $taxonomy,
129 ));
130
131 return get_terms($args);
132 }
133
134 public static function get_instance()
135 {
136 static $instance = null;
137
138 if (is_null($instance)) {
139 $instance = new self();
140 }
141
142 return $instance;
143 }
144 }
145