settings_errors

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

WordPress Version: 6.1

/**
 * Displays settings errors registered by add_settings_error().
 *
 * Part of the Settings API. Outputs a div for each error retrieved by
 * get_settings_errors().
 *
 * This is called automatically after a settings page based on the
 * Settings API is submitted. Errors should be added during the validation
 * callback function for a setting defined in register_setting().
 *
 * The $sanitize option is passed into get_settings_errors() and will
 * re-run the setting sanitization
 * on its current value.
 *
 * The $hide_on_update option will cause errors to only show when the settings
 * page is first loaded. if the user has already saved new values it will be
 * hidden to avoid repeating messages already shown in the default error
 * reporting after submission. This is useful to show general errors like
 * missing settings when the user arrives at the settings page.
 *
 * @since 3.0.0
 * @since 5.3.0 Legacy `error` and `updated` CSS classes are mapped to
 *              `notice-error` and `notice-success`.
 *
 * @param string $setting        Optional slug title of a specific setting whose errors you want.
 * @param bool   $sanitize       Whether to re-sanitize the setting value before returning errors.
 * @param bool   $hide_on_update If set to true errors will not be shown if the settings page has
 *                               already been submitted.
 */
function settings_errors($setting = '', $sanitize = false, $hide_on_update = false)
{
    if ($hide_on_update && !empty($_GET['settings-updated'])) {
        return;
    }
    $settings_errors = get_settings_errors($setting, $sanitize);
    if (empty($settings_errors)) {
        return;
    }
    $output = '';
    foreach ($settings_errors as $key => $details) {
        if ('updated' === $details['type']) {
            $details['type'] = 'success';
        }
        if (in_array($details['type'], array('error', 'success', 'warning', 'info'), true)) {
            $details['type'] = 'notice-' . $details['type'];
        }
        $css_id = sprintf('setting-error-%s', esc_attr($details['code']));
        $css_class = sprintf('notice %s settings-error is-dismissible', esc_attr($details['type']));
        $output .= "<div id='{$css_id}' class='{$css_class}'> \n";
        $output .= "<p><strong>{$details['message']}</strong></p>";
        $output .= "</div> \n";
    }
    echo $output;
}

WordPress Version: 5.5

/**
 * Display settings errors registered by add_settings_error().
 *
 * Part of the Settings API. Outputs a div for each error retrieved by
 * get_settings_errors().
 *
 * This is called automatically after a settings page based on the
 * Settings API is submitted. Errors should be added during the validation
 * callback function for a setting defined in register_setting().
 *
 * The $sanitize option is passed into get_settings_errors() and will
 * re-run the setting sanitization
 * on its current value.
 *
 * The $hide_on_update option will cause errors to only show when the settings
 * page is first loaded. if the user has already saved new values it will be
 * hidden to avoid repeating messages already shown in the default error
 * reporting after submission. This is useful to show general errors like
 * missing settings when the user arrives at the settings page.
 *
 * @since 3.0.0
 * @since 5.3.0 Legacy `error` and `updated` CSS classes are mapped to
 *              `notice-error` and `notice-success`.
 *
 * @param string $setting        Optional slug title of a specific setting whose errors you want.
 * @param bool   $sanitize       Whether to re-sanitize the setting value before returning errors.
 * @param bool   $hide_on_update If set to true errors will not be shown if the settings page has
 *                               already been submitted.
 */
function settings_errors($setting = '', $sanitize = false, $hide_on_update = false)
{
    if ($hide_on_update && !empty($_GET['settings-updated'])) {
        return;
    }
    $settings_errors = get_settings_errors($setting, $sanitize);
    if (empty($settings_errors)) {
        return;
    }
    $output = '';
    foreach ($settings_errors as $key => $details) {
        if ('updated' === $details['type']) {
            $details['type'] = 'success';
        }
        if (in_array($details['type'], array('error', 'success', 'warning', 'info'), true)) {
            $details['type'] = 'notice-' . $details['type'];
        }
        $css_id = sprintf('setting-error-%s', esc_attr($details['code']));
        $css_class = sprintf('notice %s settings-error is-dismissible', esc_attr($details['type']));
        $output .= "<div id='{$css_id}' class='{$css_class}'> \n";
        $output .= "<p><strong>{$details['message']}</strong></p>";
        $output .= "</div> \n";
    }
    echo $output;
}

