Sanitizer::SANITIZE_EMAIL, 'address' => Sanitizer::SANITIZE_TEXTAREA_FIELD, 'file' => Sanitizer::SANITIZE_URL, 'url' => Sanitizer::SANITIZE_URL, 'number' => Sanitizer::FLOATVAL, 'textarea' => Sanitizer::SANITIZE_TEXTAREA_FIELD, 'text' => SANITIZER::SANITIZE_TEXT_FIELD, 'html_attr' => Sanitizer::WP_KSES_POST, 'provider' => SANITIZER::SANITIZE_TEXT_FIELD, 'validate' => SANITIZER::SANITIZE_TEXT_FIELD, ]; } public static function sanitize(array $data, ?array $sanitizeMap = null): array { $sanitizeMap = $sanitizeMap ?? Sanitizer::getDefaultSanitizerMap(); $sanitizedData = []; foreach ($data as $key => $value) { if (is_array($value)) { $sanitizedData[$key] = self::sanitize($value, $sanitizeMap); continue; } $sanitizeFunction = $sanitizeMap[$key] ?? Sanitizer::SANITIZE_TEXT_FIELD; if (is_callable($sanitizeFunction) || (is_string($sanitizeFunction) && function_exists($sanitizeFunction))) { $sanitizedData[$key] = $sanitizeFunction($value); } else { $sanitizedData[$key] = sanitize_text_field($value); } } return $sanitizedData; } }