HEX
Server: Apache
System: Linux srv674466.hstgr.cloud 5.14.0-503.19.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Jan 7 17:08:27 EST 2025 x86_64
User: rialindia (1055)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/rialindia/public_html/wp-content/plugins/nitropack/classes/PluginStateHandler.php
<?php

namespace NitroPack;

use NitroPack\Integration\Plugin\AeliaCurrencySwitcher;

class PluginStateHandler {
    const eventHandlersMap = [
        // 'woocommerce-aelia-currencyswitcher/woocommerce-aelia-currencyswitcher.php' => [
        //     'activateCallback' => 'HandleAeliaCurrencyActivation',
        //     'deactivateCallback' => 'HandleAeliaCurrencyDeactivation',
        // ],
    ];
    private static $instance;

    public static function getInstance() {
        if (!self::$instance) {
            self::$instance = new PluginStateHandler();
        }
        return self::$instance;
    }

    public static function init() {
        add_action('activated_plugin', [self::getInstance(), 'handleActivation'], 10, 1);
        add_action('deactivated_plugin', [self::getInstance(), 'handleDeactivation'], 10, 1);
        add_action('update_option_active_plugins', [self::getInstance(), 'onUpdatedActivePluginsList'], 10, 3);
    }

    public function handleActivation($plugin) {
        if (array_key_exists($plugin, self::eventHandlersMap) && !empty(self::eventHandlersMap[$plugin]['activateCallback'])) {
            self::{self::eventHandlersMap[$plugin]['activateCallback']}();
        }
    }

    public function handleDeactivation($plugin) {
        if (array_key_exists($plugin, self::eventHandlersMap) && !empty(self::eventHandlersMap[$plugin]['deactivateCallback'])) {
            self::{self::eventHandlersMap[$plugin]['deactivateCallback']}();
        }
    }
    public function onUpdatedActivePluginsList($old_value, $value, $option) {
        if ($old_value === $value) return;

        $activated_plugins = array_diff($value, $old_value);
        $deactivated_plugins = array_diff($old_value, $value);

        if (in_array('woocommerce/woocommerce.php', $activated_plugins)) {
            nitropack_event("platform_change", null, array("platform" => 'WooCommerce'));
        } else if (in_array('woocommerce/woocommerce.php', $deactivated_plugins)) {
            nitropack_event("platform_change", null, array("platform" => 'WordPress'));
        }
    }
}