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
| Parameter | Type | Description |
|---|---|---|
$isValid | mixed | The validation result from default check |
$mobileNumber | string | The phone number being validated |
Return Value
- Return
trueif the number is valid - Return
WP_Errorobject 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
Related
- wp_sms_registration_username - Customize username format
Last updated: December 23, 2024