Title: WP_Sync_Post_Meta_Storage::set_awareness_state
Published: May 20, 2026

---

# WP_Sync_Post_Meta_Storage::set_awareness_state( string $room,  $awareness ): bool

## In this article

 * [Parameters](https://developer.wordpress.org/reference/classes/wp_sync_post_meta_storage/set_awareness_state/?output_format=md#parameters)
 * [Return](https://developer.wordpress.org/reference/classes/wp_sync_post_meta_storage/set_awareness_state/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/classes/wp_sync_post_meta_storage/set_awareness_state/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/classes/wp_sync_post_meta_storage/set_awareness_state/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/classes/wp_sync_post_meta_storage/set_awareness_state/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/classes/wp_sync_post_meta_storage/set_awareness_state/?output_format=md#wp--skip-link--target)

Sets awareness state for a given room.

## 󠀁[Parameters](https://developer.wordpress.org/reference/classes/wp_sync_post_meta_storage/set_awareness_state/?output_format=md#parameters)󠁿

 `$room`stringrequired

Room identifier.

mixed> $awareness Serializable awareness state.

## 󠀁[Return](https://developer.wordpress.org/reference/classes/wp_sync_post_meta_storage/set_awareness_state/?output_format=md#return)󠁿

 bool True on success, false on failure.

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wp_sync_post_meta_storage/set_awareness_state/?output_format=md#source)󠁿

    ```php
    public function set_awareness_state( string $room, array $awareness ): bool {
    	global $wpdb;

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

    	// Use direct database operation to avoid cache invalidation performed by
    	// post meta functions (`wp_cache_set_posts_last_changed()` and direct
    	// `wp_cache_delete()` calls).
    	//
    	// If two concurrent requests both see no row and both INSERT, the
    	// duplicate is harmless: get_awareness_state() reads the latest row
    	// (ORDER BY meta_id DESC).
    	$meta_id = $wpdb->get_var(
    		$wpdb->prepare(
    			"SELECT meta_id 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 ( $meta_id ) {
    		return (bool) $wpdb->update(
    			$wpdb->postmeta,
    			array( 'meta_value' => wp_json_encode( $awareness ) ),
    			array( 'meta_id' => $meta_id ),
    			array( '%s' ),
    			array( '%d' )
    		);
    	}

    	return (bool) $wpdb->insert(
    		$wpdb->postmeta,
    		array(
    			'post_id'    => $post_id,
    			'meta_key'   => self::AWARENESS_META_KEY,
    			'meta_value' => wp_json_encode( $awareness ),
    		),
    		array( '%d', '%s', '%s' )
    	);
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/collaboration/class-wp-sync-post-meta-storage.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.0/src/wp-includes/collaboration/class-wp-sync-post-meta-storage.php#L153)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.0/src/wp-includes/collaboration/class-wp-sync-post-meta-storage.php#L153-L195)

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wp_sync_post_meta_storage/set_awareness_state/?output_format=md#related)󠁿

| Uses | Description | 
| [WP_Sync_Post_Meta_Storage::get_storage_post_id()](https://developer.wordpress.org/reference/classes/wp_sync_post_meta_storage/get_storage_post_id/)`wp-includes/collaboration/class-wp-sync-post-meta-storage.php` |

Gets or creates the storage post for a given room.

  | 
| [wpdb::update()](https://developer.wordpress.org/reference/classes/wpdb/update/)`wp-includes/class-wpdb.php` |

Updates a row in the table.

  | 
| [wpdb::insert()](https://developer.wordpress.org/reference/classes/wpdb/insert/)`wp-includes/class-wpdb.php` |

Inserts a row into the table.

  | 
| [wp_json_encode()](https://developer.wordpress.org/reference/functions/wp_json_encode/)`wp-includes/functions.php` |

Encodes a variable into JSON, with some confidence checks.

  | 
| [wpdb::get_var()](https://developer.wordpress.org/reference/classes/wpdb/get_var/)`wp-includes/class-wpdb.php` |

Retrieves one value from the database.

  | 
| [wpdb::prepare()](https://developer.wordpress.org/reference/classes/wpdb/prepare/)`wp-includes/class-wpdb.php` |

Prepares a SQL query for safe execution.

  |

[Show 3 more](https://developer.wordpress.org/reference/classes/wp_sync_post_meta_storage/set_awareness_state/?output_format=md#)
[Show less](https://developer.wordpress.org/reference/classes/wp_sync_post_meta_storage/set_awareness_state/?output_format=md#)

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wp_sync_post_meta_storage/set_awareness_state/?output_format=md#changelog)󠁿

| Version | Description | 
| [7.0.0](https://developer.wordpress.org/reference/since/7.0.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwp_sync_post_meta_storage%2Fset_awareness_state%2F)
before being able to contribute a note or feedback.