add_settings_error( string $setting, string $code, string $message, string $type = ‘error’ )

Registers a settings error to be displayed to the user.


Part of the Settings API. Use this to show messages to users about settings validation problems, missing settings or anything else.

Settings errors should be added inside the $sanitize_callback function defined in register_setting() for a given setting to give feedback about the submission.

By default messages will show immediately after the submission that generated the error.
Additional calls to settings_errors() can be used to show errors even when the settings page is first accessed.


Slug title of the setting to which this error applies.
Slug-name to identify the error. Used as part of 'id' attribute in HTML output.
The formatted message text to display to the user (will be shown inside styled <div> and <p> tags).
Message type, controls HTML class. Possible values include 'error', 'success', 'warning', 'info'. Default 'error'.



function add_settings_error( $setting, $code, $message, $type = 'error' ) {
	global $wp_settings_errors;

	$wp_settings_errors[] = array(
		'setting' => $setting,
		'code'    => $code,
		'message' => $message,
		'type'    => $type,


5.3.0Added warning and info as possible values for $type.

User Contributed Notes

  1. Skip to note 2 content

    Basic Example

    function change( $data ) {
        $message = null;
        $type = null;
        if ( null != $data ) {
            if ( false === get_option( 'myOption' ) ) {
                add_option( 'myOption', $data );
                $type = 'updated';
                $message = __( 'Successfully saved', 'my-text-domain' );
            } else {
                update_option( 'myOption', $data );
                $type = 'updated';
                $message = __( 'Successfully updated', 'my-text-domain' );
        } else {
            $type = 'error';
            $message = __( 'Data can not be empty', 'my-text-domain' );
            esc_attr( 'settings_updated' ),

You must log in before being able to contribute a note or feedback.