Automattic\WooCommerce\Admin\Features\Fulfillments

FulfillmentUtils::validate_fedex_check_digit │ public static │ WC 1.0

Validate FedEx check digit for 12/14-digit tracking numbers.

Метод класса: FulfillmentUtils{}

Хуков нет.

Возвращает

bool. True if valid, false otherwise.

Использование

$result = FulfillmentUtils::validate_fedex_check_digit( $tracking_number ): bool;
$tracking_number(строка) (обязательный)
The FedEx tracking number.

Код FulfillmentUtils::validate_fedex_check_digit() WC 11.2.2

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;
}