id ) {
return;
}
printf(
'
',
esc_html(
sprintf(
/* translators: 1: minimum PHP version, 2: minimum WordPress version, 3: PHP version of this site, 4: WordPress version of this site. */
__( 'aiModelka needs PHP %1$s and WordPress %2$s or newer. This site has PHP %3$s and WordPress %4$s. Ask your hosting provider to update them.', 'aimodelka' ),
AIMODELKA_MIN_PHP,
AIMODELKA_MIN_WP,
PHP_VERSION,
get_bloginfo( 'version' )
)
)
);
}
require_once AIMODELKA_PLUGIN_DIR . 'src/class-autoloader.php';
\Aimodelka\Autoloader::register();
// Включение и выключение плагина: фоновые задачи регистрируются и снимаются здесь
// (Documents/WPPlugin-HLD.md §4.3, раздел «Jobs»).
register_activation_hook( __FILE__, array( \Aimodelka\Jobs\Scheduler::class, 'on_activation' ) );
register_deactivation_hook( __FILE__, array( \Aimodelka\Jobs\Scheduler::class, 'on_deactivation' ) );
// Объявление совместимости с возможностями WooCommerce. Событие срабатывает внутри
// загрузки WooCommerce, поэтому подписаться на него нужно заранее, ещё до «plugins_loaded».
add_action( 'before_woocommerce_init', array( \Aimodelka\Plugin::class, 'declare_woocommerce_compatibility' ) );
// Сам запуск — после загрузки всех плагинов: папка «aimodelka» по алфавиту раньше
// «woocommerce», и в момент подключения этого файла WooCommerce ещё не загружен.
add_action( 'plugins_loaded', array( \Aimodelka\Plugin::class, 'boot' ) );