wp_refresh_post_lock( array $response, array $data, string $screen_id )
Check lock status on the New/Edit Post screen and refresh the lock
Parameters
- $response
-
(Required) The Heartbeat response.
- $data
-
(Required) The $_POST data sent.
- $screen_id
-
(Required) The screen id.
Return
(array) The Heartbeat response.
Source
File: wp-admin/includes/misc.php
function wp_refresh_post_lock( $response, $data, $screen_id ) {
if ( array_key_exists( 'wp-refresh-post-lock', $data ) ) {
$received = $data['wp-refresh-post-lock'];
$send = array();
if ( ! $post_id = absint( $received['post_id'] ) )
return $response;
if ( ! current_user_can('edit_post', $post_id) )
return $response;
if ( ( $user_id = wp_check_post_lock( $post_id ) ) && ( $user = get_userdata( $user_id ) ) ) {
$error = array(
'text' => sprintf( __( '%s has taken over and is currently editing.' ), $user->display_name )
);
if ( $avatar = get_avatar( $user->ID, 64 ) ) {
if ( preg_match( "|src='([^']+)'|", $avatar, $matches ) )
$error['avatar_src'] = $matches[1];
}
$send['lock_error'] = $error;
} else {
if ( $new_lock = wp_set_post_lock( $post_id ) )
$send['new_lock'] = implode( ':', $new_lock );
}
$response['wp-refresh-post-lock'] = $send;
}
return $response;
}
Changelog
Version | Description |
---|---|
WP-3.6.0 | Introduced. |