' . wp_kses_post($message) . '

'; }); } } /** * Initialize features that are needed only on public. */ protected static function initPublicSystems() { // skip if we are in rest, ajax or cron request if (wp_is_json_request() || wp_doing_ajax() || wp_doing_cron()) { return; } // register shortcodes //Shortcodes::init(); } /** * Initialize services. */ protected static function initServices() { // check requirements //ServiceContainer::getInstance()->init(static::$requirements); // install updates if needed Installer::getInstance()->checkDatabase(); // register modules new Dashboard(); //UsageLimiter::init(); } /** * Check are all plugin requirements are meet. * It should populate list of error messages about missing requirements. * * @return array */ protected static function requirementsCheck(): void { $classes = [ //'WooCommerce' => 'Missing "Woocommerce" plugin.', //'acf_pro' => 'Missing "Advanced Custom Fields PRO" plugin.', //'WPCF7' => 'Missing "Contact Form 7" plugin.', ]; static::$requirements = []; foreach ($classes as $class => $msg) { if (!class_exists($class)) { static::$requirements[] = $msg; } } } /** * Autoloading handler. * * @param string $class * @return null|boolean */ public static function autoloader(string $class): ?bool { // using "namespace" pattern to locate file $parts = array_filter(explode('\\', $class)); if ($parts[0] !== 'Tekod' || $parts[1] !== 'ADWMAN') { return null; } unset($parts[0], $parts[1]); $path = __DIR__ . '/../' . implode('/', $parts) . '.php'; if (!is_file($path)) { // not found return null; } // dynamic inclusion require $path; // success return true; } }