WordPress Version: 5.5
/**
* Retrieves all user interface settings.
*
* @since 2.7.0
*
* @global array $_updated_user_settings
*
* @return array The last saved user settings or empty array.
*/
function get_all_user_settings()
{
global $_updated_user_settings;
$user_id = get_current_user_id();
if (!$user_id) {
return array();
}
if (isset($_updated_user_settings) && is_array($_updated_user_settings)) {
return $_updated_user_settings;
}
$user_settings = array();
if (isset($_COOKIE['wp-settings-' . $user_id])) {
$cookie = preg_replace('/[^A-Za-z0-9=&_-]/', '', $_COOKIE['wp-settings-' . $user_id]);
if (strpos($cookie, '=')) {
// '=' cannot be 1st char.
parse_str($cookie, $user_settings);
}
} else {
$option = get_user_option('user-settings', $user_id);
if ($option && is_string($option)) {
parse_str($option, $user_settings);
}
}
$_updated_user_settings = $user_settings;
return $user_settings;
}