setup_constants(); self::$instance->includes(); self::$instance->init(); } return self::$instance; } /** * Setup plugin constants */ private function setup_constants() { /** * Pull from new plugin config. * * @since 1.20.0 */ self::$NAME = config( 'name' ); self::$VER = config( 'version' ); self::$DIR = config( 'path' ); self::$URL = config( 'url' ); self::$FILE = config( 'file' ); self::$MIN_PHP_VER = config( 'min_php_ver' ); self::$MIN_WP_VER = config( 'min_wp_ver' ); self::$API_URL = config( 'api_url' ); if ( \PopupMaker\plugin()->is_debug_mode_enabled() ) { self::$DEBUG_MODE = true; } defined( 'POPMAKE' ) || define( 'POPMAKE', self::$FILE ); defined( 'POPMAKE_NAME' ) || define( 'POPMAKE_NAME', self::$NAME ); defined( 'POPMAKE_SLUG' ) || define( 'POPMAKE_SLUG', trim( dirname( plugin_basename( self::$FILE ) ), '/' ) ); defined( 'POPMAKE_DIR' ) || define( 'POPMAKE_DIR', self::$DIR ); defined( 'POPMAKE_URL' ) || define( 'POPMAKE_URL', self::$URL ); defined( 'POPMAKE_NONCE' ) || define( 'POPMAKE_NONCE', 'popmake_nonce' ); defined( 'POPMAKE_VERSION' ) || define( 'POPMAKE_VERSION', self::$VER ); defined( 'POPMAKE_DB_VERSION' ) || define( 'POPMAKE_DB_VERSION', self::$DB_VER ); defined( 'POPMAKE_API_URL' ) || define( 'POPMAKE_API_URL', self::$API_URL ); } /** * Include required files */ private function includes() { // Initialize global options // TODO Replace this with Options class. PUM_Utils_Options::init(); } public function init() { $this->cron = new PUM_Utils_Cron(); $this->popups = new PUM_Repository_Popups(); $this->themes = new PUM_Repository_Themes(); PUM_AssetCache::init(); PUM_Site::init(); PUM_Admin::init(); PUM_Utils_Upgrades::instance(); PUM_Newsletters::init(); PUM_Previews::init(); PUM_Integrations::init(); PUM_Privacy::init(); PUM_Utils_Alerts::init(); PUM_Shortcode_Popup::init(); PUM_Shortcode_PopupTrigger::init(); PUM_Shortcode_PopupClose::init(); PUM_Shortcode_PopupCookie::init(); PUM_Shortcode_CallToAction::init(); PUM_Telemetry::init(); new PUM_Extensions(); } /** * Returns true when debug mode is enabled. * * @return bool * * @deprecated 1.20.0 - Use `\PopupMaker\plugin()->is_debug_mode()` instead. */ public static function debug_mode() { return \PopupMaker\plugin()->is_debug_mode_enabled(); } }