public static function findNearbyUsers($user)
 {
     $ret = array();
     if (!($geonamesUsername = SiteInfo::findThis()->get('geonames'))) {
         throw new Exception('You must get a username from geonames.org before using the method AP_UserUtils::findNearbyUsers');
     }
     if ($zip = $user->get('zip')) {
         $url = "http://api.geonames.org/findNearbyPostalCodesJSON?postalcode={$zip}&country=US&radius=30&username=" . $geonamesUsername;
         $zips = wp_cache_get($url, 'AP_UserUtils');
         if (!$zips) {
             $zips = ap_curl_json($url);
             $zips = ap_map_method($zips->postalCodes, 'postalCode');
             wp_cache_set($url, $zips, 'AP_UserUtils', self::$cache);
         }
         if ($zips) {
             if ($users = get_users(array('meta_query' => array(array('key' => 'zip', 'value' => $zips, 'compare' => 'IN'), array('key' => 'zip', 'compare' => 'EXISTS'))))) {
                 foreach ($users as $u) {
                     $ret[] = new AP_User($u);
                 }
             }
         }
     }
     return $ret;
 }
Example #2
0
$user = AP_User::create($userDetails);
$id = $user->ID;
$test->isTrue($id, "Create a new AP_User");
$user->set('olw', "yes");
$test->isEqual($user->get('olw'), 'yes', "Set and get AP_User");
$user->save();
$newUser = new AP_User($testLogin);
$test->isEqual($id, $newUser->ID, "AP_User can be fetched using a login as the first param");
$test->isEqual($newUser->get('olw'), 'yes', "Save and retrieve AP_User custom field");
$newUser->suicide();
$findItAgainUser = new AP_User($id);
$test->isTrue($findItAgainUser->ID === 0, "AP_User can be deleted with suicide");
$userDetails['metaData'] = 'hooray';
$userDetails['metaDataMulti'] = array('yes', 'no');
$user = AP_User::create($userDetails);
$test->isEqual($user->get('metaData'), 'hooray', "You can create meta data by putting it in the creation array");
$newUser = new AP_User($testLogin);
$test->isEqual($newUser->get('metaData'), 'hooray', "meta data created by AP_User::create is saved to the db");
$test->isTrue(is_array($newUser->get('metaDataMulti')), "meta data created by AP_User::create can be an array/multi is saved to the db");
// find nearby users
$user->set('zip', 94610);
$newUser = AP_User::create(array('user_login' => $testLogin2, 'zip' => 94622));
$test->isTrue(is_array(AP_UserUtils::findNearbyUsers($user)), "AP_UserUtils::findNearbyUsers exists");
$nearby = ap_map_method(AP_UserUtils::findNearbyUsers($user), 'id');
$test->isTrue(in_array($newUser->id(), $nearby), "AP_UserUtils::findNearbyUsers can find a nearby user");
$newUser->suicide();
$user->suicide();
echo $test->report();
?>
</pre>