WC_Shipping_Zone::get_formatted_location( int $max = 10, string $context = 'view' )
Return a text string representing what this zone is for.
Description Description
Parameters Parameters
- $max
-
(Optional) Max locations to return.
Default value: 10
- $context
-
(Optional) View or edit context.
Default value: 'view'
Return Return
(string)
Source Source
File: includes/class-wc-shipping-zone.php
public function get_formatted_location( $max = 10, $context = 'view' ) {
$location_parts = array();
$all_continents = WC()->countries->get_continents();
$all_countries = WC()->countries->get_countries();
$all_states = WC()->countries->get_states();
$locations = $this->get_zone_locations( $context );
$continents = array_filter( $locations, array( $this, 'location_is_continent' ) );
$countries = array_filter( $locations, array( $this, 'location_is_country' ) );
$states = array_filter( $locations, array( $this, 'location_is_state' ) );
$postcodes = array_filter( $locations, array( $this, 'location_is_postcode' ) );
foreach ( $continents as $location ) {
$location_parts[] = $all_continents[ $location->code ]['name'];
}
foreach ( $countries as $location ) {
$location_parts[] = $all_countries[ $location->code ];
}
foreach ( $states as $location ) {
$location_codes = explode( ':', $location->code );
$location_parts[] = $all_states[ $location_codes[0] ][ $location_codes[1] ];
}
foreach ( $postcodes as $location ) {
$location_parts[] = $location->code;
}
// Fix display of encoded characters.
$location_parts = array_map( 'html_entity_decode', $location_parts );
if ( count( $location_parts ) > $max ) {
$remaining = count( $location_parts ) - $max;
// @codingStandardsIgnoreStart
return sprintf( _n( '%s and %d other region', '%s and %d other regions', $remaining, 'woocommerce' ), implode( ', ', array_splice( $location_parts, 0, $max ) ), $remaining );
// @codingStandardsIgnoreEnd
} elseif ( ! empty( $location_parts ) ) {
return implode( ', ', $location_parts );
} else {
return __( 'Everywhere', 'woocommerce' );
}
}