wp_refresh_post_lock() – Checks lock status on the New/Edit Post screen and refresh the lock.

You appear to be a bot. Output may be restricted

Description

Checks lock status on the New/Edit Post screen and refresh the lock.

Usage

$array = wp_refresh_post_lock( $response, $data, $screen_id );

Parameters

$response
( array ) required – The Heartbeat response.
$data
( array ) required – The $_POST data sent.
$screen_id
( string ) required – The screen ID.

Returns

array The Heartbeat response.

Source

File name: wordpress/wp-admin/includes/misc.php


Lines:

1 to 45 of 45
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();

    $post_id = absint( $received['post_id'] );

    if ( ! $post_id ) {
      return $response;
    }

    if ( ! current_user_can( 'edit_post', $post_id ) ) {
      return $response;
    }

    $user_id = wp_check_post_lock( $post_id );
    $user    = get_userdata( $user_id );

    if ( $user ) {
      $error = array(
        'name' => $user->display_name,
        /* translators: %s: User's display name. */
        'text' => sprintf( __( '%s has taken over and is currently editing.' ), $user->display_name ),
      );

      if ( get_option( 'show_avatars' ) ) {
        $error['avatar_src']    = get_avatar_url( $user->ID, array( 'size' => 64 ) );
        $error['avatar_src_2x'] = get_avatar_url( $user->ID, array( 'size' => 128 ) );
      }

      $send['lock_error'] = $error;
    } else {
      $new_lock = wp_set_post_lock( $post_id );

      if ( $new_lock ) {
        $send['new_lock'] = implode( ':', $new_lock );
      }
    }

    $response['wp-refresh-post-lock'] = $send;
  }

  return $response;
}
 

 View on GitHub View on Trac