WP_Sync_Post_Meta_Storage::get_awareness_statepublicWP 7.0.0

Gets awareness state for a given room.

Method of the class: WP_Sync_Post_Meta_Storage{}

No Hooks.

Returns

Array. mixed> Awareness state.

Usage

$WP_Sync_Post_Meta_Storage = new WP_Sync_Post_Meta_Storage();
$WP_Sync_Post_Meta_Storage->get_awareness_state( $room ): array;
$room(string) (required)
Room identifier.

Notes

  • Global. wpdb. $wpdb WordPress database abstraction object.

Changelog

Since 7.0.0 Introduced.

WP_Sync_Post_Meta_Storage::get_awareness_state() code WP 7.0

public function get_awareness_state( string $room ): array {
	global $wpdb;

	$post_id = $this->get_storage_post_id( $room );
	if ( null === $post_id ) {
		return array();
	}

	// Use direct database operation to avoid updating the post meta cache.
	// ORDER BY meta_id DESC ensures the latest row wins if duplicates exist
	// from a past race condition in set_awareness_state().
	$meta_value = $wpdb->get_var(
		$wpdb->prepare(
			"SELECT meta_value FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = %s ORDER BY meta_id DESC LIMIT 1",
			$post_id,
			self::AWARENESS_META_KEY
		)
	);

	if ( null === $meta_value ) {
		return array();
	}

	$awareness = json_decode( $meta_value, true );

	if ( ! is_array( $awareness ) ) {
		return array();
	}

	return array_values( $awareness );
}