manager->get_control($setting->id)->choices; // Retornar el input si es una opción válida, de lo contrario retornar el default return (array_key_exists($input, $choices) ? $input : $setting->default); } } if (!function_exists('roi_sanitize_css')) { /** * Sanitiza CSS * * Remueve scripts y código PHP potencialmente peligroso del CSS personalizado. * * @param string $css El string CSS a sanitizar * @return string CSS sanitizado * @since 1.0.0 */ function roi_sanitize_css($css) { // Remove #is', '', $css); // Remove potential PHP code $css = preg_replace('#<\?php(.*?)\?>#is', '', $css); return wp_strip_all_tags($css); } } if (!function_exists('roi_sanitize_js')) { /** * Sanitiza JavaScript * * Remueve etiquetas script externas y código PHP del JavaScript personalizado. * * @param string $js El string JavaScript a sanitizar * @return string JavaScript sanitizado * @since 1.0.0 */ function roi_sanitize_js($js) { // Remove #is', '$2', $js); // Remove potential PHP code $js = preg_replace('#<\?php(.*?)\?>#is', '', $js); return trim($js); } } if (!function_exists('roi_sanitize_integer')) { /** * Sanitiza valores enteros * * Convierte el valor a un entero absoluto (no negativo). * * @param mixed $input Valor a sanitizar * @return int Valor sanitizado como entero * @since 1.0.0 */ function roi_sanitize_integer($input) { return absint($input); } } if (!function_exists('roi_sanitize_text')) { /** * Sanitiza campos de texto * * Remueve etiquetas HTML y caracteres especiales del texto. * * @param string $input Valor a sanitizar * @return string Texto sanitizado * @since 1.0.0 */ function roi_sanitize_text($input) { return sanitize_text_field($input); } } if (!function_exists('roi_sanitize_url')) { /** * Sanitiza URLs * * Valida y sanitiza URLs para asegurar que son válidas. * * @param string $input URL a sanitizar * @return string URL sanitizada * @since 1.0.0 */ function roi_sanitize_url($input) { return esc_url_raw($input); } } if (!function_exists('roi_sanitize_html')) { /** * Sanitiza contenido HTML * * Permite etiquetas HTML seguras, removiendo scripts y código peligroso. * * @param string $input Contenido HTML a sanitizar * @return string HTML sanitizado * @since 1.0.0 */ function roi_sanitize_html($input) { return wp_kses_post($input); } }