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