wp_ajax_widgets_order

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

WordPress Version: 6.3

/**
 * Handles saving the widgets order via AJAX.
 *
 * @since 3.1.0
 */
function wp_ajax_widgets_order()
{
    check_ajax_referer('save-sidebar-widgets', 'savewidgets');
    if (!current_user_can('edit_theme_options')) {
        wp_die(-1);
    }
    unset($_POST['savewidgets'], $_POST['action']);
    // Save widgets order for all sidebars.
    if (is_array($_POST['sidebars'])) {
        $sidebars = array();
        foreach (wp_unslash($_POST['sidebars']) as $key => $val) {
            $sb = array();
            if (!empty($val)) {
                $val = explode(',', $val);
                foreach ($val as $k => $v) {
                    if (!str_contains($v, 'widget-')) {
                        continue;
                    }
                    $sb[$k] = substr($v, strpos($v, '_') + 1);
                }
            }
            $sidebars[$key] = $sb;
        }
        wp_set_sidebars_widgets($sidebars);
        wp_die(1);
    }
    wp_die(-1);
}

WordPress Version: 4.9

/**
 * Ajax handler for saving the widgets order.
 *
 * @since 3.1.0
 */
function wp_ajax_widgets_order()
{
    check_ajax_referer('save-sidebar-widgets', 'savewidgets');
    if (!current_user_can('edit_theme_options')) {
        wp_die(-1);
    }
    unset($_POST['savewidgets'], $_POST['action']);
    // Save widgets order for all sidebars.
    if (is_array($_POST['sidebars'])) {
        $sidebars = array();
        foreach (wp_unslash($_POST['sidebars']) as $key => $val) {
            $sb = array();
            if (!empty($val)) {
                $val = explode(',', $val);
                foreach ($val as $k => $v) {
                    if (strpos($v, 'widget-') === false) {
                        continue;
                    }
                    $sb[$k] = substr($v, strpos($v, '_') + 1);
                }
            }
            $sidebars[$key] = $sb;
        }
        wp_set_sidebars_widgets($sidebars);
        wp_die(1);
    }
    wp_die(-1);
}

WordPress Version: 4.0

/**
 * Ajax handler for saving the widgets order.
 *
 * @since 3.1.0
 */
function wp_ajax_widgets_order()
{
    check_ajax_referer('save-sidebar-widgets', 'savewidgets');
    if (!current_user_can('edit_theme_options')) {
        wp_die(-1);
    }
    unset($_POST['savewidgets'], $_POST['action']);
    // Save widgets order for all sidebars.
    if (is_array($_POST['sidebars'])) {
        $sidebars = array();
        foreach ($_POST['sidebars'] as $key => $val) {
            $sb = array();
            if (!empty($val)) {
                $val = explode(',', $val);
                foreach ($val as $k => $v) {
                    if (strpos($v, 'widget-') === false) {
                        continue;
                    }
                    $sb[$k] = substr($v, strpos($v, '_') + 1);
                }
            }
            $sidebars[$key] = $sb;
        }
        wp_set_sidebars_widgets($sidebars);
        wp_die(1);
    }
    wp_die(-1);
}

WordPress Version: 3.7

function wp_ajax_widgets_order()
{
    check_ajax_referer('save-sidebar-widgets', 'savewidgets');
    if (!current_user_can('edit_theme_options')) {
        wp_die(-1);
    }
    unset($_POST['savewidgets'], $_POST['action']);
    // save widgets order for all sidebars
    if (is_array($_POST['sidebars'])) {
        $sidebars = array();
        foreach ($_POST['sidebars'] as $key => $val) {
            $sb = array();
            if (!empty($val)) {
                $val = explode(',', $val);
                foreach ($val as $k => $v) {
                    if (strpos($v, 'widget-') === false) {
                        continue;
                    }
                    $sb[$k] = substr($v, strpos($v, '_') + 1);
                }
            }
            $sidebars[$key] = $sb;
        }
        wp_set_sidebars_widgets($sidebars);
        wp_die(1);
    }
    wp_die(-1);
}