WordPress Version: 5.3

/**
 * Display settings errors registered by add_settings_error().
 *
 * Part of the Settings API. Outputs a div for each error retrieved by
 * get_settings_errors().
 *
 * This is called automatically after a settings page based on the
 * Settings API is submitted. Errors should be added during the validation
 * callback function for a setting defined in register_setting().
 *
 * The $sanitize option is passed into get_settings_errors() and will
 * re-run the setting sanitization
 * on its current value.
 *
 * The $hide_on_update option will cause errors to only show when the settings
 * page is first loaded. if the user has already saved new values it will be
 * hidden to avoid repeating messages already shown in the default error
 * reporting after submission. This is useful to show general errors like
 * missing settings when the user arrives at the settings page.
 *
 * @since 3.0.0
 * @since 5.3.0 Legacy `error` and `updated` CSS classes are mapped to
 *              `notice-error` and `notice-success`.
 *
 * @param string $setting        Optional slug title of a specific setting whose errors you want.
 * @param bool   $sanitize       Whether to re-sanitize the setting value before returning errors.
 * @param bool   $hide_on_update If set to true errors will not be shown if the settings page has
 *                               already been submitted.
 */
function settings_errors($setting = '', $sanitize = false, $hide_on_update = false)
{
    if ($hide_on_update && !empty($_GET['settings-updated'])) {
        return;
    }
    $settings_errors = get_settings_errors($setting, $sanitize);
    if (empty($settings_errors)) {
        return;
    }
    $output = '';
    foreach ($settings_errors as $key => $details) {
        if ('updated' === $details['type']) {
            $details['type'] = 'success';
        }
        if (in_array($details['type'], array('error', 'success', 'warning', 'info'))) {
            $details['type'] = 'notice-' . $details['type'];
        }
        $css_id = sprintf('setting-error-%s', esc_attr($details['code']));
        $css_class = sprintf('notice %s settings-error is-dismissible', esc_attr($details['type']));
        $output .= "<div id='{$css_id}' class='{$css_class}'> \n";
        $output .= "<p><strong>{$details['message']}</strong></p>";
        $output .= "</div> \n";
    }
    echo $output;
}

WordPress Version: 5.1

/**
 * Display settings errors registered by add_settings_error().
 *
 * Part of the Settings API. Outputs a div for each error retrieved by
 * get_settings_errors().
 *
 * This is called automatically after a settings page based on the
 * Settings API is submitted. Errors should be added during the validation
 * callback function for a setting defined in register_setting().
 *
 * The $sanitize option is passed into get_settings_errors() and will
 * re-run the setting sanitization
 * on its current value.
 *
 * The $hide_on_update option will cause errors to only show when the settings
 * page is first loaded. if the user has already saved new values it will be
 * hidden to avoid repeating messages already shown in the default error
 * reporting after submission. This is useful to show general errors like
 * missing settings when the user arrives at the settings page.
 *
 * @since 3.0.0
 *
 * @param string $setting        Optional slug title of a specific setting whose errors you want.
 * @param bool   $sanitize       Whether to re-sanitize the setting value before returning errors.
 * @param bool   $hide_on_update If set to true errors will not be shown if the settings page has
 *                               already been submitted.
 */
function settings_errors($setting = '', $sanitize = false, $hide_on_update = false)
{
    if ($hide_on_update && !empty($_GET['settings-updated'])) {
        return;
    }
    $settings_errors = get_settings_errors($setting, $sanitize);
    if (empty($settings_errors)) {
        return;
    }
    $output = '';
    foreach ($settings_errors as $key => $details) {
        $css_id = 'setting-error-' . $details['code'];
        $css_class = $details['type'] . ' settings-error notice is-dismissible';
        $output .= "<div id='{$css_id}' class='{$css_class}'> \n";
        $output .= "<p><strong>{$details['message']}</strong></p>";
        $output .= "</div> \n";
    }
    echo $output;
}

WordPress Version: 4.6

