Files
roi-theme/wp-content/themes/apus-theme/inc/sanitize-functions.php
FrankZamora a0633f4000 Fix: Consolidar funciones sanitizadoras para resolver error fatal de redeclaración
Resuelve issue #21 y sub-issue #22

PROBLEMA:
- La función apus_sanitize_checkbox() estaba definida en 4 archivos diferentes
- Causaba error fatal: "Cannot redeclare apus_sanitize_checkbox()"
- Impedía activación del tema en staging

SOLUCIÓN:
1. Crear inc/sanitize-functions.php con funciones centralizadas
2. Incluir sanitize-functions.php al inicio de functions.php
3. Eliminar definiciones duplicadas en:
   - inc/customizer-fonts.php (líneas 83-93)
   - inc/adsense-delay.php (líneas 161-163)
   - inc/admin/options-api.php (líneas 240-242)
   - inc/critical-css.php (líneas 361-363)

ARCHIVOS MODIFICADOS:
- inc/sanitize-functions.php (nuevo)
- functions.php (incluir sanitize-functions.php)
- inc/customizer-fonts.php (eliminar duplicados)
- inc/adsense-delay.php (eliminar duplicados)
- inc/admin/options-api.php (eliminar duplicados)
- inc/critical-css.php (eliminar duplicados)

FUNCIONES CONSOLIDADAS:
- apus_sanitize_checkbox($input): Sanitiza valores boolean
- apus_sanitize_select($input, $setting): Sanitiza valores select

VERIFICACIÓN:
 Sintaxis PHP correcta en todos los archivos
 No hay redeclaraciones de funciones
 Funciones protegidas con function_exists()

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 10:41:18 -06:00

53 lines
1.5 KiB
PHP

<?php
/**
* Funciones de sanitización para el tema APUS
*
* Este archivo centraliza todas las funciones de sanitización utilizadas
* en el Customizer, panel de opciones y demás componentes del tema.
*
* @package APUS_Theme
* @since 1.0.0
*/
// Exit if accessed directly
if (!defined('ABSPATH')) {
exit;
}
if (!function_exists('apus_sanitize_checkbox')) {
/**
* Sanitiza valores de checkbox
*
* Convierte cualquier valor a boolean para asegurar que solo
* se guarden valores true/false en la base de datos.
*
* @param mixed $input Valor a sanitizar
* @return bool Valor sanitizado como boolean
* @since 1.0.0
*/
function apus_sanitize_checkbox($input) {
return (bool) $input;
}
}
if (!function_exists('apus_sanitize_select')) {
/**
* Sanitiza valores de select
*
* Verifica que el valor seleccionado existe en las opciones disponibles.
* Si no existe, retorna el valor por defecto del setting.
*
* @param mixed $input Valor a sanitizar
* @param object $setting Setting object del Customizer
* @return string Valor sanitizado
* @since 1.0.0
*/
function apus_sanitize_select($input, $setting) {
// Asegurar que el setting tiene las opciones disponibles
$choices = $setting->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);
}
}