Automattic\WooCommerce\Internal\Fulfillments
FulfillmentUtils::validate_fedex_check_digit
Validate FedEx check digit for 12/14-digit tracking numbers.
Method of the class: FulfillmentUtils{}
No Hooks.
Returns
true|false. True if valid, false otherwise.
Usage
$result = FulfillmentUtils::validate_fedex_check_digit( $tracking_number ): bool;
- $tracking_number(string) (required)
- The FedEx tracking number.
FulfillmentUtils::validate_fedex_check_digit() FulfillmentUtils::validate fedex check digit code WC 10.3.3
public static function validate_fedex_check_digit( string $tracking_number ): bool {
if ( ! preg_match( '/^\d{12}$/', $tracking_number ) ) {
return false;
}
$digits = str_split( substr( $tracking_number, 0, 11 ) );
$multipliers = array( 3, 1, 7 );
$sum = 0;
$multiplier_index = 0;
for ( $i = 10; $i >= 0; $i-- ) {
$sum += $digits[ $i ] * $multipliers[ $multiplier_index ];
$multiplier_index = ( ++$multiplier_index ) % 3;
}
$check = $sum % 11;
if ( 10 === $check ) {
$check = 0;
}
return intval( $tracking_number[11] ) === $check;
}