Automattic\WooCommerce\Internal\OrderReviews

ItemEligibility::prefill_for_item │ public static │ WC 10.8.0

Pre-fill payload for a line item: rating, text, and comment id.

Returns zero/empty values when no review exists for this order's row, so callers can use it unconditionally.

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

Хуков нет.

Возвращает

array{rating:int, text:string, comment_id:int}.

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

$result = ItemEligibility::prefill_for_item( $item, $order ): array;
$item(WC_Order_Item_Product) (обязательный)
Order line item.
$order(WC_Order) (обязательный)
Order being reviewed.

Список изменений

С версии 10.8.0 Введена.

Код ItemEligibility::prefill_for_item() WC 11.2.2

public static function prefill_for_item( WC_Order_Item_Product $item, WC_Order $order ): array {
	$existing = self::find_existing_review(
		(int) $item->get_product_id(),
		(int) $item->get_variation_id(),
		$order
	);
	if ( ! $existing instanceof WP_Comment ) {
		return array(
			'rating'     => 0,
			'text'       => '',
			'comment_id' => 0,
		);
	}

	$rating = (int) get_comment_meta( (int) $existing->comment_ID, 'rating', true );
	if ( $rating < 0 || $rating > 5 ) {
		$rating = 0;
	}

	return array(
		'rating'     => $rating,
		'text'       => (string) $existing->comment_content,
		'comment_id' => (int) $existing->comment_ID,
	);
}