Automattic\WooCommerce\Internal\CLI\Migrator\Core

ProductsController::log_session_time_metricsprivateWC 1.0

Log session time metrics using session-specific data.

Method of the class: ProductsController{}

No Hooks.

Returns

null. Nothing (null).

Usage

// private - for code of main (parent) class only
$result = $this->log_session_time_metrics( $final_stats ): void;
$final_stats(array) (required)
Final migration statistics.

ProductsController::log_session_time_metrics() code WC 10.7.0

private function log_session_time_metrics( array $final_stats ): void {
	$session_products = $final_stats['total_imported'] ?? 0;

	if ( empty( $session_products ) ) {
		return;
	}

	if ( empty( $this->session_start_time ) ) {
		return;
	}

	$session_duration_seconds = time() - $this->session_start_time;
	$platform                 = $this->parsed_args['platform'];

	$avg_time_per_product   = $session_duration_seconds / $session_products;
	$session_time_formatted = human_time_diff( 0, $session_duration_seconds );
	$avg_time_formatted     = number_format( $avg_time_per_product, 2 );

	$platform_display_name = $this->platform_registry->get_platform_display_name( $platform );
	$metrics_message       = sprintf(
		'Session completed for %s: %d products in %s (avg: %s seconds per product)',
		$platform_display_name,
		$session_products,
		$session_time_formatted,
		$avg_time_formatted
	);

	wc_get_logger()->info( $metrics_message, array( 'source' => 'wc-migrator' ) );
}