wp_ajax_closed_postboxes

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

WordPress Version: 6.3

/**
 * Handles closed post boxes via AJAX.
 *
 * @since 3.1.0
 */
function wp_ajax_closed_postboxes()
{
    check_ajax_referer('closedpostboxes', 'closedpostboxesnonce');
    $closed = isset($_POST['closed']) ? explode(',', $_POST['closed']) : array();
    $closed = array_filter($closed);
    $hidden = isset($_POST['hidden']) ? explode(',', $_POST['hidden']) : array();
    $hidden = array_filter($hidden);
    $page = isset($_POST['page']) ? $_POST['page'] : '';
    if (sanitize_key($page) != $page) {
        wp_die(0);
    }
    $user = wp_get_current_user();
    if (!$user) {
        wp_die(-1);
    }
    if (is_array($closed)) {
        update_user_meta($user->ID, "closedpostboxes_{$page}", $closed);
    }
    if (is_array($hidden)) {
        // Postboxes that are always shown.
        $hidden = array_diff($hidden, array('submitdiv', 'linksubmitdiv', 'manage-menu', 'create-menu'));
        update_user_meta($user->ID, "metaboxhidden_{$page}", $hidden);
    }
    wp_die(1);
}

WordPress Version: 5.8

/**
 * Ajax handler for closed post boxes.
 *
 * @since 3.1.0
 */
function wp_ajax_closed_postboxes()
{
    check_ajax_referer('closedpostboxes', 'closedpostboxesnonce');
    $closed = isset($_POST['closed']) ? explode(',', $_POST['closed']) : array();
    $closed = array_filter($closed);
    $hidden = isset($_POST['hidden']) ? explode(',', $_POST['hidden']) : array();
    $hidden = array_filter($hidden);
    $page = isset($_POST['page']) ? $_POST['page'] : '';
    if (sanitize_key($page) != $page) {
        wp_die(0);
    }
    $user = wp_get_current_user();
    if (!$user) {
        wp_die(-1);
    }
    if (is_array($closed)) {
        update_user_meta($user->ID, "closedpostboxes_{$page}", $closed);
    }
    if (is_array($hidden)) {
        // Postboxes that are always shown.
        $hidden = array_diff($hidden, array('submitdiv', 'linksubmitdiv', 'manage-menu', 'create-menu'));
        update_user_meta($user->ID, "metaboxhidden_{$page}", $hidden);
    }
    wp_die(1);
}

WordPress Version: 5.4

/**
 * Ajax handler for closed post boxes.
 *
 * @since 3.1.0
 */
function wp_ajax_closed_postboxes()
{
    check_ajax_referer('closedpostboxes', 'closedpostboxesnonce');
    $closed = isset($_POST['closed']) ? explode(',', $_POST['closed']) : array();
    $closed = array_filter($closed);
    $hidden = isset($_POST['hidden']) ? explode(',', $_POST['hidden']) : array();
    $hidden = array_filter($hidden);
    $page = isset($_POST['page']) ? $_POST['page'] : '';
    if (sanitize_key($page) != $page) {
        wp_die(0);
    }
    $user = wp_get_current_user();
    if (!$user) {
        wp_die(-1);
    }
    if (is_array($closed)) {
        update_user_option($user->ID, "closedpostboxes_{$page}", $closed, true);
    }
    if (is_array($hidden)) {
        // Postboxes that are always shown.
        $hidden = array_diff($hidden, array('submitdiv', 'linksubmitdiv', 'manage-menu', 'create-menu'));
        update_user_option($user->ID, "metaboxhidden_{$page}", $hidden, true);
    }
    wp_die(1);
}

WordPress Version: 5.3

/**
 * Ajax handler for closed post boxes.
 *
 * @since 3.1.0
 */
function wp_ajax_closed_postboxes()
{
    check_ajax_referer('closedpostboxes', 'closedpostboxesnonce');
    $closed = isset($_POST['closed']) ? explode(',', $_POST['closed']) : array();
    $closed = array_filter($closed);
    $hidden = isset($_POST['hidden']) ? explode(',', $_POST['hidden']) : array();
    $hidden = array_filter($hidden);
    $page = isset($_POST['page']) ? $_POST['page'] : '';
    if ($page != sanitize_key($page)) {
        wp_die(0);
    }
    $user = wp_get_current_user();
    if (!$user) {
        wp_die(-1);
    }
    if (is_array($closed)) {
        update_user_option($user->ID, "closedpostboxes_{$page}", $closed, true);
    }
    if (is_array($hidden)) {
        $hidden = array_diff($hidden, array('submitdiv', 'linksubmitdiv', 'manage-menu', 'create-menu'));
        // postboxes that are always shown
        update_user_option($user->ID, "metaboxhidden_{$page}", $hidden, true);
    }
    wp_die(1);
}

WordPress Version: 4.0

/**
 * Ajax handler for closed post boxes.
 *
 * @since 3.1.0
 */
function wp_ajax_closed_postboxes()
{
    check_ajax_referer('closedpostboxes', 'closedpostboxesnonce');
    $closed = isset($_POST['closed']) ? explode(',', $_POST['closed']) : array();
    $closed = array_filter($closed);
    $hidden = isset($_POST['hidden']) ? explode(',', $_POST['hidden']) : array();
    $hidden = array_filter($hidden);
    $page = isset($_POST['page']) ? $_POST['page'] : '';
    if ($page != sanitize_key($page)) {
        wp_die(0);
    }
    if (!$user = wp_get_current_user()) {
        wp_die(-1);
    }
    if (is_array($closed)) {
        update_user_option($user->ID, "closedpostboxes_{$page}", $closed, true);
    }
    if (is_array($hidden)) {
        $hidden = array_diff($hidden, array('submitdiv', 'linksubmitdiv', 'manage-menu', 'create-menu'));
        // postboxes that are always shown
        update_user_option($user->ID, "metaboxhidden_{$page}", $hidden, true);
    }
    wp_die(1);
}

WordPress Version: 3.7

function wp_ajax_closed_postboxes()
{
    check_ajax_referer('closedpostboxes', 'closedpostboxesnonce');
    $closed = isset($_POST['closed']) ? explode(',', $_POST['closed']) : array();
    $closed = array_filter($closed);
    $hidden = isset($_POST['hidden']) ? explode(',', $_POST['hidden']) : array();
    $hidden = array_filter($hidden);
    $page = isset($_POST['page']) ? $_POST['page'] : '';
    if ($page != sanitize_key($page)) {
        wp_die(0);
    }
    if (!$user = wp_get_current_user()) {
        wp_die(-1);
    }
    if (is_array($closed)) {
        update_user_option($user->ID, "closedpostboxes_{$page}", $closed, true);
    }
    if (is_array($hidden)) {
        $hidden = array_diff($hidden, array('submitdiv', 'linksubmitdiv', 'manage-menu', 'create-menu'));
        // postboxes that are always shown
        update_user_option($user->ID, "metaboxhidden_{$page}", $hidden, true);
    }
    wp_die(1);
}