PluginProbe
bBlocks – Essential Gutenberg Blocks & Patterns Collection / 2.1.1
bBlocks – Essential Gutenberg Blocks & Patterns Collection v2.1.1
2.1.6 2.1.5 2.1.4 2.1.3 2.1.2 2.1.1 2.1.0 2.0.43 2.0.42 2.0.41 2.0.40 2.0.39 2.0.38 trunk 1.0 1.1 1.2 1.3 1.4 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 All 106 releases
b-blocks / includes / blocks / form / Sanitizer.php

Sanitizer.php in bBlocks – Essential Gutenberg Blocks & Patterns Collection 2.1.1, at includes/blocks/form/Sanitizer.php

61 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 if ( ! defined( 'ABSPATH' ) ) {
4 exit;
5 }
6
7 class BBlocksSanitizer {
8 public static function sanitize( $schema, $data ) {
9 $response_payload = array();
10 foreach ( $schema as $key => $type ) {
11 if ( isset( $data[ $key ] ) ) {
12 switch ( $type ) {
13 case 'integer':
14 $response_payload[ $key ] = (int) absint( sanitize_text_field( $data[ $key ] ) );
15 break;
16 case 'string':
17 $response_payload[ $key ] = (string) sanitize_text_field( $data[ $key ] );
18 break;
19 case 'url':
20 $response_payload[ $key ] = esc_url_raw( $data[ $key ] );
21 break;
22 case 'email':
23 $response_payload[ $key ] = sanitize_email( $data[ $key ] );
24 break;
25 case 'textarea':
26 $response_payload[ $key ] = sanitize_textarea_field( $data[ $key ] );
27 break;
28 case 'boolean':
29 $response_payload[ $key ] = self::checkbox( $data[ $key ] );
30 break;
31 default:
32 $response_payload[ $key ] = sanitize_text_field( $data[ $key ] );
33 break;
34 }//end switch
35 }//end if
36 }//end foreach
37 return $response_payload;
38 }
39
40
41 public static function sanitize_array( $array_data ) {
42 $array_data = is_array( $array_data ) ? $array_data : json_decode( stripslashes( $array_data ) );
43 $boolean = [ 'true', 'false', '1', '0' ];
44 if ( is_array( $array_data ) ) {
45 foreach ( $array_data as $key => &$value ) {
46 if ( is_array( $value ) ) {
47 $value = self::sanitize_array( $value );
48 } else {
49 $value = in_array( $value, $boolean, true ) || is_bool( $value ) ? self::checkbox( $value ) : sanitize_text_field( $value );
50 }
51 }
52 }
53 return $array_data;
54 }
55
56
57 public static function checkbox( $boolean ) {
58 return (bool) filter_var( sanitize_text_field( $boolean ), FILTER_VALIDATE_BOOLEAN );
59 }
60 }
61