PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.18.6
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.18.6
1.19.8 1.19.7 1.19.6 1.19.5 trunk 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.12.0 1.13.0 1.14.0 1.15.0 1.15.1 1.15.2 1.15.3 1.16.0 1.16.1 1.16.2 1.16.3 1.16.4 1.16.5 1.16.6 1.16.7 1.16.8 1.17.0 1.17.6 1.17.7 1.17.8 1.17.9 1.18.0 1.18.1 1.18.2 1.18.3 1.18.4 1.18.5 1.18.6 1.18.7 1.18.8 1.18.9 1.19.0 1.19.1 1.19.2 1.19.3 1.19.4 1.3.19 1.3.20 1.4.0 1.4.1 1.5.0 1.5.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.16 1.5.17 1.5.18 1.5.19 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.7.0 1.7.1 1.8.0 1.8.1 1.8.3 1.9.0 1.9.1 1.9.2
nitropack / classes / PluginStateHandler.php
nitropack / classes Last commit date
Feature 7 months ago Integration 11 months ago Interfaces 1 year ago Util 1 year ago WordPress 7 months ago CLI.php 7 months ago ModuleHandler.php 11 months ago PluginStateHandler.php 11 months ago
PluginStateHandler.php
53 lines
1 <?php
2
3 namespace NitroPack;
4
5 use NitroPack\Integration\Plugin\AeliaCurrencySwitcher;
6
7 class PluginStateHandler {
8 const eventHandlersMap = [
9 // 'woocommerce-aelia-currencyswitcher/woocommerce-aelia-currencyswitcher.php' => [
10 // 'activateCallback' => 'HandleAeliaCurrencyActivation',
11 // 'deactivateCallback' => 'HandleAeliaCurrencyDeactivation',
12 // ],
13 ];
14 private static $instance;
15
16 public static function getInstance() {
17 if (!self::$instance) {
18 self::$instance = new PluginStateHandler();
19 }
20 return self::$instance;
21 }
22
23 public static function init() {
24 add_action('activated_plugin', [self::getInstance(), 'handleActivation'], 10, 1);
25 add_action('deactivated_plugin', [self::getInstance(), 'handleDeactivation'], 10, 1);
26 add_action('update_option_active_plugins', [self::getInstance(), 'onUpdatedActivePluginsList'], 10, 3);
27 }
28
29 public function handleActivation($plugin) {
30 if (array_key_exists($plugin, self::eventHandlersMap) && !empty(self::eventHandlersMap[$plugin]['activateCallback'])) {
31 self::{self::eventHandlersMap[$plugin]['activateCallback']}();
32 }
33 }
34
35 public function handleDeactivation($plugin) {
36 if (array_key_exists($plugin, self::eventHandlersMap) && !empty(self::eventHandlersMap[$plugin]['deactivateCallback'])) {
37 self::{self::eventHandlersMap[$plugin]['deactivateCallback']}();
38 }
39 }
40 public function onUpdatedActivePluginsList($old_value, $value, $option) {
41 if ($old_value === $value) return;
42
43 $activated_plugins = array_diff($value, $old_value);
44 $deactivated_plugins = array_diff($old_value, $value);
45
46 if (in_array('woocommerce/woocommerce.php', $activated_plugins)) {
47 nitropack_event("platform_change", null, array("platform" => 'WooCommerce'));
48 } else if (in_array('woocommerce/woocommerce.php', $deactivated_plugins)) {
49 nitropack_event("platform_change", null, array("platform" => 'WordPress'));
50 }
51 }
52 }
53