bp_ps_autocomplete_script( $f )
Output BuddyBoss profile search autocomplete script.
Description
Source
File: bp-core/profile-search/bps-templates47.php
function bp_ps_autocomplete_script( $f ) {
wp_enqueue_script( $f->script_handle );
$autocomplete_options = apply_filters( 'bp_ps_autocomplete_options', "{types: ['geocode']}", $f );
$geolocation_options = apply_filters( 'bp_ps_geolocation_options', "{timeout: 5000}", $f );
?>
<input type="hidden" id="Lat_<?php echo $f->unique_id; ?>" name="<?php echo $f->code . '[lat]'; ?>" value="<?php echo $f->value['lat']; ?>">
<input type="hidden" id="Lng_<?php echo $f->unique_id; ?>" name="<?php echo $f->code . '[lng]'; ?>" value="<?php echo $f->value['lng']; ?>">
<script>
function bp_ps_<?php echo $f->unique_id; ?>() {
var input = document.getElementById('<?php echo $f->unique_id; ?>');
var options = <?php echo $autocomplete_options; ?>;
var autocomplete = new google.maps.places.Autocomplete(input, options);
google.maps.event.addListener(autocomplete, 'place_changed', function () {
var place = autocomplete.getPlace();
document.getElementById('Lat_<?php echo $f->unique_id; ?>').value = place.geometry.location.lat();
document.getElementById('Lng_<?php echo $f->unique_id; ?>').value = place.geometry.location.lng();
});
}
jQuery(document).ready(bp_ps_<?php echo $f->unique_id; ?>);
function bp_ps_locate_<?php echo $f->unique_id; ?>() {
if (navigator.geolocation) {
var options = <?php echo $geolocation_options; ?>;
navigator.geolocation.getCurrentPosition(function (position) {
document.getElementById('Lat_<?php echo $f->unique_id; ?>').value = position.coords.latitude;
document.getElementById('Lng_<?php echo $f->unique_id; ?>').value = position.coords.longitude;
bp_ps_address_<?php echo $f->unique_id; ?>(position);
}, function (error) {
alert('ERROR ' + error.code + ': ' + error.message);
}, options);
} else {
alert('ERROR: Geolocation is not supported by this browser');
}
}
jQuery('#Btn_<?php echo $f->unique_id; ?>').click(bp_ps_locate_<?php echo $f->unique_id; ?>);
function bp_ps_address_<?php echo $f->unique_id; ?>(position) {
var geocoder = new google.maps.Geocoder;
var latlng = {lat: position.coords.latitude, lng: position.coords.longitude};
geocoder.geocode({'location': latlng}, function (results, status) {
if (status === 'OK') {
if (results[0]) {
document.getElementById('<?php echo $f->unique_id; ?>').value = results[0].formatted_address;
} else {
alert('ERROR: Geocoder found no results');
}
} else {
alert('ERROR: Geocoder status: ' + status);
}
});
}
</script>
<?php
}
Changelog
| Version | Description |
|---|---|
| BuddyBoss 1.0.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.