Automattic\WooCommerce\Internal\CLI\Migrator\Commands

ProductsCommand::handle_count_requestprivateWC 1.0

Handle the count request.

Method of the class: ProductsCommand{}

No Hooks.

Returns

null. Nothing (null).

Usage

// private - for code of main (parent) class only
$result = $this->handle_count_request( $platform, $platform_display_name, $assoc_args ): void;
$platform(string) (required)
The platform name.
$platform_display_name(string) (required)
The platform display name.
$assoc_args(array) (required)
The associative arguments.

ProductsCommand::handle_count_request() code WC 10.7.0

private function handle_count_request( string $platform, string $platform_display_name, array $assoc_args ): void {
	WP_CLI::log( "Fetching product count from {$platform_display_name}..." );

	$fetcher = $this->platform_registry->get_fetcher( $platform );
	if ( ! $fetcher ) {
		WP_CLI::error( "Could not get fetcher for platform '{$platform_display_name}'" );
		return;
	}

	// Build filter arguments.
	$filter_args = array();
	if ( isset( $assoc_args['status'] ) ) {
		$filter_args['status'] = $assoc_args['status'];
	}
	if ( isset( $assoc_args['product-type'] ) ) {
		$filter_args['product_type'] = $assoc_args['product-type'];
	}
	if ( isset( $assoc_args['vendor'] ) ) {
		$filter_args['vendor'] = $assoc_args['vendor'];
	}
	if ( isset( $assoc_args['ids'] ) ) {
		$filter_args['ids'] = $assoc_args['ids'];
	}

	$count = $fetcher->fetch_total_count( $filter_args );

	if ( 0 === $count ) {
		WP_CLI::log( 'No products found or unable to fetch count.' );
	} else {
		$filters = array();
		if ( isset( $assoc_args['status'] ) ) {
			$filters[] = "status '{$assoc_args['status']}'";
		}
		if ( isset( $assoc_args['product-type'] ) ) {
			$filters[] = "type '{$assoc_args['product-type']}'";
		}
		if ( isset( $assoc_args['vendor'] ) ) {
			$filters[] = "vendor '{$assoc_args['vendor']}'";
		}
		if ( isset( $assoc_args['ids'] ) ) {
			$filters[] = "IDs '{$assoc_args['ids']}'";
		}

		$filter_description = empty( $filters ) ? '' : ' with ' . implode( ', ', $filters );
		WP_CLI::success( "Found {$count} products{$filter_description} on {$platform_display_name}." );
	}
}