WP_Sync_Post_Meta_Storage::get_awareness_state
Gets awareness state for a given room.
Method of the class: WP_Sync_Post_Meta_Storage{}
No Hooks.
Returns
Array
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.
$wpdbWordPress database abstraction object.
Changelog
| Since 7.0.0 | Introduced. |
WP_Sync_Post_Meta_Storage::get_awareness_state() 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 );
}