Using WordPress ‘customize_validate_{$this->id}’ PHP filter

The customize_validate_{$this->id} WordPress PHP filter validates a Customize setting value. Plugins should amend the $validity object via its WP_Error::add() method. The dynamic portion of the hook name, $this->ID, refers to the setting ID.

Usage

add_filter('customize_validate_{$this->id}', 'your_custom_function', 10, 3);

function your_custom_function($validity, $value, $setting) {
    // your custom code here
    return $validity;
}

Parameters

  • $validity (WP_Error): Filtered from true to WP_Error when invalid.
  • $value (mixed): Value of the setting.
  • $setting (WP_Customize_Setting): WP_Customize_Setting instance.

More information

See WordPress Developer Resources: customize_validate_{$this->id}

Examples

Validate email input

Validate if the input is a valid email address.

add_filter('customize_validate_email_input', 'validate_email_input', 10, 3);

function validate_email_input($validity, $value, $setting) {
    if (!filter_var($value, FILTER_VALIDATE_EMAIL)) {
        $validity->add('invalid_email', 'Invalid email address.');
    }
    return $validity;
}

Validate phone number input

Validate if the input is a valid phone number.

add_filter('customize_validate_phone_input', 'validate_phone_input', 10, 3);

function validate_phone_input($validity, $value, $setting) {
    if (!preg_match('/^\d{10}$/', $value)) {
        $validity->add('invalid_phone', 'Invalid phone number. Please enter a 10-digit phone number.');
    }
    return $validity;
}

Validate minimum character length

Validate if the input meets the minimum character length requirement.

add_filter('customize_validate_minimum_chars', 'validate_minimum_chars', 10, 3);

function validate_minimum_chars($validity, $value, $setting) {
    if (strlen($value) < 10) {
        $validity->add('short_input', 'The input should be at least 10 characters long.');
    }
    return $validity;
}

Validate maximum character length

Validate if the input does not exceed the maximum character length limit.

add_filter('customize_validate_maximum_chars', 'validate_maximum_chars', 10, 3);

function validate_maximum_chars($validity, $value, $setting) {
    if (strlen($value) > 140) {
        $validity->add('long_input', 'The input should not exceed 140 characters.');
    }
    return $validity;
}

Validate URL input

Validate if the input is a valid URL.

add_filter('customize_validate_url_input', 'validate_url_input', 10, 3);

function validate_url_input($validity, $value, $setting) {
    if (!filter_var($value, FILTER_VALIDATE_URL)) {
        $validity->add('invalid_url', 'Invalid URL.');
    }
    return $validity;
}