feat: Add Facebook Ads settings management with API integration and UI support

This commit is contained in:
2026-03-07 19:37:07 +01:00
parent 5dc2a89748
commit 9bca12a59a
7 changed files with 76 additions and 10 deletions

View File

@@ -198,6 +198,60 @@
</div>
</div>
<div class="row" style="margin-top: 25px;">
<div class="col-12">
<div class="settings-card">
<div class="settings-card-header">
<div class="settings-card-icon"><i class="fa-brands fa-facebook"></i></div>
<div>
<h3>Facebook Ads API</h3>
<small>Token dostępu i konfiguracja synchronizacji kampanii Facebook Ads</small>
</div>
</div>
<?php
$fb_last_error = \services\FacebookAdsApi::get_setting( 'facebook_ads_last_error' );
$fb_last_error_at_raw = \services\FacebookAdsApi::get_setting( 'facebook_ads_last_error_at' );
$fb_last_error_at = '';
if ( $fb_last_error_at_raw )
{
$fb_ts = strtotime( (string) $fb_last_error_at_raw );
if ( $fb_ts )
{
$fb_last_error_at = date( 'Y-m-d H:i:s', $fb_ts );
}
}
if ( $fb_last_error ): ?>
<div class="settings-alert-error">
<i class="fa-solid fa-triangle-exclamation"></i>
<div style="min-width:0;">
<div><strong>Ostatni błąd API:</strong></div>
<div><strong>Data wystąpienia:</strong> <?= htmlspecialchars( $fb_last_error_at !== '' ? $fb_last_error_at : 'Brak danych' ); ?></div>
<div style="margin-top:6px;white-space:pre-wrap;word-break:break-word;"><?= htmlspecialchars( $fb_last_error ); ?></div>
</div>
</div>
<?php endif; ?>
<form method="POST" id="facebook-ads-settings" action="/settings/save_facebook_ads">
<div class="settings-fields-grid">
<div class="settings-field">
<label for="facebook_ads_token">Access Token</label>
<div class="settings-input-wrap">
<input type="password" id="facebook_ads_token" name="facebook_ads_token" class="form-control" value="<?= htmlspecialchars( (string) \services\FacebookAdsApi::get_setting( 'facebook_ads_token' ) ); ?>" placeholder="EAAVtp..." />
<button type="button" class="settings-toggle-pw" onclick="password_toggle( this, 'facebook_ads_token' )">
<i class="fa-solid fa-eye"></i>
</button>
</div>
</div>
<div class="settings-field">
<label for="facebook_ads_conversion_window_days">Okno konwersji (dni)</label>
<input type="number" id="facebook_ads_conversion_window_days" name="facebook_ads_conversion_window_days" class="form-control" min="1" max="90" value="<?= (int) ( \services\FacebookAdsApi::get_setting( 'facebook_ads_conversion_window_days' ) ?: 7 ); ?>" />
</div>
</div>
<button type="button" class="btn btn-success" onclick="$( '#facebook-ads-settings' ).submit();"><i class="fa-solid fa-check mr5"></i>Zapisz ustawienia Facebook Ads</button>
</form>
</div>
</div>
</div>
<div class="row" style="margin-top: 25px;">
<div class="col-12">
<div class="settings-card">