/** * Returns the correct shipping address. If there is an alternate * shipping country then it uses that. Failing that, it returns * the country of the member. * * @TODO This is pretty complicated code. It can be simplified. * * @param boolean $codeOnly If true, returns only the country code, instead * of the full name. * @return string */ function findShippingCountry($codeOnly = false) { if (!$this->ID) { $country = ShoppingCart::has_country() ? ShoppingCart::get_country() : EcommerceRole::find_country(); } elseif (!$this->UseShippingAddress || !($country = $this->ShippingCountry)) { $country = EcommerceRole::find_country(); } return $codeOnly ? $country : EcommerceRole::find_country_title($country); }