wp_check_locked_posts

The timeline below displays how wordpress function wp_check_locked_posts has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.1

/**
 * Checks lock status for posts displayed on the Posts screen.
 *
 * @since 3.6.0
 *
 * @param array  $response  The Heartbeat response.
 * @param array  $data      The $_POST data sent.
 * @param string $screen_id The screen ID.
 * @return array The Heartbeat response.
 */
function wp_check_locked_posts($response, $data, $screen_id)
{
    $checked = array();
    if (array_key_exists('wp-check-locked-posts', $data) && is_array($data['wp-check-locked-posts'])) {
        foreach ($data['wp-check-locked-posts'] as $key) {
            $post_id = absint(substr($key, 5));
            if (!$post_id) {
                continue;
            }
            $user_id = wp_check_post_lock($post_id);
            if ($user_id) {
                $user = get_userdata($user_id);
                if ($user && current_user_can('edit_post', $post_id)) {
                    $send = array(
                        'name' => $user->display_name,
                        /* translators: %s: User's display name. */
                        'text' => sprintf(__('%s is currently editing'), $user->display_name),
                    );
                    if (get_option('show_avatars')) {
                        $send['avatar_src'] = get_avatar_url($user->ID, array('size' => 18));
                        $send['avatar_src_2x'] = get_avatar_url($user->ID, array('size' => 36));
                    }
                    $checked[$key] = $send;
                }
            }
        }
    }
    if (!empty($checked)) {
        $response['wp-check-locked-posts'] = $checked;
    }
    return $response;
}

WordPress Version: 5.5

/**
 * Check lock status for posts displayed on the Posts screen
 *
 * @since 3.6.0
 *
 * @param array  $response  The Heartbeat response.
 * @param array  $data      The $_POST data sent.
 * @param string $screen_id The screen ID.
 * @return array The Heartbeat response.
 */
function wp_check_locked_posts($response, $data, $screen_id)
{
    $checked = array();
    if (array_key_exists('wp-check-locked-posts', $data) && is_array($data['wp-check-locked-posts'])) {
        foreach ($data['wp-check-locked-posts'] as $key) {
            $post_id = absint(substr($key, 5));
            if (!$post_id) {
                continue;
            }
            $user_id = wp_check_post_lock($post_id);
            if ($user_id) {
                $user = get_userdata($user_id);
                if ($user && current_user_can('edit_post', $post_id)) {
                    $send = array(
                        /* translators: %s: User's display name. */
                        'text' => sprintf(__('%s is currently editing'), $user->display_name),
                    );
                    if (get_option('show_avatars')) {
                        $send['avatar_src'] = get_avatar_url($user->ID, array('size' => 18));
                        $send['avatar_src_2x'] = get_avatar_url($user->ID, array('size' => 36));
                    }
                    $checked[$key] = $send;
                }
            }
        }
    }
    if (!empty($checked)) {
        $response['wp-check-locked-posts'] = $checked;
    }
    return $response;
}

WordPress Version: 5.3

/**
 * Check lock status for posts displayed on the Posts screen
 *
 * @since 3.6.0
 *
 * @param array  $response  The Heartbeat response.
 * @param array  $data      The $_POST data sent.
 * @param string $screen_id The screen id.
 * @return array The Heartbeat response.
 */
function wp_check_locked_posts($response, $data, $screen_id)
{
    $checked = array();
    if (array_key_exists('wp-check-locked-posts', $data) && is_array($data['wp-check-locked-posts'])) {
        foreach ($data['wp-check-locked-posts'] as $key) {
            $post_id = absint(substr($key, 5));
            if (!$post_id) {
                continue;
            }
            $user_id = wp_check_post_lock($post_id);
            if ($user_id) {
                $user = get_userdata($user_id);
                if ($user && current_user_can('edit_post', $post_id)) {
                    $send = array(
                        /* translators: %s: User's display name. */
                        'text' => sprintf(__('%s is currently editing'), $user->display_name),
                    );
                    $avatar = get_avatar($user->ID, 18);
                    if ($avatar && preg_match("|src='([^']+)'|", $avatar, $matches)) {
                        $send['avatar_src'] = $matches[1];
                    }
                    $checked[$key] = $send;
                }
            }
        }
    }
    if (!empty($checked)) {
        $response['wp-check-locked-posts'] = $checked;
    }
    return $response;
}

WordPress Version: 4.5

/**
 * Check lock status for posts displayed on the Posts screen
 *
 * @since 3.6.0
 *
 * @param array  $response  The Heartbeat response.
 * @param array  $data      The $_POST data sent.
 * @param string $screen_id The screen id.
 * @return array The Heartbeat response.
 */
function wp_check_locked_posts($response, $data, $screen_id)
{
    $checked = array();
    if (array_key_exists('wp-check-locked-posts', $data) && is_array($data['wp-check-locked-posts'])) {
        foreach ($data['wp-check-locked-posts'] as $key) {
            if (!$post_id = absint(substr($key, 5))) {
                continue;
            }
            if (($user_id = wp_check_post_lock($post_id)) && ($user = get_userdata($user_id)) && current_user_can('edit_post', $post_id)) {
                $send = array('text' => sprintf(__('%s is currently editing'), $user->display_name));
                if (($avatar = get_avatar($user->ID, 18)) && preg_match("|src='([^']+)'|", $avatar, $matches)) {
                    $send['avatar_src'] = $matches[1];
                }
                $checked[$key] = $send;
            }
        }
    }
    if (!empty($checked)) {
        $response['wp-check-locked-posts'] = $checked;
    }
    return $response;
}

WordPress Version: 3.9

/**
 * Check lock status for posts displayed on the Posts screen
 *
 * @since 3.6.0
 */
function wp_check_locked_posts($response, $data, $screen_id)
{
    $checked = array();
    if (array_key_exists('wp-check-locked-posts', $data) && is_array($data['wp-check-locked-posts'])) {
        foreach ($data['wp-check-locked-posts'] as $key) {
            if (!$post_id = absint(substr($key, 5))) {
                continue;
            }
            if (($user_id = wp_check_post_lock($post_id)) && ($user = get_userdata($user_id)) && current_user_can('edit_post', $post_id)) {
                $send = array('text' => sprintf(__('%s is currently editing'), $user->display_name));
                if (($avatar = get_avatar($user->ID, 18)) && preg_match("|src='([^']+)'|", $avatar, $matches)) {
                    $send['avatar_src'] = $matches[1];
                }
                $checked[$key] = $send;
            }
        }
    }
    if (!empty($checked)) {
        $response['wp-check-locked-posts'] = $checked;
    }
    return $response;
}

WordPress Version: 3.7

/**
 * Check lock status for posts displayed on the Posts screen
 *
 * @since 3.6
 */
function wp_check_locked_posts($response, $data, $screen_id)
{
    $checked = array();
    if (array_key_exists('wp-check-locked-posts', $data) && is_array($data['wp-check-locked-posts'])) {
        foreach ($data['wp-check-locked-posts'] as $key) {
            if (!$post_id = absint(substr($key, 5))) {
                continue;
            }
            if (($user_id = wp_check_post_lock($post_id)) && ($user = get_userdata($user_id)) && current_user_can('edit_post', $post_id)) {
                $send = array('text' => sprintf(__('%s is currently editing'), $user->display_name));
                if (($avatar = get_avatar($user->ID, 18)) && preg_match("|src='([^']+)'|", $avatar, $matches)) {
                    $send['avatar_src'] = $matches[1];
                }
                $checked[$key] = $send;
            }
        }
    }
    if (!empty($checked)) {
        $response['wp-check-locked-posts'] = $checked;
    }
    return $response;
}