validate() ) { return; } // Register activation hook register_activation_hook( __FILE__, function () { PluginFactory::instance()->activate(); } ); // HPOS compatibility declaration. add_action( 'before_woocommerce_init', function () { if ( class_exists( FeaturesUtil::class ) ) { FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__ ); FeaturesUtil::declare_compatibility( 'cart_checkout_blocks', __FILE__ ); FeaturesUtil::declare_compatibility( 'product_block_editor', __FILE__ ); } } ); // Hook much of our plugin after WooCommerce is loaded. add_action( 'woocommerce_loaded', function () { PluginFactory::instance()->register(); }, 1 ); // Register deactivation hook register_deactivation_hook( __FILE__, function () { PluginFactory::instance()->deactivate(); } ); /** * Get our main container object. * * @return ContainerInterface */ function woogle_get_container(): ContainerInterface { static $container = null; if ( null === $container ) { $container = new Container(); } return $container; } /** * Jetpack-config will initialize the modules on "plugins_loaded" with priority 2, * so this code needs to be run before that. */ add_action( 'plugins_loaded', function () { // Check requirements. if ( ! PluginValidator::validate() ) { return; } woogle_get_container()->get( Config::class ); }, 1 );