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();
	}
}