profilesPermissions = new ProfilesPermissions(); add_action('init', array($this, 'onWpInit')); static::registerHooks(); } public function onWpInit() { $this->availableProfilesIds = $this->profilesPermissions->getAvailableProfilesIds(static::SLUG); $this->integrationTypes = $this->getIntegrationTypes(); } public function getAvailableProfiles() { return $this->availableProfilesIds; } abstract protected function registerHooks(); protected function isPluginActive() { return empty(static::PLUGIN_NAME) || is_plugin_active(static::PLUGIN_NAME); } abstract public function getIntegrationTypes(); public function getSlug() { return static::SLUG; } public function getLabel() { return static::PAGE . ' -> ' . static::NAME; } public function getProfileType() { return static::PROFILE_TYPE; } }