/** * Sanitize a variable of unknown type. * * Recursive helper function to sanitize a variable from input, * which could also be a multidimensional array of variable depth. * * @since 3.0.0 * * @param mixed $var Variable to sanitize. * @param string $func Function to use for sanitizing text strings (default 'sanitize_text_field') * * @return array|string Sanitized variable */ function simcal_sanitize_input($var, $func = 'sanitize_text_field') { if (is_null($var)) { return ''; } if (is_bool($var)) { if ($var === true) { return 'yes'; } else { return 'no'; } } if (is_string($var) || is_numeric($var)) { $func = is_string($func) && function_exists($func) ? $func : 'sanitize_text_field'; return call_user_func($func, trim(strval($var))); } if (is_object($var)) { $var = (array) $var; } if (is_array($var)) { $array = array(); foreach ($var as $k => $v) { $array[$k] = simcal_sanitize_input($v); } return $array; } return ''; }
/** * Register setting callback. * * Callback function for sanitizing and validating options before they are updated. * * @since 3.0.0 * * @param array $settings Settings inputs. * * @return array Sanitized settings. */ public function validate($settings) { $sanitized = ''; if (is_array($settings)) { foreach ($settings as $k => $v) { $sanitized[$k] = simcal_sanitize_input($v); } } else { $sanitized = simcal_sanitize_input($settings); } return $sanitized; }