PluginProbe
Passster – Password Protect Pages and Content / 4.3.17
Passster – Password Protect Pages and Content v4.3.17
4.3.17 4.3.16 4.3.15 4.3.14 4.3.12 4.3.13 4.3.11 4.3.10 4.3.9 4.3.8 4.3.7 4.3.6 4.3.5 trunk 3.5.4 3.5.5.2 3.5.5.8 3.5.5.9 4.0 4.1.4 4.2.10 4.2.11 4.2.12 4.2.13 4.2.14 All 49 releases
← All changes | inc/admin/inc/class-ps-meta.php +57 -45 4.2.14 → 4.3.17 View file →
@@ -42,65 +42,65 @@
42 42 public function register_meta_fields() {
43 43 register_meta( 'post', 'passster_activate_protection', array(
44 44 'single' => true,
45 45 'type' => 'boolean',
46 - 'show_in_rest' => true,
46 + 'show_in_rest' => false,
47 47 'default' => false,
48 48 ) );
49 49 register_meta( 'post', 'passster_protect_child_pages', array(
50 50 'single' => true,
51 - 'show_in_rest' => true,
51 + 'show_in_rest' => false,
52 52 ) );
53 53 register_meta( 'post', 'passster_protection_type', array(
54 54 'single' => true,
55 - 'show_in_rest' => true,
55 + 'show_in_rest' => false,
56 56 'default' => 'password',
57 57 ) );
58 58 register_meta( 'post', 'passster_password', array(
59 59 'single' => true,
60 - 'show_in_rest' => true,
60 + 'show_in_rest' => false,
61 61 ) );
62 62 register_meta( 'post', 'passster_activate_overwrite_defaults', array(
63 63 'single' => true,
64 - 'show_in_rest' => true,
64 + 'show_in_rest' => false,
65 65 ) );
66 66 register_meta( 'post', 'passster_headline', array(
67 67 'single' => true,
68 - 'show_in_rest' => true,
68 + 'show_in_rest' => false,
69 69 ) );
70 70 register_meta( 'post', 'passster_instruction', array(
71 71 'single' => true,
72 - 'show_in_rest' => true,
72 + 'show_in_rest' => false,
73 73 ) );
74 74 register_meta( 'post', 'passster_placeholder', array(
75 75 'single' => true,
76 - 'show_in_rest' => true,
76 + 'show_in_rest' => false,
77 77 ) );
78 78 register_meta( 'post', 'passster_button', array(
79 79 'single' => true,
80 - 'show_in_rest' => true,
80 + 'show_in_rest' => false,
81 81 ) );
82 82 register_meta( 'post', 'passster_id', array(
83 83 'single' => true,
84 - 'show_in_rest' => true,
84 + 'show_in_rest' => false,
85 85 ) );
86 86 register_meta( 'post', 'passster_activate_misc_settings', array(
87 87 'single' => true,
88 - 'show_in_rest' => true,
88 + 'show_in_rest' => false,
89 89 ) );
90 90 register_meta( 'post', 'passster_redirect_url', array(
91 91 'single' => true,
92 - 'show_in_rest' => true,
92 + 'show_in_rest' => false,
93 93 'default' => '',
94 94 ) );
95 95 register_meta( 'post', 'passster_hide', array(
96 96 'single' => true,
97 - 'show_in_rest' => true,
97 + 'show_in_rest' => false,
98 98 'default' => 'no',
99 99 ) );
100 100 register_meta( 'post', 'passster_area_shortcode', array(
101 101 'single' => true,
102 - 'show_in_rest' => true,
102 + 'show_in_rest' => false,
103 103 ) );
104 104 }
105 105
106 106 /**
@@ -109,11 +109,15 @@
109 109 * @return void
110 110 */
111 111 public function add_meta_scripts() {
112 112 $screen = get_current_screen();
113 - if ( $screen->base !== 'post' ) {
113 + if ( 'post' !== $screen->base ) {
114 114 return;
115 115 }
116 + $action = ( isset( $_GET['action'] ) ? sanitize_text_field( wp_unslash( $_GET['action'] ) ) : '' );
117 + if ( 'elementor' === $action ) {
118 + return;
119 + }
116 120 wp_enqueue_script(
117 121 'passster-settings',
118 122 PASSSTER_URL . '/inc/admin/build/index.js',
119 123 array(
@@ -155,20 +159,25 @@
155 159 // Optionally adding some settings.
156 160 if ( isset( $options['password_length'] ) ) {
157 161 $args['password_length'] = esc_html( $options['password_length'] );
158 162 } else {
159 - $args['password_length'] = 6;
163 + $args['password_length'] = 12;
160 164 }
161 165 if ( isset( $options['include_uppercase'] ) ) {
162 166 $args['include_uppercase'] = esc_html( $options['include_uppercase'] );
163 167 } else {
164 - $args['include_uppercase'] = false;
168 + $args['include_uppercase'] = true;
165 169 }
166 170 if ( isset( $options['include_numbers'] ) ) {
167 171 $args['include_numbers'] = esc_html( $options['include_numbers'] );
168 172 } else {
169 - $args['include_numbers'] = false;
173 + $args['include_numbers'] = true;
170 174 }
175 + if ( isset( $options['include_symbols'] ) ) {
176 + $args['include_symbols'] = esc_html( $options['include_symbols'] );
177 + } else {
178 + $args['include_symbols'] = true;
179 + }
171 180 if ( isset( $options['global_protection_id'] ) ) {
172 181 $args['global_protection_id'] = esc_html( $options['global_protection_id'] );
173 182 }
174 183 wp_localize_script( 'passster-settings', 'options', $args );
@@ -206,9 +215,9 @@
206 215 * @return void
207 216 */
208 217 public function render_settings() {
209 218 ?>
210 - <div id="passster-metabox"></div>
219 + <div id="passster-metabox"></div>
211 220 <?php
212 221 }
213 222
214 223 /**
@@ -218,9 +227,9 @@
218 227 */
219 228 public function rest_api_init() {
220 229 register_rest_route( 'passster/v1', '/meta', array(
221 230 'methods' => 'POST',
222 - 'callback' => [$this, 'save_meta'],
231 + 'callback' => array($this, 'save_meta'),
223 232 'permission_callback' => function () {
224 233 return current_user_can( apply_filters( 'passster_user_capability', 'manage_options' ) );
225 234 },
226 235 ) );
@@ -225,9 +234,9 @@
225 234 },
226 235 ) );
227 236 register_rest_route( 'passster/v1', '/meta', array(
228 237 'methods' => 'GET',
229 - 'callback' => [$this, 'get_meta'],
238 + 'callback' => array($this, 'get_meta'),
230 239 'permission_callback' => function () {
231 240 return current_user_can( apply_filters( 'passster_user_capability', 'manage_options' ) );
232 241 },
233 242 ) );
@@ -232,9 +241,9 @@
232 241 },
233 242 ) );
234 243 register_rest_route( 'passster/v1', '/areas', array(
235 244 'methods' => 'GET',
236 - 'callback' => [$this, 'get_areas'],
245 + 'callback' => array($this, 'get_areas'),
237 246 'permission_callback' => function () {
238 247 return current_user_can( apply_filters( 'passster_user_capability', 'manage_options' ) );
239 248 },
240 249 ) );
@@ -249,23 +258,26 @@
249 258 */
250 259 public function save_meta( object $request ) {
251 260 if ( $request->get_params() ) {
252 261 $params = $request->get_params();
253 - $post_id = esc_html( $params['post_id'] );
254 - $meta_key = esc_html( $params['meta_key'] );
262 + $post_id = absint( $params['post_id'] );
263 + $meta_key = sanitize_key( $params['meta_key'] );
255 264 // Check which action to perform.
256 265 if ( isset( $params['meta_value'] ) ) {
257 - $meta_value = sanitize_meta( $meta_key, $params['meta_value'], 'post' );
266 + // Allow HTML in instruction field (links, basic formatting)
267 + if ( 'passster_instruction' === $meta_key ) {
268 + $meta_value = wp_kses_post( $params['meta_value'] );
269 + } else {
270 + $meta_value = sanitize_meta( $meta_key, $params['meta_value'], 'post' );
271 + }
258 272 update_post_meta( $post_id, $meta_key, $meta_value );
259 - } else {
260 - if ( isset( $params['delete'] ) ) {
261 - delete_post_meta( $post_id, $meta_key );
262 - }
273 + } elseif ( isset( $params['delete'] ) ) {
274 + delete_post_meta( $post_id, $meta_key );
263 275 }
264 - return wp_json_encode( [
265 - "status" => 200,
266 - "message" => "Ok",
267 - ] );
276 + return wp_json_encode( array(
277 + 'status' => 200,
278 + 'message' => 'Ok',
279 + ) );
268 280 }
269 281 }
270 282
271 283 /**
@@ -277,23 +289,23 @@
277 289 */
278 290 public function get_meta( object $request ) {
279 291 if ( $request->get_params() ) {
280 292 $params = $request->get_params();
281 - $post_id = esc_html( $params['post_id'] );
282 - $meta_key = esc_html( $params['meta_key'] );
293 + $post_id = absint( $params['post_id'] );
294 + $meta_key = sanitize_key( $params['meta_key'] );
283 295 $meta = get_post_meta( $post_id, $meta_key, true );
284 296 if ( !empty( $meta ) ) {
285 - return wp_json_encode( [
286 - "status" => 200,
287 - "message" => "Ok",
288 - "data" => $meta,
289 - ] );
297 + return wp_json_encode( array(
298 + 'status' => 200,
299 + 'message' => 'Ok',
300 + 'data' => $meta,
301 + ) );
290 302 } else {
291 - return wp_json_encode( [
292 - "status" => 400,
293 - "message" => "Empty value",
294 - "data" => '',
295 - ] );
303 + return wp_json_encode( array(
304 + 'status' => 400,
305 + 'message' => 'Empty value',
306 + 'data' => '',
307 + ) );
296 308 }
297 309 }
298 310 }
299 311