Automattic\WooCommerce\Internal\CLI\Migrator\Core

ProductsController::parse_and_validate_argsprivateWC 1.0

Parse and validate command-line arguments.

Method of the class: ProductsController{}

No Hooks.

Returns

Array. Parsed and validated arguments or empty array on error.

Usage

// private - for code of main (parent) class only
$result = $this->parse_and_validate_args( $assoc_args, $platform ): array;
$assoc_args(array) (required)
Raw associative arguments.
$platform(string)
Optional pre-resolved platform.
Default: ''

ProductsController::parse_and_validate_args() code WC 10.7.0

private function parse_and_validate_args( array $assoc_args, string $platform = '' ): array {
	$parsed = array();

	// Platform validation - use pre-resolved platform if provided, otherwise resolve.
	if ( empty( $platform ) ) {
		$platform = $this->platform_registry->resolve_platform( $assoc_args );
		if ( empty( $platform ) ) {
			return array();
		}
	}
	$parsed['platform'] = $platform;

	$this->fields_to_process = $this->parse_field_selection( $assoc_args );

	$parsed['fields']                  = $this->fields_to_process;
	$parsed['limit']                   = isset( $assoc_args['limit'] ) ? max( 1, (int) $assoc_args['limit'] ) : PHP_INT_MAX;
	$parsed['batch_size']              = isset( $assoc_args['batch-size'] ) ? max( 1, min( 250, (int) $assoc_args['batch-size'] ) ) : 20;
	$parsed['skip_existing']           = isset( $assoc_args['skip-existing'] );
	$parsed['dry_run']                 = isset( $assoc_args['dry-run'] );
	$parsed['resume']                  = isset( $assoc_args['resume'] );
	$parsed['verbose']                 = isset( $assoc_args['verbose'] );
	$parsed['assign_default_category'] = isset( $assoc_args['assign-default-category'] );

	$parsed['filters'] = $this->parse_query_filters( $assoc_args );

	if ( ! $this->credential_manager->has_credentials( $platform ) ) {
		$platform_display_name = $this->platform_registry->get_platform_display_name( $platform );
		WP_CLI::error(
			sprintf(
				"No credentials found for platform '%s'. Please run: wp wc migrate setup --platform=%s",
				$platform_display_name,
				$platform
			)
		);
		return array();
	}

	return $parsed;
}