$89 GRAYBYTE WORDPRESS FILE MANAGER $47

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 104.21.43.35 | ADMIN IP 216.73.216.180
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : mail

/home/bravrvjk/itiministry.org/wp-content/plugins/give/src/Tracking/

HOME
Current File : /home/bravrvjk/itiministry.org/wp-content/plugins/give/src/Tracking//AdminActionHandler.php
<?php

namespace Give\Tracking;

use Give\Tracking\Events\ActiveDonationFormsFirstTimeTracking;
use Give\Tracking\Events\DonationMetricsTracking;
use Give\Tracking\Events\GivePluginSettingsTracking;
use Give\Tracking\Events\PluginsTracking;
use Give\Tracking\Events\ThemeTracking;
use Give\Tracking\Repositories\Settings;
use Give\Tracking\Repositories\TelemetryAccessDetails;
use Give_Admin_Settings;

/**
 * Class AdminActionHandler
 * @package Give\Tracking
 *
 * This class uses to handle actions in WP Backed.
 *
 * @since 2.10.0
 */
class AdminActionHandler
{
    /**
     * @var UsageTrackingOnBoarding
     */
    private $usageTrackingOnBoarding;

    /**
     * @var Settings
     */
    private $settings;

    /**
     * @var TelemetryAccessDetails
     */
    private $telemetryAccessDetails;

    /**
     * @var AccessToken
     */
    private $accessToken;

    /**
     * @param UsageTrackingOnBoarding $usageTrackingOnBoarding
     * @param Settings                $settings
     * @param TelemetryAccessDetails  $telemetryAccessDetails
     * @param AccessToken             $accessToken
     */
    public function __construct(
        UsageTrackingOnBoarding $usageTrackingOnBoarding,
        Settings $settings,
        TelemetryAccessDetails $telemetryAccessDetails,
        AccessToken $accessToken
    ) {
        $this->usageTrackingOnBoarding = $usageTrackingOnBoarding;
        $this->settings = $settings;
        $this->telemetryAccessDetails = $telemetryAccessDetails;
        $this->accessToken = $accessToken;
    }

    /**
     * Handle opt_out_into_tracking give action.
     *
     * @since 2.10.0
     */
    public function optOutFromUsageTracking()
    {
        if ( ! current_user_can('manage_give_settings')) {
            return;
        }

        $timestamp = '0'; // zero value disable notice permanently.
        if ('hide_opt_in_notice_shortly' === $_GET['give_action']) {
            $timestamp = DAY_IN_SECONDS * 2 + time();
        }

        $this->usageTrackingOnBoarding->disableNotice($timestamp);

        wp_safe_redirect(esc_url_raw(remove_query_arg('give_action')));
        exit();
    }

    /**
     * Handle opt_in_into_tracking give action.
     *
     * @since 2.10.0
     */
    public function optInToUsageTracking()
    {
        if ( ! current_user_can('manage_give_settings')) {
            return;
        }

        $this->settings->saveUsageTrackingOptionValue('enabled');
        $this->usageTrackingOnBoarding->disableNotice(0);

        if ($this->accessToken->store()) {
            $this->recordTracks();
        } else {
            $this->settings->saveUsageTrackingOptionValue('disabled');
        }

        wp_safe_redirect(esc_url_raw(remove_query_arg('give_action')));
        exit();
    }

    /**
     * OptIn website to telemetry server when admin grant by changing setting.
     *
     * @since 2.10.0
     *
     * @param array $oldValue
     * @param array $newValue
     *
     * @return false
     */
    public function optInToUsageTrackingAdminGrantManually($oldValue, $newValue)
    {
        $class = __CLASS__;
        add_filter(
            "give_disable_hook-update_option_give_settings:{$class}@optInToUsageTrackingAdminGrantManually",
            '__return_true'
        );

        $section = isset($_GET['section']) ? 'advanced-options' : '';
        if ( ! Give_Admin_Settings::is_setting_page('advanced', $section)) {
            return false;
        }

        $usageTracking = $newValue[Settings::USAGE_TRACKING_OPTION_KEY] ?: 'disabled';
        $usageTracking = give_is_setting_enabled($usageTracking);
        $hasAccessToken = $this->telemetryAccessDetails->hasAccessTokenOptionValue();

        // Send plugin information immediately when edit tracking setting.
        if ($hasAccessToken) {
            /* @var TrackJob $trackJob */
            $trackJob = give(TrackJob::class);
            $trackJob->sendNow([GivePluginSettingsTracking::class]);
        }

        // Exit if already has access token.
        if ( ! $usageTracking || $hasAccessToken) {
            return false;
        }

        if ($this->accessToken->store()) {
            $this->recordTracks();
        } else {
            $this->settings->saveUsageTrackingOptionValue('disabled');
        }

        remove_filter(
            "give_disable_hook-update_option_give_settings:{$class}@optInToUsageTrackingAdminGrantManually",
            '__return_false'
        );

        return true;
    }

    /**
     * Schedule first set of tracking information.
     *
     * @since 2.10.0
     */
    private function recordTracks()
    {
        /* @var TrackJob $trackJob */
        $trackJob = give(TrackJob::class);
        $trackJob->sendNow(
            [
                ActiveDonationFormsFirstTimeTracking::class,
                DonationMetricsTracking::class,
                ThemeTracking::class,
                GivePluginSettingsTracking::class,
                PluginsTracking::class,
            ]
        );
    }
}


Current_dir [ WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
Contracts
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
Enum
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
Events
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
Helpers
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
Repositories
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
TrackingData
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
AccessToken.php
1.497 KB
24 Nov 2021 4.55 AM
bravrvjk / bravrvjk
0644
AdminActionHandler.php
4.903 KB
17 Jun 2022 4.03 AM
bravrvjk / bravrvjk
0644
AdminSettings.php
1.48 KB
24 Nov 2021 4.55 AM
bravrvjk / bravrvjk
0644
TrackClient.php
2.14 KB
24 Nov 2021 4.55 AM
bravrvjk / bravrvjk
0644
TrackJob.php
2.116 KB
24 Nov 2021 4.55 AM
bravrvjk / bravrvjk
0644
TrackJobScheduler.php
1.138 KB
24 Nov 2021 4.55 AM
bravrvjk / bravrvjk
0644
TrackRegisterer.php
1.531 KB
24 Nov 2021 4.55 AM
bravrvjk / bravrvjk
0644
TrackingServiceProvider.php
4.257 KB
11 Jun 2025 10.57 PM
bravrvjk / bravrvjk
0644
UsageTrackingOnBoarding.php
4.466 KB
17 Jun 2022 4.03 AM
bravrvjk / bravrvjk
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF