feat: update font to Roboto across templates and add campaign/ad group filters in product views

- Changed font from Open Sans to Roboto in layout files.
- Added campaign and ad group filters in products main view.
- Enhanced product history to include campaign and ad group IDs.
- Updated migrations to support new campaign and ad group dimensions in product statistics.
- Introduced new migration files for managing campaign types and dropping obsolete columns.
This commit is contained in:
2026-02-18 01:21:22 +01:00
parent 1cff9ba0eb
commit 4635cefcbb
23 changed files with 2444 additions and 410 deletions

View File

@@ -8,10 +8,45 @@ class Campaigns
return $mdb -> select( 'clients', '*', [ 'ORDER' => [ 'name' => 'ASC' ] ] );
}
static public function get_campaigns_list( $client_id )
static public function get_campaigns_list( $client_id, $only_active = false )
{
global $mdb;
return $mdb -> select( 'campaigns', '*', [ 'client_id' => $client_id, 'ORDER' => [ 'campaign_name' => 'ASC' ] ] );
$client_id = (int) $client_id;
if ( !$only_active )
{
return $mdb -> select( 'campaigns', '*', [ 'client_id' => $client_id, 'ORDER' => [ 'campaign_name' => 'ASC' ] ] );
}
$latest_date = $mdb -> query(
'SELECT MAX( ch.date_add )
FROM campaigns_history AS ch
INNER JOIN campaigns AS c ON c.id = ch.campaign_id
WHERE c.client_id = :client_id
AND c.campaign_id <> 0',
[ ':client_id' => $client_id ]
) -> fetchColumn();
if ( !$latest_date )
{
return $mdb -> select( 'campaigns', '*', [ 'client_id' => $client_id, 'ORDER' => [ 'campaign_name' => 'ASC' ] ] );
}
return $mdb -> query(
'SELECT c.*
FROM campaigns AS c
LEFT JOIN campaigns_history AS ch
ON ch.campaign_id = c.id
AND ch.date_add = :latest_date
WHERE c.client_id = :client_id
AND ( c.campaign_id = 0 OR ch.id IS NOT NULL )
ORDER BY c.campaign_name ASC',
[
':client_id' => $client_id,
':latest_date' => $latest_date
]
) -> fetchAll( \PDO::FETCH_ASSOC );
}
static public function get_campaign_history_data( $campaign_id, $start, $length, $revert = false )
@@ -144,6 +179,7 @@ class Campaigns
st.ad_group_id AS db_ad_group_id,
c.client_id,
c.campaign_id AS external_campaign_id,
c.advertising_channel_type,
ag.ad_group_id AS external_ad_group_id,
cl.google_ads_customer_id
FROM campaign_search_terms AS st