maps:user_geolocation
Filters the resolved user geolocation payload for map geo-targeting. Also fired via the legacy `Clickfwd\Hook` system as `user_geolocation` for V5 compatibility (the legacy call is slated for removal in V7).
You need to have a working knowledge of Hooks before you get started.
Parameters
| Name | Type | Description |
|---|---|---|
$location |
array|false|null |
The location payload returned by the legacy geolocation filter, or false/null when no location has been resolved. |
$ipaddress |
string|null |
The IP address used to resolve the user location. |
Boilerplate Code
Use the boilerplate code to start using the filter, and add your own logic to modify the first argument and return it.
fwd_add_filter('maps:user_geolocation', function($location, $ipaddress)
{
// Your code here
return $location;
}, 20, 2);
The , 20, N after your callback are the hook priority and the number of arguments your callback accepts. By default, a hook passes your callback only its first argument; for a filter, that is the value being filtered, so a simple function($value) { ... } needs nothing extra. If your callback declares more parameters, such as function($value, $listing) { ... }, you must add N (the parameter count, 2 here). Because N is the fourth argument to fwd_add_filter() or fwd_add_action(), you must also pass the priority (20 is the default). Leaving these off when your callback expects extra parameters causes a Too few arguments to function ... fatal error.
Examples
Pass through the resolved geolocation payload
Inspect the resolved geolocation payload for the request IP address and return the value maps should use for geo-targeting.
fwd_add_filter('maps:user_geolocation', fn($location, $ipaddress) => $location, 20, 2);
Source Files
app/Actions/BuildMapConfigAction.php