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:
35
Shared/Infrastructure/Services/UserVisibilityHelper.php
Normal file
35
Shared/Infrastructure/Services/UserVisibilityHelper.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace ROITheme\Shared\Infrastructure\Services;
|
||||
|
||||
/**
|
||||
* Helper para verificar visibilidad basada en estado de autenticación del usuario.
|
||||
*
|
||||
* Similar a PageVisibilityHelper, proporciona método estático para evaluar
|
||||
* si un componente debe ocultarse para usuarios logueados.
|
||||
*
|
||||
* @package ROITheme\Shared\Infrastructure\Services
|
||||
* @since 1.0.0
|
||||
*/
|
||||
final class UserVisibilityHelper
|
||||
{
|
||||
/**
|
||||
* Verifica si el componente debe mostrarse según estado de login.
|
||||
*
|
||||
* @param array $visibilityData Datos del grupo 'visibility' del componente
|
||||
* @return bool true si debe mostrarse, false si debe ocultarse
|
||||
*/
|
||||
public static function shouldShowForUser(array $visibilityData): bool
|
||||
{
|
||||
$hideForLoggedIn = $visibilityData['hide_for_logged_in'] ?? false;
|
||||
|
||||
// Si la opción está activada Y el usuario está logueado, ocultar
|
||||
if ($hideForLoggedIn && is_user_logged_in()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user