Quantcast
Channel: Question and Answer » wpdb
Viewing all articles
Browse latest Browse all 44

Get users within a latitude / longitude radius, based on custom fields

$
0
0

I’ve create two custom fields for my users:

latitude

longitude

Here’s my code. I think I’m close:

$user_query = $wpdb->get_results(
        "
        SELECT
        u.ID,
        u.user_login,
        latitude.meta_value,
        longitude.meta_value,
        ( 3959 * acos( cos( radians( $lat ) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians( $lng ) ) + sin( radians( $lat ) ) * sin( radians( latitude ) ) ) ) AS distance
    FROM $wpdb->users u
        LEFT JOIN $wpdb->usermeta AS latitude on latitude.user_id = u.ID and latitude.meta_key = 'latitude'
        LEFT JOIN $wpdb->usermeta AS longitude on longitude.user_id = u.ID and longitude.meta_key = 'longitude'
    HAVING
        distance < $radius
    ORDER BY
        distance
    LIMIT
        0, 20
        "
    );

Viewing all articles
Browse latest Browse all 44

Trending Articles