{lang: 'hu'}

Eltartott egy darabig, amíg sikerült rájönni hogyan lehet egy adott megrendelés összes kommentjét lekérdezni, de végül sikerült. Az első próbálkozásom valahogy így nézett ki:


function get_all_order_comments($order_id) {
	$args = array(
		'post_id' => $order_id,
		'approve' => 'approve',
		'type' => ''
	);

	return get_comments($args);
}

Sajnos ez így nem működött, mert – mint utólag kiderült – a WooCommerce a kommentek lekérdezése során filterezi az eredményt. (ha jól sejtem azért, hogy ha a terméknél engedélyezve vannak a hozzászólások, akkor ne jelenjenek meg ezek a belső információk) A megoldás tehát az, hogy el kell távolítani a filtert a kommentek lekérdezésének idejére, aztán utána újra regisztrálni. Ami a következőképp fest:


function get_all_order_comments($order_id) {
	remove_filter( 'comments_clauses', array( 'WC_Comments', 'exclude_order_comments' ) );

	$comments = get_comments( array(
		'post_id' => $order_id,
		'approve' => 'approve',
		'type' => ''
	) );

	add_filter( 'comments_clauses', array( 'WC_Comments', 'exclude_order_comments' ) );

	return $comments;
}