%s

', esc_html( sprintf( /* translators: 1: required PHP version, 2: required WordPress version, 3: current PHP version, 4: current WordPress version */ __( 'Aivor Content Import requires PHP %1$s and WordPress %2$s. Found PHP %3$s and WordPress %4$s, so the plugin stays inactive.', 'aivor-content-import' ), AIVOR_CONTENT_MIN_PHP, AIVOR_CONTENT_MIN_WP, PHP_VERSION, aivor_content_wp_version() ) ) ); } /** * Aktivierung. * * Ohne erfuellte Voraussetzungen wird nichts eingerichtet — der Hinweis im * Backend erklaert warum. * * @return void */ function aivor_content_activate() { if ( ! aivor_content_requirements_met() ) { return; } Plugin::activate(); } /** * Deaktivierung. * * Raeumt auch dann auf, wenn die Voraussetzungen nicht (mehr) erfuellt sind: * Sinkt die PHP- oder WordPress-Version nach einer erfolgreichen Aktivierung * unter die Grenze, ist das Plugin zwar stumm, seine Cron-Events stehen aber * weiter in der Cron-Tabelle. Wer es dann deaktiviert, um Ruhe zu haben, muss * sie auch loswerden. src/ bleibt in diesem Fall ungeladen — die Dateien dort * duerfen PHP 8.1 voraussetzen, diese hier nicht. * * @return void */ function aivor_content_deactivate() { if ( aivor_content_requirements_met() ) { Plugin::deactivate(); return; } wp_unschedule_hook( AIVOR_CONTENT_CRON_HOOK ); } // Vor dem Guard: sonst gaebe es fuer eine Installation, die die // Voraussetzungen nachtraeglich verliert, keinen Weg mehr, die Cron-Events // wieder loszuwerden. register_activation_hook( __FILE__, __NAMESPACE__ . '\\aivor_content_activate' ); register_deactivation_hook( __FILE__, __NAMESPACE__ . '\\aivor_content_deactivate' ); if ( ! aivor_content_requirements_met() ) { add_action( 'admin_notices', __NAMESPACE__ . '\\aivor_content_requirements_notice' ); return; } spl_autoload_register( /** * PSR-4-Autoloader fuer Aivor\Content. Das Plugin hat keine * Runtime-Abhaengigkeiten, deshalb genuegt dieser Loader ohne vendor/. * * @param string $class_name Voll qualifizierter Klassenname. * @return void */ function ( $class_name ) { $prefix = 'Aivor\\Content\\'; if ( 0 !== strncmp( $prefix, $class_name, strlen( $prefix ) ) ) { return; } $relative = substr( $class_name, strlen( $prefix ) ); $file = AIVOR_CONTENT_PATH . 'src/' . str_replace( '\\', '/', $relative ) . '.php'; if ( is_readable( $file ) ) { require_once $file; } } ); add_action( 'plugins_loaded', array( Plugin::class, 'boot' ) );