feat(adsense): agregar opcion para ocultar anuncios a usuarios logueados

- Nuevo campo hide_for_logged_in en schema visibility group
- Switch en panel de administracion con icono bi-person-lock
- Mapeo en FieldMapper para persistencia
- Validacion en roi_render_ad_slot, roi_render_rail_ads,
  roi_enqueue_adsense_script y roi_inject_content_ads
- No carga script ni muestra ads si usuario tiene sesion activa

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
FrankZamora
2025-11-28 10:31:49 -06:00
parent e3d17db5ea
commit 4d5cc1a58c
4 changed files with 50 additions and 0 deletions

View File

@@ -37,6 +37,11 @@ function roi_render_ad_slot(string $location): string
return '';
}
// Verificar si ocultar para usuarios logueados
if (roi_should_hide_for_logged_in($settings)) {
return '';
}
// Verificar exclusiones
if (roi_is_ad_excluded($settings)) {
return '';
@@ -55,6 +60,21 @@ function roi_render_ad_slot(string $location): string
}
}
/**
* Verifica si se deben ocultar anuncios para usuarios logueados
*/
function roi_should_hide_for_logged_in(array $settings): bool
{
// Si la opcion esta activada Y el usuario esta logueado, ocultar ads
$hideForLoggedIn = $settings['visibility']['hide_for_logged_in'] ?? false;
if ($hideForLoggedIn && is_user_logged_in()) {
return true;
}
return false;
}
/**
* Verifica si el contenido actual esta excluido
*/
@@ -108,6 +128,11 @@ function roi_render_rail_ads(): string
return '';
}
// Verificar si ocultar para usuarios logueados
if (roi_should_hide_for_logged_in($settings)) {
return '';
}
// Verificar exclusiones
if (roi_is_ad_excluded($settings)) {
return '';
@@ -153,6 +178,11 @@ function roi_enqueue_adsense_script(): void
return;
}
// Verificar si ocultar para usuarios logueados
if (roi_should_hide_for_logged_in($settings)) {
return;
}
$publisherId = $settings['content']['publisher_id'] ?? '';
if (empty($publisherId)) {
return;
@@ -201,6 +231,11 @@ function roi_inject_content_ads(string $content): string
return $content;
}
// Verificar si ocultar para usuarios logueados
if (roi_should_hide_for_logged_in($settings)) {
return $content;
}
// Verificar exclusiones
if (roi_is_ad_excluded($settings)) {
return $content;