wp_ajax_wp_remove_post_lock

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

WordPress Version: 6.3

/**
 * Handles removing a post lock via AJAX.
 *
 * @since 3.1.0
 */
function wp_ajax_wp_remove_post_lock()
{
    if (empty($_POST['post_ID']) || empty($_POST['active_post_lock'])) {
        wp_die(0);
    }
    $post_id = (int) $_POST['post_ID'];
    $post = get_post($post_id);
    if (!$post) {
        wp_die(0);
    }
    check_ajax_referer('update-post_' . $post_id);
    if (!current_user_can('edit_post', $post_id)) {
        wp_die(-1);
    }
    $active_lock = array_map('absint', explode(':', $_POST['active_post_lock']));
    if (get_current_user_id() != $active_lock[1]) {
        wp_die(0);
    }
    /**
     * Filters the post lock window duration.
     *
     * @since 3.3.0
     *
     * @param int $interval The interval in seconds the post lock duration
     *                      should last, plus 5 seconds. Default 150.
     */
    $new_lock = time() - apply_filters('wp_check_post_lock_window', 150) + 5 . ':' . $active_lock[1];
    update_post_meta($post_id, '_edit_lock', $new_lock, implode(':', $active_lock));
    wp_die(1);
}

WordPress Version: 5.4

/**
 * Ajax handler for removing a post lock.
 *
 * @since 3.1.0
 */
function wp_ajax_wp_remove_post_lock()
{
    if (empty($_POST['post_ID']) || empty($_POST['active_post_lock'])) {
        wp_die(0);
    }
    $post_id = (int) $_POST['post_ID'];
    $post = get_post($post_id);
    if (!$post) {
        wp_die(0);
    }
    check_ajax_referer('update-post_' . $post_id);
    if (!current_user_can('edit_post', $post_id)) {
        wp_die(-1);
    }
    $active_lock = array_map('absint', explode(':', $_POST['active_post_lock']));
    if (get_current_user_id() != $active_lock[1]) {
        wp_die(0);
    }
    /**
     * Filters the post lock window duration.
     *
     * @since 3.3.0
     *
     * @param int $interval The interval in seconds the post lock duration
     *                      should last, plus 5 seconds. Default 150.
     */
    $new_lock = time() - apply_filters('wp_check_post_lock_window', 150) + 5 . ':' . $active_lock[1];
    update_post_meta($post_id, '_edit_lock', $new_lock, implode(':', $active_lock));
    wp_die(1);
}

WordPress Version: 5.3

/**
 * Ajax handler for removing a post lock.
 *
 * @since 3.1.0
 */
function wp_ajax_wp_remove_post_lock()
{
    if (empty($_POST['post_ID']) || empty($_POST['active_post_lock'])) {
        wp_die(0);
    }
    $post_id = (int) $_POST['post_ID'];
    $post = get_post($post_id);
    if (!$post) {
        wp_die(0);
    }
    check_ajax_referer('update-post_' . $post_id);
    if (!current_user_can('edit_post', $post_id)) {
        wp_die(-1);
    }
    $active_lock = array_map('absint', explode(':', $_POST['active_post_lock']));
    if ($active_lock[1] != get_current_user_id()) {
        wp_die(0);
    }
    /**
     * Filters the post lock window duration.
     *
     * @since 3.3.0
     *
     * @param int $interval The interval in seconds the post lock duration
     *                      should last, plus 5 seconds. Default 150.
     */
    $new_lock = time() - apply_filters('wp_check_post_lock_window', 150) + 5 . ':' . $active_lock[1];
    update_post_meta($post_id, '_edit_lock', $new_lock, implode(':', $active_lock));
    wp_die(1);
}

WordPress Version: 4.6

/**
 * Ajax handler for removing a post lock.
 *
 * @since 3.1.0
 */
