static function find_country()
 {
     $member = Member::currentUser();
     if ($member && $member->Country) {
         $country = $member->Country;
     } else {
         if ($country = ShoppingCart::get_country()) {
             return $country;
         }
         // HACK Avoid CLI tests from breaking (GeoIP gets in the way of unbiased tests!)
         // @todo Introduce a better way of disabling GeoIP as needed (Geoip::disable() ?)
         if (Director::is_cli()) {
             $country = null;
         } else {
             $country = Geoip::visitor_country();
         }
     }
     return $country;
 }
Ejemplo n.º 2
0
 /**
  * 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);
 }