/**
 * Display settings errors registered by add_settings_error().
 *
 * Part of the Settings API. Outputs a div for each error retrieved by
 * get_settings_errors().
 *
 * This is called automatically after a settings page based on the
 * Settings API is submitted. Errors should be added during the validation
 * callback function for a setting defined in register_setting().
 *
 * The $sanitize option is passed into get_settings_errors() and will
 * re-run the setting sanitization
 * on its current value.
 *
 * The $hide_on_update option will cause errors to only show when the settings
 * page is first loaded. if the user has already saved new values it will be
 * hidden to avoid repeating messages already shown in the default error
 * reporting after submission. This is useful to show general errors like
 * missing settings when the user arrives at the settings page.
 *
 * @since 3.0.0
 *
 * @param string $setting        Optional slug title of a specific setting who's errors you want.
 * @param bool   $sanitize       Whether to re-sanitize the setting value before returning errors.
 * @param bool   $hide_on_update If set to true errors will not be shown if the settings page has
 *                               already been submitted.
 */
function settings_errors($setting = '', $sanitize = false, $hide_on_update = false)
{
    if ($hide_on_update && !empty($_GET['settings-updated'])) {
        return;
    }
    $settings_errors = get_settings_errors($setting, $sanitize);
    if (empty($settings_errors)) {
        return;
    }
    $output = '';
    foreach ($settings_errors as $key => $details) {
        $css_id = 'setting-error-' . $details['code'];
        $css_class = $details['type'] . ' settings-error notice is-dismissible';
        $output .= "<div id='{$css_id}' class='{$css_class}'> \n";
        $output .= "<p><strong>{$details['message']}</strong></p>";
        $output .= "</div> \n";
    }
    echo $output;
}

WordPress Version: 4.3

/**
 * Display settings errors registered by {@see add_settings_error()}.
 *
 * Part of the Settings API. Outputs a div for each error retrieved by
 * {@see get_settings_errors()}.
 *
 * This is called automatically after a settings page based on the
 * Settings API is submitted. Errors should be added during the validation
 * callback function for a setting defined in {@see register_setting()}
 *
 * The $sanitize option is passed into {@see get_settings_errors()} and will
 * re-run the setting sanitization
 * on its current value.
 *
 * The $hide_on_update option will cause errors to only show when the settings
 * page is first loaded. if the user has already saved new values it will be
 * hidden to avoid repeating messages already shown in the default error
 * reporting after submission. This is useful to show general errors like
 * missing settings when the user arrives at the settings page.
 *
 * @since 3.0.0
 *
 * @param string $setting        Optional slug title of a specific setting who's errors you want.
 * @param bool   $sanitize       Whether to re-sanitize the setting value before returning errors.
 * @param bool   $hide_on_update If set to true errors will not be shown if the settings page has already been submitted.
 */
function settings_errors($setting = '', $sanitize = false, $hide_on_update = false)
{
    if ($hide_on_update && !empty($_GET['settings-updated'])) {
        return;
    }
    $settings_errors = get_settings_errors($setting, $sanitize);
    if (empty($settings_errors)) {
        return;
    }
    $output = '';
    foreach ($settings_errors as $key => $details) {
        $css_id = 'setting-error-' . $details['code'];
        $css_class = $details['type'] . ' settings-error notice is-dismissible';
        $output .= "<div id='{$css_id}' class='{$css_class}'> \n";
        $output .= "<p><strong>{$details['message']}</strong></p>";
        $output .= "</div> \n";
    }
    echo $output;
}

WordPress Version: 4.2

/**
 * Display settings errors registered by {@see add_settings_error()}.
 *
 * Part of the Settings API. Outputs a div for each error retrieved by
 * {@see get_settings_errors()}.
 *
 * This is called automatically after a settings page based on the
 * Settings API is submitted. Errors should be added during the validation
 * callback function for a setting defined in {@see register_setting()}
 *
 * The $sanitize option is passed into {@see get_settings_errors()} and will
 * re-run the setting sanitization
 * on its current value.
 *
 * The $hide_on_update option will cause errors to only show when the settings
 * page is first loaded. if the user has already saved new values it will be
 * hidden to avoid repeating messages already shown in the default error
 * reporting after submission. This is useful to show general errors like
 * missing settings when the user arrives at the settings page.
 *
 * @since 3.0.0
 *
 * @param string $setting Optional slug title of a specific setting who's errors you want.
 * @param boolean $sanitize Whether to re-sanitize the setting value before returning errors.
 * @param boolean $hide_on_update If set to true errors will not be shown if the settings page has already been submitted.
 */
