feat(visibility): añadir opción "Ocultar para usuarios logueados" (Plan 99.16)
- Crear UserVisibilityHelper centralizado en Shared/Infrastructure/Services - Añadir campo hide_for_logged_in en schemas de 4 componentes - Integrar validación en Renderers: TopBar, LetsTalk, CTASidebar, CTAPost - Añadir checkbox UI en FormBuilders de los 4 componentes - Refactorizar adsense-placement.php para usar el helper centralizado - Deprecar función roi_should_hide_for_logged_in() (backwards compatible) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -26,6 +26,7 @@ if (!defined('ABSPATH')) {
|
||||
}
|
||||
|
||||
use ROITheme\Shared\Infrastructure\Services\PageVisibilityHelper;
|
||||
use ROITheme\Shared\Infrastructure\Services\UserVisibilityHelper;
|
||||
|
||||
/**
|
||||
* Renderiza un slot de anuncio en una ubicacion
|
||||
@@ -49,8 +50,8 @@ function roi_render_ad_slot(string $location): string
|
||||
return '';
|
||||
}
|
||||
|
||||
// Verificar si ocultar para usuarios logueados
|
||||
if (roi_should_hide_for_logged_in($settings)) {
|
||||
// Verificar visibilidad por usuario logueado (Plan 99.16)
|
||||
if (!UserVisibilityHelper::shouldShowForUser($settings['visibility'] ?? [])) {
|
||||
return '';
|
||||
}
|
||||
|
||||
@@ -79,17 +80,17 @@ function roi_render_ad_slot(string $location): string
|
||||
|
||||
/**
|
||||
* Verifica si se deben ocultar anuncios para usuarios logueados
|
||||
*
|
||||
* @deprecated Plan 99.16: Usar UserVisibilityHelper::shouldShowForUser() en su lugar.
|
||||
* Esta función se mantiene para compatibilidad hacia atrás.
|
||||
*
|
||||
* @param array $settings Configuración del componente
|
||||
* @return bool true si se debe ocultar, false si se debe mostrar
|
||||
*/
|
||||
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;
|
||||
// Delegar a UserVisibilityHelper (Plan 99.16)
|
||||
return !UserVisibilityHelper::shouldShowForUser($settings['visibility'] ?? []);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -145,8 +146,8 @@ function roi_render_rail_ads(): string
|
||||
return '';
|
||||
}
|
||||
|
||||
// Verificar si ocultar para usuarios logueados
|
||||
if (roi_should_hide_for_logged_in($settings)) {
|
||||
// Verificar visibilidad por usuario logueado (Plan 99.16)
|
||||
if (!UserVisibilityHelper::shouldShowForUser($settings['visibility'] ?? [])) {
|
||||
return '';
|
||||
}
|
||||
|
||||
@@ -200,8 +201,8 @@ function roi_enqueue_adsense_script(): void
|
||||
return;
|
||||
}
|
||||
|
||||
// Verificar si ocultar para usuarios logueados
|
||||
if (roi_should_hide_for_logged_in($settings)) {
|
||||
// Verificar visibilidad por usuario logueado (Plan 99.16)
|
||||
if (!UserVisibilityHelper::shouldShowForUser($settings['visibility'] ?? [])) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -258,8 +259,8 @@ function roi_inject_content_ads(string $content): string
|
||||
return $content;
|
||||
}
|
||||
|
||||
// Verificar si ocultar para usuarios logueados
|
||||
if (roi_should_hide_for_logged_in($settings)) {
|
||||
// Verificar visibilidad por usuario logueado (Plan 99.16)
|
||||
if (!UserVisibilityHelper::shouldShowForUser($settings['visibility'] ?? [])) {
|
||||
return $content;
|
||||
}
|
||||
|
||||
@@ -463,8 +464,8 @@ function roi_render_anchor_ads(): string
|
||||
return '';
|
||||
}
|
||||
|
||||
// Verificar si ocultar para usuarios logueados
|
||||
if (roi_should_hide_for_logged_in($settings)) {
|
||||
// Verificar visibilidad por usuario logueado (Plan 99.16)
|
||||
if (!UserVisibilityHelper::shouldShowForUser($settings['visibility'] ?? [])) {
|
||||
return '';
|
||||
}
|
||||
|
||||
@@ -512,8 +513,8 @@ function roi_render_vignette_ad(): string
|
||||
return '';
|
||||
}
|
||||
|
||||
// Verificar si ocultar para usuarios logueados
|
||||
if (roi_should_hide_for_logged_in($settings)) {
|
||||
// Verificar visibilidad por usuario logueado (Plan 99.16)
|
||||
if (!UserVisibilityHelper::shouldShowForUser($settings['visibility'] ?? [])) {
|
||||
return '';
|
||||
}
|
||||
|
||||
@@ -583,8 +584,8 @@ function roi_enqueue_anchor_vignette_scripts(): void
|
||||
return;
|
||||
}
|
||||
|
||||
// Verificar si ocultar para usuarios logueados
|
||||
if (roi_should_hide_for_logged_in($settings)) {
|
||||
// Verificar visibilidad por usuario logueado (Plan 99.16)
|
||||
if (!UserVisibilityHelper::shouldShowForUser($settings['visibility'] ?? [])) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user