invp_get_the_location_sentence( $post_ID = null )

location_sentence


Description Description

Creates a short sentence identifying the dealership address where this vehicle is located. If there is only one term in the locations taxonomy containing vehicles, this method returns an empty string.


Top ↑

Return Return

(string) An HTML <div> element containing a sentence that identifies the lot where this vehicle is located.


Top ↑

Source Source

File: includes/template-tags.php

function invp_get_the_location_sentence( $post_ID = null )
{
	if( empty( $post_ID ) )
	{
		$post_ID = get_the_ID();
	}

	/**
	 * How many locations *with vehicles* does this dealer have? If only one, 
	 * return empty string because there's no reason to point out where this 
	 * vehicle is, the dealership address is all over the website.
	 */
	$location_terms = get_terms( 'location', array( 'hide_empty' => true ) );
	$location_count = ! is_wp_error( $location_terms ) ? sizeof( $location_terms ) : 0;

	if( 1 >= $location_count )
	{
		return '';
	}

	/**
	 * We want the term description from the location taxonomy term because the 
	 * meta key/term name only contains street address line one. The term 
	 * description has the full address.
	 */
	$location_terms = wp_get_post_terms( $post_ID, 'location' );
	
	//Could have two locations on the same vehicle, so just take the first
	$location = str_replace( chr( 13 ) . chr( 10 ), ', ', $location_terms[0]->description );
	if( empty( $location ) )
	{
		return '';
	}

	$sentence = sprintf(
		'%s %s %s <strong><address>%s</address></strong>',
		__( 'See this', 'inventory-presser' ),
		invp_get_the_make( $post_ID ),
		__( 'at', 'inventory-presser' ),
		apply_filters( 'invp_vehicle_location_sentence_address', $location )
	);

	//Does this location have a phone number?
	$phones = Inventory_Presser_Taxonomies::get_phones( $location_terms[0]->term_id );
	if( 0 < sizeof( $phones ) )
	{
		//Yes, at least one.
		foreach( $phones as $phone )
		{
			//Try to avoid fax numbers
			if( preg_match( '/\bfax\b/i', $phone['description'] ) )
			{
				continue;
			}

			$number = apply_filters( 'invp_vehicle_location_sentence_phone', $phone['number'] );
			$sentence .= sprintf( 
				'<span class="location-phone">%s <a href="tel:+%s">%s</a></span>',
				__( 'Call', 'inventory-presser' ),
				INVP::prepare_phone_number_for_link( $number ),
				$number
			);
			break; //only add one phone number to the sentence
		}
	}

	$sentence = apply_filters( 'invp_vehicle_location_sentence', $sentence, $post_ID );

	if( function_exists( 'apply_shortcodes' ) )
	{
		$sentence = apply_shortcodes( $sentence );
	}

	return $sentence;
}