Automattic\WooCommerce\Internal\Admin\Settings

PaymentsRestController::get_schema_for_payment_provider()privateWC 1.0

Get the schema for a payment provider.

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

Хуков нет.

Возвращает

Массив. The schema for a payment provider.

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

// private - только в коде основоного (родительского) класса
$result = $this->get_schema_for_payment_provider(): array;

Код PaymentsRestController::get_schema_for_payment_provider() WC 9.6.1

private function get_schema_for_payment_provider(): array {
	return array(
		'type'        => 'object',
		'description' => esc_html__( 'A payment provider in the context of the main Payments Settings page list.', 'woocommerce' ),
		'properties'  => array(
			'id'             => array(
				'type'        => 'string',
				'description' => esc_html__( 'The unique identifier for the provider.', 'woocommerce' ),
				'context'     => array( 'view', 'edit' ),
				'readonly'    => true,
			),
			'_order'         => array(
				'type'        => 'integer',
				'description' => esc_html__( 'The sort order of the provider.', 'woocommerce' ),
				'context'     => array( 'view', 'edit' ),
				'readonly'    => true,
			),
			'_type'          => array(
				'type'        => 'string',
				'description' => esc_html__( 'The type of payment provider. Use this to differentiate between the various items in the list and determine their intended use.', 'woocommerce' ),
				'context'     => array( 'view', 'edit' ),
				'readonly'    => true,
			),
			'title'          => array(
				'type'        => 'string',
				'description' => esc_html__( 'The title of the provider.', 'woocommerce' ),
				'context'     => array( 'view', 'edit' ),
				'readonly'    => true,
			),
			'description'    => array(
				'type'        => 'string',
				'description' => esc_html__( 'The description of the provider.', 'woocommerce' ),
				'context'     => array( 'view', 'edit' ),
				'readonly'    => true,
			),
			'supports'       => array(
				'description' => __( 'Supported features for this provider.', 'woocommerce' ),
				'type'        => 'array',
				'context'     => array( 'view', 'edit' ),
				'readonly'    => true,
				'items'       => array(
					'type' => 'string',
				),
			),
			'plugin'         => array(
				'type'        => 'object',
				'description' => esc_html__( 'The corresponding plugin details of the provider.', 'woocommerce' ),
				'context'     => array( 'view', 'edit' ),
				'readonly'    => true,
				'properties'  => array(
					'_type'  => array(
						'type'        => 'string',
						'enum'        => array( PaymentProviders::EXTENSION_TYPE_WPORG ),
						'description' => esc_html__( 'The type of the plugin.', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
					),
					'slug'   => array(
						'type'        => 'string',
						'description' => esc_html__( 'The slug of the plugin.', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
					),
					'file'   => array(
						'type'        => 'string',
						'description' => esc_html__( 'The plugin main file. This is a relative path to the plugins directory.', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
					),
					'status' => array(
						'type'        => 'string',
						'enum'        => array(
							PaymentProviders::EXTENSION_NOT_INSTALLED,
							PaymentProviders::EXTENSION_INSTALLED,
							PaymentProviders::EXTENSION_ACTIVE,
						),
						'description' => esc_html__( 'The status of the plugin.', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
					),
				),
			),
			'image'          => array(
				'type'        => 'string',
				'description' => esc_html__( 'The URL of the provider image.', 'woocommerce' ),
				'readonly'    => true,
			),
			'icon'           => array(
				'type'        => 'string',
				'description' => esc_html__( 'The URL of the provider icon (square aspect ratio - 72px by 72px).', 'woocommerce' ),
				'readonly'    => true,
			),
			'links'          => array(
				'type'        => 'array',
				'description' => __( 'Links for the provider.', 'woocommerce' ),
				'context'     => array( 'view', 'edit' ),
				'readonly'    => true,
				'items'       => array(
					'type'       => 'object',
					'properties' => array(
						'_type' => array(
							'type'        => 'string',
							'description' => esc_html__( 'The type of the link.', 'woocommerce' ),
							'context'     => array( 'view', 'edit' ),
							'readonly'    => true,
						),
						'url'   => array(
							'type'        => 'string',
							'description' => esc_html__( 'The URL of the link.', 'woocommerce' ),
							'context'     => array( 'view', 'edit' ),
							'readonly'    => true,
						),
					),
				),
			),
			'state'          => array(
				'type'        => 'object',
				'description' => esc_html__( 'The general state of the provider with regards to it\'s payments processing.', 'woocommerce' ),
				'properties'  => array(
					'enabled'           => array(
						'type'        => 'boolean',
						'description' => esc_html__( 'Whether the provider is enabled for use on checkout.', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
					),
					'account_connected' => array(
						'type'        => 'boolean',
						'description' => esc_html__( 'Whether the provider has a payments processing account connected.', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
					),
					'needs_setup'       => array(
						'type'        => 'boolean',
						'description' => esc_html__( 'Whether the provider needs setup.', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
					),
					'test_mode'         => array(
						'type'        => 'boolean',
						'description' => esc_html__( 'Whether the provider is in test mode for payments processing.', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
					),
					'dev_mode'          => array(
						'type'        => 'boolean',
						'description' => esc_html__( 'Whether the provider is in dev mode. Having this true usually leads to forcing test payments. ', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
					),
				),
			),
			'management'     => array(
				'type'        => 'object',
				'description' => esc_html__( 'The management details of the provider.', 'woocommerce' ),
				'properties'  => array(
					'_links' => array(
						'type'       => 'object',
						'context'    => array( 'view', 'edit' ),
						'readonly'   => true,
						'properties' => array(
							'settings' => array(
								'type'        => 'object',
								'description' => esc_html__( 'The link to the settings page for the payment gateway.', 'woocommerce' ),
								'context'     => array( 'view', 'edit' ),
								'readonly'    => true,
								'properties'  => array(
									'href' => array(
										'type'        => 'string',
										'description' => esc_html__( 'The URL to the settings page for the payment gateway.', 'woocommerce' ),
										'context'     => array( 'view', 'edit' ),
										'readonly'    => true,
									),
								),
							),
						),
					),
				),
			),
			'onboarding'     => array(
				'type'        => 'object',
				'description' => esc_html__( 'Onboarding-related details for the provider.', 'woocommerce' ),
				'properties'  => array(
					'state'                       => array(
						'type'        => 'object',
						'description' => esc_html__( 'The state of the onboarding process.', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'properties'  => array(
							'started'   => array(
								'type'        => 'boolean',
								'description' => esc_html__( 'Whether the onboarding process has been started.', 'woocommerce' ),
								'context'     => array( 'view', 'edit' ),
								'readonly'    => true,
							),
							'completed' => array(
								'type'        => 'boolean',
								'description' => esc_html__( 'Whether the onboarding process has been completed.', 'woocommerce' ),
								'context'     => array( 'view', 'edit' ),
								'readonly'    => true,
							),
							'test_mode' => array(
								'type'        => 'boolean',
								'description' => esc_html__( 'Whether the onboarding process happens in test mode (aka sandbox or test-drive).', 'woocommerce' ),
								'context'     => array( 'view', 'edit' ),
								'readonly'    => true,
							),
						),
					),
					'_links'                      => array(
						'type'       => 'object',
						'context'    => array( 'view', 'edit' ),
						'readonly'   => true,
						'properties' => array(
							'onboard' => array(
								'type'        => 'object',
								'description' => esc_html__( 'The start/continue onboarding link for the payment gateway.', 'woocommerce' ),
								'context'     => array( 'view', 'edit' ),
								'readonly'    => true,
								'properties'  => array(
									'href' => array(
										'type'        => 'string',
										'description' => esc_html__( 'The URL to start/continue onboarding for the payment gateway.', 'woocommerce' ),
										'context'     => array( 'view', 'edit' ),
										'readonly'    => true,
									),
								),
							),
						),
					),
					'recommended_payment_methods' => array(
						'type'        => 'array',
						'description' => esc_html__( 'The list of recommended payment methods details for the payment gateway.', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
						'items'       => array(
							'type'        => 'object',
							'description' => esc_html__( 'The details for a recommended payment method.', 'woocommerce' ),
							'context'     => array( 'view', 'edit' ),
							'readonly'    => true,
							'properties'  => array(
								'id'          => array(
									'type'        => 'string',
									'description' => esc_html__( 'The unique identifier for the payment method.', 'woocommerce' ),
									'context'     => array( 'view', 'edit' ),
									'readonly'    => true,
								),
								'_order'      => array(
									'type'        => 'integer',
									'description' => esc_html__( 'The sort order of the payment method.', 'woocommerce' ),
									'context'     => array( 'view', 'edit' ),
									'readonly'    => true,
								),
								'enabled'     => array(
									'type'        => 'boolean',
									'description' => esc_html__( 'Whether the payment method should be recommended as enabled or not.', 'woocommerce' ),
									'context'     => array( 'view', 'edit' ),
									'readonly'    => true,
								),
								'required'    => array(
									'type'        => 'boolean',
									'description' => esc_html__( 'Whether the payment method should be required (and force-enabled) or not.', 'woocommerce' ),
									'context'     => array( 'view', 'edit' ),
									'readonly'    => true,
								),
								'title'       => array(
									'type'        => 'string',
									'description' => esc_html__( 'The title of the payment method. Does not include HTML tags.', 'woocommerce' ),
									'context'     => array( 'view', 'edit' ),
									'readonly'    => true,
								),
								'description' => array(
									'type'        => 'string',
									'description' => esc_html__( 'The description of the payment method. It can contain basic HTML.', 'woocommerce' ),
									'context'     => array( 'view', 'edit' ),
									'readonly'    => true,
								),
								'icon'        => array(
									'type'        => 'string',
									'description' => esc_html__( 'The URL of the payment method icon or a base64-encoded SVG image.', 'woocommerce' ),
									'context'     => array( 'view', 'edit' ),
									'readonly'    => true,
								),
							),
						),
					),
				),
			),
			'tags'           => array(
				'type'        => 'array',
				'description' => esc_html__( 'The tags associated with the provider.', 'woocommerce' ),
				'uniqueItems' => true,
				'context'     => array( 'view', 'edit' ),
				'readonly'    => true,
				'items'       => array(
					'type'        => 'string',
					'description' => esc_html__( 'Tag associated with the provider.', 'woocommerce' ),
					'readonly'    => true,
				),
			),
			'_suggestion_id' => array(
				'type'        => 'string',
				'description' => esc_html__( 'The suggestion ID matching this provider.', 'woocommerce' ),
				'context'     => array( 'view', 'edit' ),
				'readonly'    => true,
			),
			'_incentive'     => array(
				'type'        => 'object',
				'description' => esc_html__( 'The active incentive for the provider.', 'woocommerce' ),
				'context'     => array( 'view', 'edit' ),
				'readonly'    => true,
				'properties'  => array(
					'id'                => array(
						'type'        => 'string',
						'description' => esc_html__( 'The incentive unique ID. This ID needs to be used for incentive dismissals.', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
					),
					'promo_id'          => array(
						'type'        => 'string',
						'description' => esc_html__( 'The incentive promo ID. This ID need to be fed into the onboarding flow.', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
					),
					'title'             => array(
						'type'        => 'string',
						'description' => esc_html__( 'The incentive title. It can contain stylistic HTML.', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
					),
					'description'       => array(
						'type'        => 'string',
						'description' => esc_html__( 'The incentive description. It can contain stylistic HTML.', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
					),
					'short_description' => array(
						'type'        => 'string',
						'description' => esc_html__( 'The short description of the incentive. It can contain stylistic HTML.', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
					),
					'cta_label'         => array(
						'type'        => 'string',
						'description' => esc_html__( 'The call to action label for the incentive.', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
					),
					'tc_url'            => array(
						'type'        => 'string',
						'description' => esc_html__( 'The URL to the terms and conditions for the incentive.', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
					),
					'badge'             => array(
						'type'        => 'string',
						'description' => esc_html__( 'The badge label for the incentive.', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
					),
					'_dismissals'       => array(
						'type'        => 'array',
						'description' => esc_html__( 'The dismissals list for the incentive. The `all` entry means the incentive was dismissed for all contexts.', 'woocommerce' ),
						'uniqueItems' => true,
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
						'items'       => array(
							'type'        => 'string',
							'description' => esc_html__( 'Context ID in which the incentive was dismissed.', 'woocommerce' ),
							'readonly'    => true,
						),
					),
					'_links'            => array(
						'type'       => 'object',
						'context'    => array( 'view', 'edit' ),
						'readonly'   => true,
						'properties' => array(
							'dismiss' => array(
								'type'        => 'object',
								'description' => esc_html__( 'The link to dismiss the incentive.', 'woocommerce' ),
								'context'     => array( 'view', 'edit' ),
								'readonly'    => true,
								'properties'  => array(
									'href' => array(
										'type'        => 'string',
										'description' => esc_html__( 'The URL to dismiss the incentive.', 'woocommerce' ),
										'context'     => array( 'view', 'edit' ),
										'readonly'    => true,
									),
								),
							),
							'onboard' => array(
								'type'        => 'object',
								'description' => esc_html__( 'The start/continue onboarding link for the payment gateway.', 'woocommerce' ),
								'context'     => array( 'view', 'edit' ),
								'readonly'    => true,
								'properties'  => array(
									'href' => array(
										'type'        => 'string',
										'description' => esc_html__( 'The URL to start/continue onboarding for the payment gateway.', 'woocommerce' ),
										'context'     => array( 'view', 'edit' ),
										'readonly'    => true,
									),
								),
							),
						),
					),
				),
			),
			'_links'         => array(
				'type'       => 'object',
				'context'    => array( 'view', 'edit' ),
				'readonly'   => true,
				'properties' => array(
					'hide' => array(
						'type'        => 'object',
						'description' => esc_html__( 'The link to hide the suggestion.', 'woocommerce' ),
						'context'     => array( 'view', 'edit' ),
						'readonly'    => true,
						'properties'  => array(
							'href' => array(
								'type'        => 'string',
								'description' => esc_html__( 'The URL to hide the suggestion.', 'woocommerce' ),
								'context'     => array( 'view', 'edit' ),
								'readonly'    => true,
							),
						),
					),
				),
			),
		),
	);
}