$value) { $sanitizedHeaderOptions->{sanitize_key($key)} = strpos($key, 'color') !== false || strpos($key, 'background') !== false ? sanitize_hex_color($value) : sanitize_key($value); } return $sanitizedHeaderOptions; } static function sanitize_content($content) { return array_map(function ($row) { return array_map(function ($cell) { $cellContent = json_decode( str_replace("\\", "", str_replace('\\\\\\"', """, str_replace('\\n', ' ', $cell)))); $type = isset($cellContent->type) ? sanitize_text_field($cellContent->type) : null; $value = isset($cellContent->value) ? $cellContent->value : null; if (isset($value)) { if ($type === AFES_Constants::AFFILIATION) { $value = AFES_Utils::sanitize_links(json_decode( str_replace("\\", "", str_replace('\\\\\\"', """, str_replace('\\\\\\\\\\\\\\"', '', str_replace('\\n', ' ', $cell)))))->value); } else { $value = str_replace( '"', """, wp_kses(str_replace(""", '"', $value), wp_kses_allowed_html('post'))); } } return (object)[ 'type' => $type, 'value' => $value, ]; }, $row); }, $content); } static function sanitize_links($linksString) { $links = json_decode(str_replace('"', '"', $linksString)); if ($links == null || empty($links)) { return $linksString; } $sanitizedLinks = array(); foreach ($links as $link) { $sanitizedLink = array(); foreach($link as $key => $value) { $key = sanitize_text_field($key); if ($key === 'id') { $value = intval(sanitize_text_field($value)); } else if ($key === 'url') { $value = esc_url_raw(str_replace('[', '', str_replace(']', '', preg_replace('/\[[\s\S]+?]/', '', $value)))); } else if (in_array($key, array('color', 'background'))) { $value = sanitize_hex_color($value); } else { $value = sanitize_text_field($value); } $sanitizedLink[$key] = $value; } array_push($sanitizedLinks, (object) $sanitizedLink); } return str_replace('"', '"', json_encode($sanitizedLinks)); } static function sanitize_parameters($parameters) { $sanitizedParameters = new stdClass(); foreach (json_decode(str_replace('\\', '', $parameters)) as $key => $value) { $sanitizedParameters->{sanitize_key($key)} = sanitize_text_field($value); } return $sanitizedParameters; } }