private static function sort_rates_callback($rate1, $rate2)
{
if ($rate1->tax_rate_priority !== $rate2->tax_rate_priority) {
return $rate1->tax_rate_priority < $rate2->tax_rate_priority ? -1 : 1;
// ASC
} elseif ($rate1->tax_rate_country !== $rate2->tax_rate_country) {
if ('' === $rate1->tax_rate_country) {
return 1;
}
if ('' === $rate2->tax_rate_country) {
return -1;
}
return strcmp($rate1->tax_rate_country, $rate2->tax_rate_country) > 0 ? 1 : -1;
} elseif ($rate1->tax_rate_state !== $rate2->tax_rate_state) {
if ('' === $rate1->tax_rate_state) {
return 1;
}
if ('' === $rate2->tax_rate_state) {
return -1;
}
return strcmp($rate1->tax_rate_state, $rate2->tax_rate_state) > 0 ? 1 : -1;
} else {
return $rate1->tax_rate_id < $rate2->tax_rate_id ? -1 : 1;
// Identical - use ID
}
}