| @@ -35,17 +35,22 @@ | ||
| 35 | 35 | * @access private |
| 36 | 36 | */ |
| 37 | 37 | private function __construct(){ |
| 38 | 38 | $this->register_autoloader(); |
| 39 | + | |
| 40 | + // Register install / uninstall statically so activation does not instantiate | |
| 41 | + // Admin (and therefore does not attach any of its admin-side hooks). | |
| 42 | + register_activation_hook(WPMCS_FILE, [Admin::class, 'install']); | |
| 43 | + register_deactivation_hook(WPMCS_FILE, [Admin::class, 'deactivation']); | |
| 44 | + | |
| 45 | + if (!Notices::instance()->is_environment_compatible()) { | |
| 46 | + return; | |
| 47 | + } | |
| 48 | + | |
| 39 | 49 | add_action('init', [$this, 'init'], 0); |
| 40 | 50 | add_action('rest_api_init', [$this, 'on_rest_api_init'], 9); |
| 51 | + } | |
| 41 | 52 | |
| 42 | - $adminInstance = Admin::instance(); | |
| 43 | - // reg activation hook. | |
| 44 | - register_activation_hook(WPMCS_FILE, [$adminInstance, 'install']); | |
| 45 | - // reg deactivation hook. | |
| 46 | - register_deactivation_hook(WPMCS_FILE, [$adminInstance, 'deactivation']); | |
| 47 | - } | |
| 48 | 53 | |
| 49 | 54 | /** |
| 50 | 55 | * Register autoloader. |
| 51 | 56 | * |
| @@ -103,16 +108,16 @@ | ||
| 103 | 108 | private function init_components(){ |
| 104 | 109 | /** |
| 105 | 110 | * All backend API has to initiallize outside is_admin(), as REST URL is not part of wp_admin |
| 106 | 111 | */ |
| 107 | - Schema::init(); | |
| 108 | - Api::instance(); | |
| 109 | - | |
| 110 | 112 | Front::instance(); |
| 111 | 113 | |
| 112 | 114 | if (is_admin()) { |
| 113 | 115 | Admin::instance(); |
| 116 | + Upgrade::instance(); | |
| 114 | 117 | } |
| 118 | + | |
| 119 | + Api::instance(); | |
| 115 | 120 | } |
| 116 | 121 | |
| 117 | 122 | /** |
| 118 | 123 | * Init Services. |
| @@ -120,13 +125,19 @@ | ||
| 120 | 125 | * @since 1.0.0 |
| 121 | 126 | * @access private |
| 122 | 127 | */ |
| 123 | 128 | public function init_services(){ |
| 124 | - Media::instance(); | |
| 125 | 129 | Cdn::instance(); |
| 126 | 130 | Cache::instance(); |
| 127 | - MediaLibrary::instance(); | |
| 131 | + Compatibility::instance(); | |
| 132 | + | |
| 133 | + // Integrations | |
| 134 | + Integration::instance(); | |
| 128 | 135 | FilterContent::instance(); |
| 136 | + | |
| 137 | + // Background Processing | |
| 138 | + BGRunner::instance(); | |
| 139 | + Sync::instance(); | |
| 129 | 140 | } |
| 130 | 141 | |
| 131 | 142 | |
| 132 | 143 | /** |