From f35b60ed4e752773cd2351204420a0cb6f030139 Mon Sep 17 00:00:00 2001 From: FrankZamora Date: Wed, 26 Nov 2025 22:06:42 -0600 Subject: [PATCH] feat(admin): Add Google AdSense Auto Ads support to theme-settings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add adsense group to theme-settings.json schema (v1.2.0) - Add adsense_publisher_id and adsense_auto_ads fields - Add AdSense card UI in ThemeSettingsFormBuilder - Add field mappings in ThemeSettingsFieldMapper - Add renderAdSenseAutoAds() method in ThemeSettingsRenderer - Inject AdSense script in wp_head when configured 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../FieldMapping/ThemeSettingsFieldMapper.php | 4 +++ .../Ui/ThemeSettingsFormBuilder.php | 35 ++++++++++++++++-- .../Ui/ThemeSettingsRenderer.php | 36 +++++++++++++++++++ schemas/theme-settings.json | 26 ++++++++++++-- 4 files changed, 95 insertions(+), 6 deletions(-) diff --git a/Admin/ThemeSettings/Infrastructure/FieldMapping/ThemeSettingsFieldMapper.php b/Admin/ThemeSettings/Infrastructure/FieldMapping/ThemeSettingsFieldMapper.php index 64a2fc5a..a57312b5 100644 --- a/Admin/ThemeSettings/Infrastructure/FieldMapping/ThemeSettingsFieldMapper.php +++ b/Admin/ThemeSettings/Infrastructure/FieldMapping/ThemeSettingsFieldMapper.php @@ -28,6 +28,10 @@ final class ThemeSettingsFieldMapper implements FieldMapperInterface 'themeSettingsGaTrackingId' => ['group' => 'analytics', 'attribute' => 'ga_tracking_id'], 'themeSettingsGaAnonymizeIp' => ['group' => 'analytics', 'attribute' => 'ga_anonymize_ip'], + // AdSense + 'themeSettingsAdsensePublisherId' => ['group' => 'adsense', 'attribute' => 'adsense_publisher_id'], + 'themeSettingsAdsenseAutoAds' => ['group' => 'adsense', 'attribute' => 'adsense_auto_ads'], + // Custom Code 'themeSettingsCustomCss' => ['group' => 'custom_code', 'attribute' => 'custom_css'], 'themeSettingsCustomJsHeader' => ['group' => 'custom_code', 'attribute' => 'custom_js_header'], diff --git a/Admin/ThemeSettings/Infrastructure/Ui/ThemeSettingsFormBuilder.php b/Admin/ThemeSettings/Infrastructure/Ui/ThemeSettingsFormBuilder.php index aff3f5ef..ba0f3238 100644 --- a/Admin/ThemeSettings/Infrastructure/Ui/ThemeSettingsFormBuilder.php +++ b/Admin/ThemeSettings/Infrastructure/Ui/ThemeSettingsFormBuilder.php @@ -9,7 +9,7 @@ use ROITheme\Admin\Infrastructure\Ui\AdminDashboardRenderer; * FormBuilder para Theme Settings * * RESPONSABILIDAD: Generar formulario de configuraciones globales del tema - * (analytics, codigo personalizado) + * (analytics, adsense, codigo personalizado) * * NOTA: Logo/branding se gestiona desde el componente navbar * @@ -29,9 +29,10 @@ final class ThemeSettingsFormBuilder $html .= '
'; - // Columna izquierda - Analytics + // Columna izquierda - Analytics + AdSense $html .= '
'; $html .= $this->buildAnalyticsGroup($componentId); + $html .= $this->buildAdSenseGroup($componentId); $html .= '
'; // Columna derecha - Custom Code @@ -55,7 +56,7 @@ final class ThemeSettingsFormBuilder $html .= ' Configuraciones Globales del Tema'; $html .= ' '; $html .= '

'; - $html .= ' Analytics y Codigo Personalizado'; + $html .= ' Analytics, AdSense y Codigo Personalizado'; $html .= '

'; $html .= '
'; $html .= '