[wp-trac] [WordPress Trac] #32202: Add support for options page locking (settings API concurrency)

WordPress Trac noreply at wordpress.org
Mon Jul 7 23:02:41 UTC 2025


#32202: Add support for options page locking (settings API concurrency)
------------------------------------+-----------------------------
 Reporter:  westonruter             |       Owner:  (none)
     Type:  enhancement             |      Status:  new
 Priority:  normal                  |   Milestone:  Future Release
Component:  Options, Meta APIs      |     Version:  3.6
 Severity:  normal                  |  Resolution:
 Keywords:  has-patch dev-feedback  |     Focuses:  administration
------------------------------------+-----------------------------
Changes (by westonruter):

 * milestone:   => Future Release


Comment:

 @callumbw95 Thanks for reminding me of this decade-old ticket! It
 definitely seems relevant for Phase 3 (Collaboration).

 I think the open question I have for this ticket is how often it is an
 issue. In practice, most setting screens (in core) are likely updated
 rarely. I'd love to hear anecdotes from users who have actually had the
 problem of two users overwriting their pending changes. Granted, plugins
 may have settings screens which are updated much more commonly, even on a
 daily basis, having some locking mechanism may make sense.

 At the very least, for collaborative editing I should think that there
 should be a way to have a presence indicator shown on the various admin
 screens. In this way, if I land on the Reading screen and yet I see that
 Callum Bridgford-Whittick is shown as also being there, then I should
 probably ping you to collaborate and not make any change. So I think the
 awareness of presence is the first problem to solve.

 Going beyond this, maybe an active presence from another user could cause
 a screen to be locked with an overlay. But I can imagine this being
 problematic for screens like those with list tables on which users could
 make discrete changes to individual items without there being a conflict.
 Granted these are not "options" screens, but consider the case of two
 users both being on the Comments screen to moderate pending comments. It
 could be that the two users are collaborating so that one starts
 moderating comments list from the top and the other from the bottom to
 then meet in the middle. This issue could also manifest on non-core
 options screens that have option toggles that apply their updates live
 without having to submit the form.

 Then again, if two users are allowed on the same screen at the same time,
 there's then the issue of the state of the pages diverging, so the two
 users aren't sure what has been touched by the other user or not. To
 address this, the ideal would be for the page states to sync across the
 user sessions, but this quickly adds to the complexity (and may not even
 be possible for custom options screens using their own ad hoc JS).

 I think I've argued myself back in favor of having a screen locking
 overlay when there is another user present, for options screens
 specifically. For other screens, like those using data views, more
 sophisticated collaboration could be used such as synchronizing state
 across user sessions.

 I don't think it makes sense to try to implement any kind of
 synchronization of form fields on an options screen for concurrent users.
 This will be unreliable. A simple lock screen overlay should be quite
 sufficient. Anything beyond this should be plugin territory.

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/32202#comment:13>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list