[buddypress-trac] [BuddyPress Trac] #9327: Enhancement Request: Add `privacy` column to `bp_activity` for per-item visibility control

buddypress-trac noreply at wordpress.org
Sun May 31 16:48:45 UTC 2026


#9327: Enhancement Request: Add `privacy` column to `bp_activity` for per-item
visibility control
-------------------------+------------------------------
 Reporter:  indigetal    |       Owner:  (none)
     Type:  enhancement  |      Status:  new
 Priority:  normal       |   Milestone:  Awaiting Review
Component:  Activity     |     Version:
 Severity:  normal       |  Resolution:
 Keywords:  has-patch    |
-------------------------+------------------------------

Comment (by indigetal):

 Today, `hide_sitewide` covers one visibility case well: "keep an item off
 the sitewide stream." Many community sites and extensions need a separate,
 per-activity audience value, such as friends-only updates, logged-in-only
 posts, author-only notes, group-context visibility, and similar patterns
 that are common on modern social products. Without a first-class column,
 every plugin that needs this ends up inventing its own storage (custom
 columns, meta, or post-save workarounds) and its own query logic, which
 fragments behavior across the ecosystem.

 Landing `privacy` in core as storage + optional query/REST support (not UI
 or enforcement policy) would give themes and plugins a shared contract,
 similar to how `hide_sitewide` already works: core stores and exposes the
 value; extensions decide what values mean and who can see what.

 That would make it easier to build, in a consistent way:

 * Privacy-aware activity streams and directories (extensions filtering
 what the current viewer should see)
 * Search and discovery that respect activity audience, not only sitewide
 visibility
 * REST/mobile clients that can read and set audience metadata without one-
 off APIs per plugin
 * Group and profile posting flows that preserve audience when updates go
 through `bp_activity_add()` and related helpers

 We are not asking core to ship a full “privacy product” — no picker UI, no
 fixed enum, no built-in access rules. The goal is shared infrastructure so
 multiple independent plugins do not each fork activity persistence or
 reimplement the same column.

 PR #438 is ready for review when useful. Happy to adjust scope if
 maintainers prefer a smaller first step (for example schema + model only,
 REST in a follow-up).

 Thanks for considering it.

-- 
Ticket URL: <https://buddypress.trac.wordpress.org/ticket/9327#comment:4>
BuddyPress Trac <http://buddypress.org/>
BuddyPress Trac


More information about the buddypress-trac mailing list