diff --git a/dokan-class.php b/dokan-class.php index 166915857a..b125cd0b3b 100755 --- a/dokan-class.php +++ b/dokan-class.php @@ -329,6 +329,11 @@ public function init_classes() { if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) { $ajax_services = $this->get_container()->get( 'ajax-service' ); } + + // Boot the WP-CLI command registry only when running under WP-CLI. + if ( defined( 'WP_CLI' ) && WP_CLI ) { + $cli_services = $this->get_container()->get( 'cli-service' ); + } } /** diff --git a/includes/CLI/Manager.php b/includes/CLI/Manager.php new file mode 100644 index 0000000000..324ad3df7c --- /dev/null +++ b/includes/CLI/Manager.php @@ -0,0 +1,46 @@ +' => HandlerClass::class ]. + $commands = (array) apply_filters( 'dokan_cli_commands', [] ); + + foreach ( $commands as $name => $handler ) { + \WP_CLI::add_command( $name, $handler ); + } + } +} diff --git a/includes/DependencyManagement/Providers/CliServiceProvider.php b/includes/DependencyManagement/Providers/CliServiceProvider.php new file mode 100644 index 0000000000..91ebe3fad4 --- /dev/null +++ b/includes/DependencyManagement/Providers/CliServiceProvider.php @@ -0,0 +1,44 @@ +add_tags( + $this->getContainer()->addShared( Manager::class ), + $this->tags + ); + } +} diff --git a/includes/DependencyManagement/Providers/ServiceProvider.php b/includes/DependencyManagement/Providers/ServiceProvider.php index d19bd51224..8240ec055f 100644 --- a/includes/DependencyManagement/Providers/ServiceProvider.php +++ b/includes/DependencyManagement/Providers/ServiceProvider.php @@ -70,6 +70,7 @@ public function boot(): void { $this->getContainer()->addServiceProvider( new AdminSetupGuideServiceProvider() ); $this->getContainer()->addServiceProvider( new ModelServiceProvider() ); $this->getContainer()->addServiceProvider( new CaptchaServiceProvider() ); + $this->getContainer()->addServiceProvider( new CliServiceProvider() ); } /**