1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
<?php
namespace AutomateWoo;
/** * Class LegacyAddonHandler * * @since 5.4.0 */ class LegacyAddonHandler {
/** * @var string */ private $subscriptions_addon_file = '';
const SUBSCRIPTIONS_ADDON_CLASS = 'AutomateWoo_Subscriptions'; const SUBSCRIPTIONS_ADDON_NAME = 'AutomateWoo - Subscriptions Add-on';
/** * Init this class. */ public function init() { add_filter( 'all_plugins', [ $this, 'filter_all_plugins_to_overwrite_legacy_addon_data' ] );
$this->deactivate_legacy_addons(); }
/** * Ensure legacy addons are deactivated. */ protected function deactivate_legacy_addons() { if ( $this->get_subscriptions_addon_file() ) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; deactivate_plugins( $this->get_subscriptions_addon_file() ); } }
/** * Filter 'all_plugins' to overwrite the description for the legacy add-ons. * * @param array $all_plugins * * @return array[] */ public function filter_all_plugins_to_overwrite_legacy_addon_data( array $all_plugins ): array { $new_description = __( "<strong>Activation disabled</strong>. This plugin's features have been added to the main AutomateWoo plugin as of version 5.4. <strong>Please delete this plugin - it is no longer required.</strong>", 'automatewoo' );
foreach ( $all_plugins as $k => $plugin ) { if ( false !== strpos( $plugin['Name'], self::SUBSCRIPTIONS_ADDON_NAME ) ) { $all_plugins[ $k ]['Description'] = $new_description; break; } }
return $all_plugins; }
/** * Gets the AutomateWoo_Subscriptions's class file path. * * @return string */ private function get_subscriptions_addon_file(): string { if ( empty( $this->subscriptions_addon_file ) && class_exists( self::SUBSCRIPTIONS_ADDON_CLASS ) ) { $addons_class = new \ReflectionClass( self::SUBSCRIPTIONS_ADDON_CLASS );
$this->subscriptions_addon_file = $addons_class->getFileName(); }
return $this->subscriptions_addon_file; } }
|