The override_post_lock WordPress PHP filter allows you to control whether the post lock can be overridden or not.
Usage
add_filter('override_post_lock', 'your_custom_function', 10, 3);
function your_custom_function($override, $post, $user) {
// Your custom code here
return $override;
}
Parameters
$override(bool) – Whether to allow the post lock to be overridden. Default is true.$post(WP_Post) – The post object being locked.$user(WP_User) – The user who currently holds the lock for the post.
More information
See WordPress Developer Resources: override_post_lock
Examples
Prevent post lock override for specific user role
Prevent users with the ‘contributor’ role from overriding the post lock.
add_filter('override_post_lock', 'prevent_contributor_override', 10, 3);
function prevent_contributor_override($override, $post, $user) {
if (in_array('contributor', $user->roles)) {
return false;
}
return $override;
}
Prevent post lock override for specific post type
Disable post lock override for the ‘event’ post type.
add_filter('override_post_lock', 'prevent_event_override', 10, 3);
function prevent_event_override($override, $post, $user) {
if ($post->post_type == 'event') {
return false;
}
return $override;
}
Allow post lock override for specific user
Allow only user with ID 5 to override post lock.
add_filter('override_post_lock', 'allow_user_override', 10, 3);
function allow_user_override($override, $post, $user) {
if ($user->ID == 5) {
return true;
}
return $override;
}
Prevent post lock override for specific post ID
Disable post lock override for a specific post with ID 10.
add_filter('override_post_lock', 'prevent_specific_post_override', 10, 3);
function prevent_specific_post_override($override, $post, $user) {
if ($post->ID == 10) {
return false;
}
return $override;
}