WC_REST_Product_Reviews_Controller::get_item_schema()publicWC 1.0

Get the Product Review's schema, conforming to JSON Schema.

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

Хуков нет.

Возвращает

Массив.

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

$WC_REST_Product_Reviews_Controller = new WC_REST_Product_Reviews_Controller();
$WC_REST_Product_Reviews_Controller->get_item_schema();

Код WC_REST_Product_Reviews_Controller::get_item_schema() WC 8.7.0

public function get_item_schema() {
	$schema = array(
		'$schema'    => 'http://json-schema.org/draft-04/schema#',
		'title'      => 'product_review',
		'type'       => 'object',
		'properties' => array(
			'id'               => array(
				'description' => __( 'Unique identifier for the resource.', 'woocommerce' ),
				'type'        => 'integer',
				'context'     => array( 'view', 'edit' ),
				'readonly'    => true,
			),
			'date_created'     => array(
				'description' => __( "The date the review was created, in the site's timezone.", 'woocommerce' ),
				'type'        => 'date-time',
				'context'     => array( 'view', 'edit' ),
				'readonly'    => true,
			),
			'date_created_gmt' => array(
				'description' => __( 'The date the review was created, as GMT.', 'woocommerce' ),
				'type'        => 'date-time',
				'context'     => array( 'view', 'edit' ),
				'readonly'    => true,
			),
			'product_id'       => array(
				'description' => __( 'Unique identifier for the product that the review belongs to.', 'woocommerce' ),
				'type'        => 'integer',
				'context'     => array( 'view', 'edit' ),
			),
			'product_name'       => array(
				'description' => __( 'Product name.', 'woocommerce' ),
				'type'        => 'string',
				'context'     => array( 'view', 'edit' ),
			),
			'product_permalink'       => array(
				'description' => __( 'Product URL.', 'woocommerce' ),
				'type'        => 'string',
				'format'      => 'uri',
				'context'     => array( 'view', 'edit' ),
				'readonly'    => true,
			),
			'status'           => array(
				'description' => __( 'Status of the review.', 'woocommerce' ),
				'type'        => 'string',
				'default'     => 'approved',
				'enum'        => array( 'approved', 'hold', 'spam', 'unspam', 'trash', 'untrash' ),
				'context'     => array( 'view', 'edit' ),
			),
			'reviewer'         => array(
				'description' => __( 'Reviewer name.', 'woocommerce' ),
				'type'        => 'string',
				'context'     => array( 'view', 'edit' ),
			),
			'reviewer_email'   => array(
				'description' => __( 'Reviewer email.', 'woocommerce' ),
				'type'        => 'string',
				'format'      => 'email',
				'context'     => array( 'view', 'edit' ),
			),
			'review'           => array(
				'description' => __( 'The content of the review.', 'woocommerce' ),
				'type'        => 'string',
				'context'     => array( 'view', 'edit' ),
				'arg_options' => array(
					'sanitize_callback' => 'wp_filter_post_kses',
				),
			),
			'rating'           => array(
				'description' => __( 'Review rating (0 to 5).', 'woocommerce' ),
				'type'        => 'integer',
				'context'     => array( 'view', 'edit' ),
			),
			'verified'         => array(
				'description' => __( 'Shows if the reviewer bought the product or not.', 'woocommerce' ),
				'type'        => 'boolean',
				'context'     => array( 'view', 'edit' ),
				'readonly'    => true,
			),
		),
	);

	if ( get_option( 'show_avatars' ) ) {
		$avatar_properties = array();
		$avatar_sizes      = rest_get_avatar_sizes();

		foreach ( $avatar_sizes as $size ) {
			$avatar_properties[ $size ] = array(
				/* translators: %d: avatar image size in pixels */
				'description' => sprintf( __( 'Avatar URL with image size of %d pixels.', 'woocommerce' ), $size ),
				'type'        => 'string',
				'format'      => 'uri',
				'context'     => array( 'embed', 'view', 'edit' ),
			);
		}
		$schema['properties']['reviewer_avatar_urls'] = array(
			'description' => __( 'Avatar URLs for the object reviewer.', 'woocommerce' ),
			'type'        => 'object',
			'context'     => array( 'view', 'edit' ),
			'readonly'    => true,
			'properties'  => $avatar_properties,
		);
	}

	return $this->add_additional_fields_schema( $schema );
}