function wp_ajax_wp_remove_post_lock()
{
    if (empty($_POST['post_ID']) || empty($_POST['active_post_lock'])) {
        wp_die(0);
    }
    $post_id = (int) $_POST['post_ID'];
    if (!$post = get_post($post_id)) {
        wp_die(0);
    }
    check_ajax_referer('update-post_' . $post_id);
    if (!current_user_can('edit_post', $post_id)) {
        wp_die(-1);
    }
    $active_lock = array_map('absint', explode(':', $_POST['active_post_lock']));
    if ($active_lock[1] != get_current_user_id()) {
        wp_die(0);
    }
    /**
     * Filters the post lock window duration.
     *
     * @since 3.3.0
     *
     * @param int $interval The interval in seconds the post lock duration
     *                      should last, plus 5 seconds. Default 150.
     */
    $new_lock = time() - apply_filters('wp_check_post_lock_window', 150) + 5 . ':' . $active_lock[1];
    update_post_meta($post_id, '_edit_lock', $new_lock, implode(':', $active_lock));
    wp_die(1);
}

WordPress Version: 4.0

/**
 * Ajax handler for removing a post lock.
 *
 * @since 3.1.0
 */
function wp_ajax_wp_remove_post_lock()
{
    if (empty($_POST['post_ID']) || empty($_POST['active_post_lock'])) {
        wp_die(0);
    }
    $post_id = (int) $_POST['post_ID'];
    if (!$post = get_post($post_id)) {
        wp_die(0);
    }
    check_ajax_referer('update-post_' . $post_id);
    if (!current_user_can('edit_post', $post_id)) {
        wp_die(-1);
    }
    $active_lock = array_map('absint', explode(':', $_POST['active_post_lock']));
    if ($active_lock[1] != get_current_user_id()) {
        wp_die(0);
    }
    /**
     * Filter the post lock window duration.
     *
     * @since 3.3.0
     *
     * @param int $interval The interval in seconds the post lock duration
     *                      should last, plus 5 seconds. Default 150.
     */
    $new_lock = time() - apply_filters('wp_check_post_lock_window', 150) + 5 . ':' . $active_lock[1];
    update_post_meta($post_id, '_edit_lock', $new_lock, implode(':', $active_lock));
    wp_die(1);
}

WordPress Version: 3.9

function wp_ajax_wp_remove_post_lock()
{
    if (empty($_POST['post_ID']) || empty($_POST['active_post_lock'])) {
        wp_die(0);
    }
    $post_id = (int) $_POST['post_ID'];
    if (!$post = get_post($post_id)) {
        wp_die(0);
    }
    check_ajax_referer('update-post_' . $post_id);
    if (!current_user_can('edit_post', $post_id)) {
        wp_die(-1);
    }
    $active_lock = array_map('absint', explode(':', $_POST['active_post_lock']));
    if ($active_lock[1] != get_current_user_id()) {
        wp_die(0);
    }
    /**
     * Filter the post lock window duration.
     *
     * @since 3.3.0
     *
     * @param int $interval The interval in seconds the post lock duration
     *                      should last, plus 5 seconds. Default 150.
     */
    $new_lock = time() - apply_filters('wp_check_post_lock_window', 150) + 5 . ':' . $active_lock[1];
    update_post_meta($post_id, '_edit_lock', $new_lock, implode(':', $active_lock));
    wp_die(1);
}

WordPress Version: 3.7

function wp_ajax_wp_remove_post_lock()
{
    if (empty($_POST['post_ID']) || empty($_POST['active_post_lock'])) {
        wp_die(0);
    }
    $post_id = (int) $_POST['post_ID'];
    if (!$post = get_post($post_id)) {
        wp_die(0);
    }
    check_ajax_referer('update-post_' . $post_id);
    if (!current_user_can('edit_post', $post_id)) {
        wp_die(-1);
    }
    $active_lock = array_map('absint', explode(':', $_POST['active_post_lock']));
    if ($active_lock[1] != get_current_user_id()) {
        wp_die(0);
    }
    /**
     * Filter the post lock window duration.
     *
     * @since 3.3.0
     *
     * @param int $interval The interval in seconds the post lock duration should last, plus 5 seconds. Default 120.
     */
    $new_lock = time() - apply_filters('wp_check_post_lock_window', 120) + 5 . ':' . $active_lock[1];
    update_post_meta($post_id, '_edit_lock', $new_lock, implode(':', $active_lock));
    wp_die(1);
}