PluginProbe
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler / 1.6.4
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler v1.6.4
1.6.4 1.6.3 1.6.2 1.6.1 1.6.0 1.5.4 1.5.5 1.5.3 1.5.2 1.5.1 1.5.0 1.4.2 1.4.1 1.4.0 1.3.28 1.3.27 1.3.26 1.3.25 1.3.23 1.3.22 1.3.21 1.3.20 1.3.19 trunk 1.2.0 All 47 releases
fluent-cart / api / Sanitizer / Sanitizer.php

Sanitizer.php in FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler 1.6.4, at api/Sanitizer/Sanitizer.php

75 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace FluentCart\Api\Sanitizer;
4
5 class Sanitizer
6 {
7
8
9 public const SANITIZE_EMAIL = 'sanitize_email';
10 public const SANITIZE_FILE_NAME = 'sanitize_file_name';
11 public const SANITIZE_HEX_COLOR = 'sanitize_hex_color';
12 public const SANITIZE_HEX_COLOR_NO_HASH = 'sanitize_hex_color_no_hash';
13 public const SANITIZE_HTML_CLASS = 'sanitize_html_class';
14 public const SANITIZE_KEY = 'sanitize_key';
15 public const SANITIZE_META = 'sanitize_meta';
16 public const SANITIZE_MIME_TYPE = 'sanitize_mime_type';
17 public const SANITIZE_OPTION = 'sanitize_option';
18 public const SANITIZE_SQL_ORDER_BY = 'sanitize_sql_orderby';
19 public const SANITIZE_TERM = 'sanitize_term';
20 public const SANITIZE_TERM_FIELD = 'sanitize_term_field';
21 public const SANITIZE_TEXT_FIELD = 'sanitize_text_field';
22 public const SANITIZE_TEXTAREA_FIELD = 'sanitize_textarea_field';
23 public const SANITIZE_TITLE = 'sanitize_title';
24 public const SANITIZE_TITLE_FOR_QUERY = 'sanitize_title_for_query';
25 public const SANITIZE_TITLE_WITH_DASHES = 'sanitize_title_with_dashes';
26 public const SANITIZE_USER = 'sanitize_user';
27 public const SANITIZE_URL = 'sanitize_url';
28 public const WP_KSES = 'wp_kses';
29 public const WP_KSES_POST = 'wp_kses_post';
30
31 public const FLOATVAL = 'floatval';
32
33
34 public static function getDefaultSanitizerMap(): array
35 {
36 return [
37 'email' => Sanitizer::SANITIZE_EMAIL,
38 'address' => Sanitizer::SANITIZE_TEXTAREA_FIELD,
39 'file' => Sanitizer::SANITIZE_URL,
40 'url' => Sanitizer::SANITIZE_URL,
41 'number' => Sanitizer::FLOATVAL,
42 'textarea' => Sanitizer::SANITIZE_TEXTAREA_FIELD,
43 'text' => SANITIZER::SANITIZE_TEXT_FIELD,
44 'html_attr' => Sanitizer::WP_KSES_POST,
45 'provider' => SANITIZER::SANITIZE_TEXT_FIELD,
46 'validate' => SANITIZER::SANITIZE_TEXT_FIELD,
47 ];
48 }
49
50
51 public static function sanitize(array $data, ?array $sanitizeMap = null): array
52 {
53 $sanitizeMap = $sanitizeMap ?? Sanitizer::getDefaultSanitizerMap();
54 $sanitizedData = [];
55
56 foreach ($data as $key => $value) {
57 if (is_array($value)) {
58 $sanitizedData[$key] = self::sanitize($value, $sanitizeMap);
59 continue;
60 }
61
62 $sanitizeFunction = $sanitizeMap[$key] ?? Sanitizer::SANITIZE_TEXT_FIELD;
63
64 if (is_callable($sanitizeFunction) || (is_string($sanitizeFunction) && function_exists($sanitizeFunction))) {
65 $sanitizedData[$key] = $sanitizeFunction($value);
66 } else {
67 $sanitizedData[$key] = sanitize_text_field($value);
68 }
69 }
70
71 return $sanitizedData;
72 }
73
74
75 }