Function Reference: geodir_event_get_terms

Summary

Filter the past events count in terms array results.

Parameters

$terms
(array) (required) Array of terms.

Default: None
$taxonomies
(array) (required) Array of post taxonomies.

Default: None
$args
(array) (required) Terms arguements.

Default: None

Return Values

(array)
  • Array of terms.

Change Log

Since: 1.1.9

Source File

geodir_event_get_terms() is located in geodir_event_manager/gdevents_functions.php [Line: 1906]

Source Code

function geodir_event_get_terms( $terms, $taxonomies, $args ) {
	if ( isset( $args['gd_event_no_loop'] ) ) {
		return $terms; // Avoid an infinite loop.
	}
	
	$args['gd_event_no_loop'] = true;
	
	$gd_event_post_type = 'gd_event';
	
	$gd_event_taxonomy = $gd_event_post_type . 'category';
	
	if ( !empty( $terms ) && in_array( $gd_event_taxonomy, $taxonomies ) ) {
		$query_args = array (
			'is_geodir_loop' => true,
			'post_type' => $gd_event_post_type,
			'gd_location' => true,
		);
			
		$new_terms = array();
		
		foreach ( $terms as $key => $term ) {
			$new_term = $term;
			
			if ( isset( $term->taxonomy ) && $term->taxonomy == $gd_event_taxonomy ) {				
				$tax_query = array(
					'taxonomy' => $gd_event_taxonomy,
					'field' => 'id',
					'terms' => $term->term_id
				);
				
				$query_args['tax_query'] = array($tax_query);
				
				$new_term->count = geodir_get_widget_listings( $query_args, true );
			}
			
			$new_terms[$key] = $new_term;
		}
		
		$terms = $new_terms;
	}

	return $terms;
}