HEX
Server: Apache
System: Linux WWW 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64
User: web11 (1011)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/studis.kauko.lt/wp-content/plugins/wp-statistics/src/Service/CronEventManager.php
<?php

namespace WP_Statistics\Service;

use WP_Statistics\Components\Event;
use WP_STATISTICS\Option;
use WP_Statistics\Service\Admin\MarketingCampaign\MarketingCampaignFetcher;
use WP_Statistics\Service\Admin\Notification\NotificationFetcher;

class CronEventManager
{
    /**
     * CronEventManager constructor.
     */
    public function __construct()
    {
        Event::schedule('wp_statistics_daily_cron_hook', time(), 'daily', [$this, 'handleDailyTasks']);
    }

    /**
     * Handle daily tasks triggered by the scheduled cron event.
     *
     * Calls both notification and marketing campaign fetchers.
     */
    public function handleDailyTasks()
    {
        if (Option::get('display_notifications')) {
            $this->fetchNotification();
            $this->fetchMarketingCampaign();
        }
    }

    /**
     * Fetches new notifications.
     *
     * This method is triggered by the scheduled cron event
     * and retrieves new notifications.
     */
    private function fetchNotification()
    {
        $notificationFetcher = new NotificationFetcher();
        $notificationFetcher->fetchNotification();
    }

    /**
     * Fetches marketing campaign.
     *
     * This method is triggered by the scheduled cron event
     * and retrieve marketing campaign.
     */
    private function fetchMarketingCampaign()
    {
        $marketingCampaignFetcher = new MarketingCampaignFetcher();
        $marketingCampaignFetcher->fetchMarketingCampaign();
    }
}