public function get_formatted_address($args = array())
{
$default_args = array('first_name' => '', 'last_name' => '', 'company' => '', 'address_1' => '', 'address_2' => '', 'city' => '', 'state' => '', 'postcode' => '', 'country' => '');
$args = array_map('trim', wp_parse_args($args, $default_args));
extract($args);
// Get all formats
$formats = $this->get_address_formats();
// Get format for the address' country
$format = $country && isset($formats[$country]) ? $formats[$country] : $formats['default'];
// Handle full country name
$full_country = isset($this->countries[$country]) ? $this->countries[$country] : $country;
// Country is not needed if the same as base
if ($country == $this->get_base_country() && !apply_filters('woocommerce_formatted_address_force_country_display', false)) {
$format = str_replace('{country}', '', $format);
}
// Handle full state name
$full_state = $country && $state && isset($this->states[$country][$state]) ? $this->states[$country][$state] : $state;
// Substitute address parts into the string
$replace = array_map('esc_html', apply_filters('woocommerce_formatted_address_replacements', array('{first_name}' => $first_name, '{last_name}' => $last_name, '{name}' => $first_name . ' ' . $last_name, '{company}' => $company, '{address_1}' => $address_1, '{address_2}' => $address_2, '{city}' => $city, '{state}' => $full_state, '{postcode}' => $postcode, '{country}' => $full_country, '{first_name_upper}' => strtoupper($first_name), '{last_name_upper}' => strtoupper($last_name), '{name_upper}' => strtoupper($first_name . ' ' . $last_name), '{company_upper}' => strtoupper($company), '{address_1_upper}' => strtoupper($address_1), '{address_2_upper}' => strtoupper($address_2), '{city_upper}' => strtoupper($city), '{state_upper}' => strtoupper($full_state), '{state_code}' => strtoupper($state), '{postcode_upper}' => strtoupper($postcode), '{country_upper}' => strtoupper($full_country)), $args));
$formatted_address = str_replace(array_keys($replace), $replace, $format);
// Clean up white space
$formatted_address = preg_replace('/ +/', ' ', trim($formatted_address));
$formatted_address = preg_replace('/\\n\\n+/', "\n", $formatted_address);
// Break newlines apart and remove empty lines/trim commas and white space
$formatted_address = array_filter(array_map(array($this, 'trim_formatted_address_line'), explode("\n", $formatted_address)));
// Add html breaks
$formatted_address = implode('<br/>', $formatted_address);
// We're done!
return $formatted_address;
}