menu ) { $this->menu = new Menu(); } return $this->menu; } /** * Register hooks. * * @return void */ public function boot() { add_action( 'before_woocommerce_init', array( self::class, 'declare_woocommerce_compatibility' ) ); add_action( 'plugins_loaded', array( Schema::class, 'maybe_upgrade' ) ); Queue::register(); Replies::register(); Retention::register(); Privacy::register(); Webhook::register(); Rules::register(); Events::register(); Loader::register(); // admin_menu and admin_enqueue_scripts only fire in wp-admin. $this->menu()->register(); ( new ConnectController() )->register(); OverviewPage::register(); RulesPage::register(); ListPages::register(); SettingsPage::register(); } /** * Tell WooCommerce the plugin works with its order tables (HPOS): orders are read only through WC_Order. * * @return void */ public static function declare_woocommerce_compatibility() { if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) { \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', SMSPORTAL_FILE, true ); } } }