Fix Admin Panel: Resolver error de nonce y validación de URLs
Dos fixes críticos para el admin panel del tema: 1. **Fix error de nonce en AJAX** - Cambiar de wp_verify_nonce() a check_ajax_referer() - check_ajax_referer() es el método recomendado por WordPress para AJAX - Aplicado en ajax_get_settings() y ajax_save_settings() - El nonce ahora se valida correctamente 2. **Fix validación de URLs relativas** - Aceptar URLs relativas que empiezan con / (ej: /catalogo) - filter_var() con FILTER_VALIDATE_URL rechazaba URLs relativas - Agregada validación adicional con regex para paths relativos - Mantiene validación para URLs completas Archivos modificados: - admin-panel/includes/class-settings-manager.php - admin-panel/includes/class-validator.php Issue: #144 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -66,9 +66,15 @@ class APUS_Validator {
|
||||
$errors[] = 'El texto del enlace no puede exceder 50 caracteres';
|
||||
}
|
||||
|
||||
// Validar link_url
|
||||
if (!empty($top_bar['link_url']) && !filter_var($top_bar['link_url'], FILTER_VALIDATE_URL)) {
|
||||
$errors[] = 'La URL del enlace no es válida';
|
||||
// Validar link_url (acepta URLs completas y relativas que empiecen con /)
|
||||
if (!empty($top_bar['link_url'])) {
|
||||
$url = $top_bar['link_url'];
|
||||
$is_valid_url = filter_var($url, FILTER_VALIDATE_URL) !== false;
|
||||
$is_relative_url = preg_match('/^\//', $url);
|
||||
|
||||
if (!$is_valid_url && !$is_relative_url) {
|
||||
$errors[] = 'La URL del enlace no es válida';
|
||||
}
|
||||
}
|
||||
|
||||
// Validar link_target
|
||||
|
||||
Reference in New Issue
Block a user