WC_CLI_Tool_Command::register_commands()public staticWC 1.0

Registers just a 'list' and 'run' command to the WC CLI since we only want to enable certain actions on the system status tools endpoints.

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

Хуков нет.

Возвращает

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

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

$result = WC_CLI_Tool_Command::register_commands();

Код WC_CLI_Tool_Command::register_commands() WC 8.7.0

public static function register_commands() {
	global $wp_rest_server;

	$request       = new WP_REST_Request( 'OPTIONS', '/wc/v2/system_status/tools' );
	$response      = $wp_rest_server->dispatch( $request );
	$response_data = $response->get_data();
	if ( empty( $response_data ) ) {
		return;
	}

	$parent             = 'wc tool';
	$supported_commands = array( 'list', 'run' );
	foreach ( $supported_commands as $command ) {
		$synopsis = array();
		if ( 'run' === $command ) {
			$synopsis[] = array(
				'name'        => 'id',
				'type'        => 'positional',
				'description' => __( 'The id for the resource.', 'woocommerce' ),
				'optional'    => false,
			);
			$method     = 'update_item';
			$route      = '/wc/v2/system_status/tools/(?P<id>[\w-]+)';
		} elseif ( 'list' === $command ) {
			$synopsis[] = array(
				'name'        => 'fields',
				'type'        => 'assoc',
				'description' => __( 'Limit response to specific fields. Defaults to all fields.', 'woocommerce' ),
				'optional'    => true,
			);
			$synopsis[] = array(
				'name'        => 'field',
				'type'        => 'assoc',
				'description' => __( 'Get the value of an individual field.', 'woocommerce' ),
				'optional'    => true,
			);
			$synopsis[] = array(
				'name'        => 'format',
				'type'        => 'assoc',
				'description' => __( 'Render response in a particular format.', 'woocommerce' ),
				'optional'    => true,
				'default'     => 'table',
				'options'     => array(
					'table',
					'json',
					'csv',
					'ids',
					'yaml',
					'count',
					'headers',
					'body',
					'envelope',
				),
			);
			$method     = 'list_items';
			$route      = '/wc/v2/system_status/tools';
		}

		$before_invoke = null;
		if ( empty( $command_args['when'] ) && WP_CLI::get_config( 'debug' ) ) {
			$before_invoke = function() {
				wc_maybe_define_constant( 'SAVEQUERIES', true );
			};
		}

		$rest_command = new WC_CLI_REST_Command( 'system_status_tool', $route, $response_data['schema'] );

		WP_CLI::add_command(
			"{$parent} {$command}",
			array( $rest_command, $method ),
			array(
				'synopsis'      => $synopsis,
				'when'          => ! empty( $command_args['when'] ) ? $command_args['when'] : '',
				'before_invoke' => $before_invoke,
			)
		);
	}
}