Function Reference: geodir_add_neighbourhood
Summary
Handles ‘add neighbourhood’ form data.
Global Values
- $wpdb
- (object) (required) WordPress Database object.
- Default: None
- $plugin_prefix
- (string) (required) Geodirectory plugin table prefix.
- Default: None
Package
GeoDirectory_Location_Manager
Change Log
Since: 1.0.0
Source File
geodir_add_neighbourhood() is located in geodir_location_manager/geodir_location_functions.php [Line: 908]
Source Code
function geodir_add_neighbourhood()
{
global $wpdb,$plugin_prefix;
if(isset($_REQUEST['location_addedit_nonce']) && current_user_can( 'manage_options' )){
if ( !wp_verify_nonce( $_REQUEST['location_addedit_nonce'], 'location_add_edit_nonce' ) )
return;
$hood_name = $_REQUEST['hood_name'];
$gd_latitude = $_REQUEST['gd_latitude'];
$gd_longitude = $_REQUEST['gd_longitude'];
$city_id = $_REQUEST['update_city'];
$hood_id = $_REQUEST['update_hood'];
$hood_slug = create_location_slug($hood_name);
$countslug = $wpdb->get_var(
$wpdb->prepare(
"select COUNT(hood_id) AS total from ".POST_NEIGHBOURHOOD_TABLE." WHERE hood_slug LIKE %d",
array($hood_slug.'%')
)
);
if($countslug!='0'){
$number = $countslug+1;
$hood_slug = $hood_slug.'-'.$number;
}
if($hood_id)
{
$duplicate = $wpdb->get_var(
$wpdb->prepare(
"select hood_id from ".POST_NEIGHBOURHOOD_TABLE." WHERE hood_location_id = %d AND hood_name=%s AND hood_id!=%d",
array($city_id,$hood_name,$hood_id)
)
);
}
else
{
$duplicate = $wpdb->get_var(
$wpdb->prepare(
"select hood_id from ".POST_NEIGHBOURHOOD_TABLE." WHERE hood_location_id = %d AND hood_name=%s",
array($city_id,$hood_name)
)
);
}
if($duplicate!='')
{
$setid = '';
if($hood_id){
$setid = '&hood_id='.$hood_id;
}
$msg = GD_NEIGHBOURHOOD_EXITS;
$msg = urlencode($msg);
$location = admin_url()."admin.php?page=geodirectory&tab=managelocation_fields&subtab=geodir_location_addedit&add_hood=true&location_error=".$msg."&id=".$city_id.$setid;
wp_redirect($location);
exit;
}
if($_POST['location_ajax_action'] == 'add_hood')
{
if($hood_id)
{
$sql = $wpdb->prepare("UPDATE ".POST_NEIGHBOURHOOD_TABLE." SET
hood_location_id=%d,
hood_name=%s,
hood_latitude=%s,
hood_longitude=%s,
hood_slug=%s
WHERE hood_id = %d",
array($city_id,$hood_name,$gd_latitude,$gd_longitude,$hood_slug,$hood_id));
$location_hood = $wpdb->get_results(
$wpdb->prepare(
"SELECT l.city, n.hood_slug FROM ".POST_LOCATION_TABLE." l, ".POST_NEIGHBOURHOOD_TABLE." n WHERE n.hood_location_id=l.location_id AND hood_id=%d",
array($hood_id)
)
);
$geodir_posttypes = geodir_get_posttypes();
foreach($geodir_posttypes as $geodir_posttype){
$table = $plugin_prefix . $geodir_posttype . '_detail';
if($wpdb->get_var("SHOW COLUMNS FROM ".$table." WHERE field = 'post_neighbourhood'"))
{
if(!empty($location_hood)){
foreach($location_hood as $hood_del){
$wpdb->query(
$wpdb->prepare(
"UPDATE ".$table." SET post_neighbourhood=%s WHERE post_city=%s AND post_neighbourhood=%s",
array($hood_slug,$hood_del->city,$hood_del->hood_slug)
)
);
}
}
}
}
$msg = MSG_NEIGHBOURHOOD_UPDATED;
}
else
{
$sql = $wpdb->prepare("INSERT INTO ".POST_NEIGHBOURHOOD_TABLE." SET
hood_location_id=%d,
hood_name=%s,
hood_slug=%s,
hood_latitude=%s,
hood_longitude=%s",
array($city_id,$hood_name,$hood_slug,$gd_latitude,$gd_longitude));
$msg = MSG_NEIGHBOURHOOD_ADDED;
}
$wpdb->query($sql);
$msg = urlencode($msg);
$location = admin_url()."admin.php?page=geodirectory&tab=managelocation_fields&subtab=geodir_location_manager&location_success=".$msg."&city_hood=hoodlist&id=".$city_id;
wp_redirect($location);
exit;
}
}else{
wp_redirect(home_url().'/?geodir_signup=true');
exit();
}
}