• benlawsonphotography

    (@benlawsonphotography)


    The current Settings API documentation has no information whatsoever regarding this very important function. Can someone please clarify how to use this?

    For instance, I have the following code:

    register_setting("my_setting_group", "my_option_name", "validate_callback_function");
    function validate_callback_function($input) {
        if ($input is invalid) {
            add_settings_error(???);
        } else return $input;
    }

    What do I use inside the add_settings_error() function, and how do I make the admin page display the error(s) if it is not automatic?

Viewing 1 replies (of 1 total)
  • huntermaster

    (@huntermaster)

    I’m not really sure what goes in that function but Bob Chatman writes about it a little bit and there is a closed Trac ticket that declares the function as:

    add_settings_error( $setting, $id, $message, $type = 'error' )

    In my WordPress 3.1 wp-admin/includes/template.php @ line 3098:

    /**
     * Register 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.
     *
     * @global array $wp_settings_errors Storage array of errors registered during this pageload
     *
     * @param string $setting Slug title of the setting to which this error applies
     * @param string $code Slug-name to identify the error. Used as part of 'id' attribute in HTML output.
     * @param string $message The formatted message text to display to the user (will be shown inside styled <div> and <p>)
     * @param string $type The type of message it is, controls HTML class. Use 'error' or 'updated'.
     */
    function add_settings_error( $setting, $code, $message, $type = 'error' ) {
    	global $wp_settings_errors;
    
    	if ( !isset($wp_settings_errors) )
    		$wp_settings_errors = array();
    
    	$new_error = array(
    		'setting' => $setting,
    		'code' => $code,
    		'message' => $message,
    		'type' => $type
    	);
    	$wp_settings_errors[] = $new_error;
    }

    The message comes up fine for me no matter what I put in for ‘setting’ or ‘code’ but I wish I could get the an error class attached to the table cell of the offending element.

Viewing 1 replies (of 1 total)
  • The topic ‘Need description of add_settings_error function’ is closed to new replies.