Automattic\WooCommerce\Internal\OrderReviews
ItemEligibility::prefill_for_item
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.
Method of the class: ItemEligibility{}
No Hooks.
Returns
Array{rating:Int,. text:string, comment_id:int}
Usage
$result = ItemEligibility::prefill_for_item( $item, $order ): array;
- $item(WC_Order_Item_Product) (required)
- Order line item.
- $order(WC_Order) (required)
- Order being reviewed.
Changelog
| Since 10.8.0 | Introduced. |
ItemEligibility::prefill_for_item() ItemEligibility::prefill for item code WC 10.9.4
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,
);
}