function settings_errors($setting = '', $sanitize = false, $hide_on_update = false)
{
    if ($hide_on_update && !empty($_GET['settings-updated'])) {
        return;
    }
    $settings_errors = get_settings_errors($setting, $sanitize);
    if (empty($settings_errors)) {
        return;
    }
    $output = '';
    foreach ($settings_errors as $key => $details) {
        $css_id = 'setting-error-' . $details['code'];
        $css_class = $details['type'] . ' settings-error notice is-dismissible';
        $output .= "<div id='{$css_id}' class='{$css_class}'> \n";
        $output .= "<p><strong>{$details['message']}</strong></p>";
        $output .= "</div> \n";
    }
    echo $output;
}

WordPress Version: 4.1

/**
 * Display settings errors registered by {@see add_settings_error()}.
 *
 * Part of the Settings API. Outputs a div for each error retrieved by
 * {@see get_settings_errors()}.
 *
 * This is called automatically after a settings page based on the
 * Settings API is submitted. Errors should be added during the validation
 * callback function for a setting defined in {@see register_setting()}
 *
 * The $sanitize option is passed into {@see get_settings_errors()} and will
 * re-run the setting sanitization
 * on its current value.
 *
 * The $hide_on_update option will cause errors to only show when the settings
 * page is first loaded. if the user has already saved new values it will be
 * hidden to avoid repeating messages already shown in the default error
 * reporting after submission. This is useful to show general errors like
 * missing settings when the user arrives at the settings page.
 *
 * @since 3.0.0
 *
 * @param string $setting Optional slug title of a specific setting who's errors you want.
 * @param boolean $sanitize Whether to re-sanitize the setting value before returning errors.
 * @param boolean $hide_on_update If set to true errors will not be shown if the settings page has already been submitted.
 */
function settings_errors($setting = '', $sanitize = false, $hide_on_update = false)
{
    if ($hide_on_update && !empty($_GET['settings-updated'])) {
        return;
    }
    $settings_errors = get_settings_errors($setting, $sanitize);
    if (empty($settings_errors)) {
        return;
    }
    $output = '';
    foreach ($settings_errors as $key => $details) {
        $css_id = 'setting-error-' . $details['code'];
        $css_class = $details['type'] . ' settings-error';
        $output .= "<div id='{$css_id}' class='{$css_class}'> \n";
        $output .= "<p><strong>{$details['message']}</strong></p>";
        $output .= "</div> \n";
    }
    echo $output;
}

WordPress Version: 3.7

/**
 * Display settings errors registered by add_settings_error()
 *
 * Part of the Settings API. Outputs a <div> for each error retrieved by get_settings_errors().
 *
 * This is called automatically after a settings page based on the Settings API is submitted.
 * Errors should be added during the validation callback function for a setting defined in register_setting()
 *
 * The $sanitize option is passed into get_settings_errors() and will re-run the setting sanitization
 * on its current value.
 *
 * The $hide_on_update option will cause errors to only show when the settings page is first loaded.
 * if the user has already saved new values it will be hidden to avoid repeating messages already
 * shown in the default error reporting after submission. This is useful to show general errors like missing
 * settings when the user arrives at the settings page.
 *
 * @since 3.0.0
 *
 * @param string $setting Optional slug title of a specific setting who's errors you want.
 * @param boolean $sanitize Whether to re-sanitize the setting value before returning errors.
 * @param boolean $hide_on_update If set to true errors will not be shown if the settings page has already been submitted.
 */
function settings_errors($setting = '', $sanitize = false, $hide_on_update = false)
{
    if ($hide_on_update && !empty($_GET['settings-updated'])) {
        return;
    }
    $settings_errors = get_settings_errors($setting, $sanitize);
    if (empty($settings_errors)) {
        return;
    }
    $output = '';
    foreach ($settings_errors as $key => $details) {
        $css_id = 'setting-error-' . $details['code'];
        $css_class = $details['type'] . ' settings-error';
        $output .= "<div id='{$css_id}' class='{$css_class}'> \n";
        $output .= "<p><strong>{$details['message']}</strong></p>";
        $output .= "</div> \n";
    }
    echo $output;
}