wp_sms_mobile_number_validity

Customize mobile number validation logic with custom rules.

The wp_sms_mobile_number_validity filter allows you to modify or extend the default mobile number validation logic with custom rules.

Syntax

add_filter('wp_sms_mobile_number_validity', 'your_callback', 10, 2);

Parameters

ParameterTypeDescription
$isValidmixedThe validation result from default check
$mobileNumberstringThe phone number being validated

Return Value

  • Return true if the number is valid
  • Return WP_Error object with custom error message if invalid

Examples

Basic Custom Validation

add_filter('wp_sms_mobile_number_validity', function($isValid, $mobileNumber) {
    // Add custom validation logic
    if (strlen($mobileNumber) < 10) {
        return new WP_Error('invalid_length', __('Phone number must be at least 10 digits.', 'wp-sms'));
    }

    return $isValid;
}, 10, 2);

Restrict to Specific Country Code

add_filter('wp_sms_mobile_number_validity', function($isValid, $mobileNumber) {
    // Only allow US numbers
    if (!preg_match('/^\+1/', $mobileNumber)) {
        return new WP_Error('invalid_country', __('Only US phone numbers are allowed.', 'wp-sms'));
    }

    return $isValid;
}, 10, 2);

Block Specific Number Patterns

add_filter('wp_sms_mobile_number_validity', function($isValid, $mobileNumber) {
    // Block premium rate numbers
    $blocked_prefixes = ['+1900', '+1976'];

    foreach ($blocked_prefixes as $prefix) {
        if (strpos($mobileNumber, $prefix) === 0) {
            return new WP_Error('blocked_number', __('This number type is not allowed.', 'wp-sms'));
        }
    }

    return $isValid;
}, 10, 2);

Validate Against External Service

add_filter('wp_sms_mobile_number_validity', function($isValid, $mobileNumber) {
    // Check against external validation API
    $response = wp_remote_get("https://api.example.com/validate?number={$mobileNumber}");

    if (is_wp_error($response)) {
        return $isValid; // Fallback to default validation
    }

    $data = json_decode(wp_remote_retrieve_body($response), true);

    if (!$data['valid']) {
        return new WP_Error('external_invalid', __('This phone number could not be verified.', 'wp-sms'));
    }

    return $isValid;
}, 10, 2);

Use Cases

  • Restrict to specific country codes
  • Enforce minimum/maximum length requirements
  • Block premium rate or known spam numbers
  • Integrate with external validation services
  • Apply business-specific validation rules

Last updated: December 23, 2024