define_constants(); require_once TABLE_BUILDER_BLOCK_PLUGIN_DIR . '/scoped/vendor/autoload.php'; add_action( 'plugins_loaded', [ $this, 'on_plugins_loaded' ] ); add_action( 'init', [ $this, 'load_textdomain' ] ); } private function define_constants(): void { define( 'TABLE_BUILDER_BLOCK_PLUGIN_VERSION', self::VERSION ); define( 'TABLE_BUILDER_BLOCK_PLUGIN_URL', trailingslashit( plugin_dir_url( __FILE__ ) ) ); define( 'TABLE_BUILDER_BLOCK_PLUGIN_DIR', trailingslashit( plugin_dir_path( __FILE__ ) ) ); define( 'TABLE_BUILDER_BLOCK_INC_DIR', TABLE_BUILDER_BLOCK_PLUGIN_DIR . 'includes/' ); define( 'TABLE_BUILDER_BLOCK_STYLE_DIR', TABLE_BUILDER_BLOCK_PLUGIN_DIR . 'build/styles/' ); define( 'TABLE_BUILDER_BLOCK_DIR', TABLE_BUILDER_BLOCK_PLUGIN_DIR . 'build/blocks/' ); } public function on_plugins_loaded(): void { do_action( 'tablebuilder/before_init' ); TableBuilder\Hooks\AssetGenerator::instance(); TableBuilder\Core\Enqueue::instance(); TableBuilder\Config\Blocks::instance(); // TableBuilder\Admin\Admin::instance(); // Data migration // TODO:: WIll be removed in next upcoming version (new TableBuilder\Core\DataMigration()); add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), [ $this, 'plugin_action_link' ] ); } public function plugin_action_link( array $plugin_actions ): array { return $plugin_actions; } public function load_textdomain(): void { load_plugin_textdomain( 'table-builder-block', false, TABLE_BUILDER_BLOCK_PLUGIN_DIR . 'languages/' ); } } if ( class_exists( 'TableBuilder' ) ) { TableBuilder::get_instance(); }