Automattic\WooCommerce\Internal\CLI\Migrator\Commands

ProductsCommand::handle_count_requestprivateWC 1.0

Handle the count request.

Метод класса: ProductsCommand{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

// private - только в коде основоного (родительского) класса
$result = $this->handle_count_request( $platform, $platform_display_name, $assoc_args ): void;
$platform(строка) (обязательный)
The platform name.
$platform_display_name(строка) (обязательный)
The platform display name.
$assoc_args(массив) (обязательный)
The associative arguments.

Код ProductsCommand::handle_count_request() WC 10.9.4

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}." );
	}
}