Function Reference: geodir_event_count_reviews_by_location_term_sql
Summary
Filter reviews sql query fro upcoming events for current location.
Global Values
- $wpdb
- (object) (required) WordPress Database object.
- Default: None
- $plugin_prefix
- (string) (required) Geodirectory plugin table prefix.
- Default: None
Parameters
- $sql
- (string) (required) Database sql query.
- Default: None
- $term_id
- (int) (required) The term ID.
- Default: None
- $taxonomy
- (int) (required) The taxonomy Id.
- Default: None
- $post_type
- (string) (required) The post type.
- Default: None
- $location_type
- (string) (required) Location type.
- Default: None
- $loc
- (array) (required) Current location terms.
- Default: None
- $count_type
- (string) (required) The term count type.
- Default: None
Return Values
- (string)
- Database sql query.
Change Log
Since: 1.2.4
Source File
geodir_event_count_reviews_by_location_term_sql() is located in geodir_event_manager/gdevents_functions.php [Line: 2068]
Source Code
function geodir_event_count_reviews_by_location_term_sql($sql, $term_id, $taxonomy, $post_type, $location_type, $loc, $count_type) {
if ($term_id > 0 && $post_type == 'gd_event') {
global $wpdb, $plugin_prefix;
if ($count_type == 'review_count') {
$listing_table = $plugin_prefix . $post_type . '_detail';
$current_date = date_i18n( 'Y-m-d', current_time( 'timestamp' ) );
if (!$loc) {
$loc = geodir_get_current_location_terms();
}
$country = isset($loc['gd_country']) && $loc['gd_country'] != '' ? $loc['gd_country'] : '';
$region = isset($loc['gd_region']) && $loc['gd_region'] != '' ? $loc['gd_region'] : '';
$city = isset($loc['gd_city']) && $loc['gd_city'] != '' ? $loc['gd_city'] : '';
$where = '';
if ( $country!= '') {
$where .= " AND ed.post_locations LIKE '%,[".$country."]' ";
}
if ( $region != '' && $location_type!='gd_country' ) {
$where .= " AND ed.post_locations LIKE '%,[".$region."],%' ";
}
if ( $city != '' && $location_type!='gd_country' && $location_type!='gd_region' ) {
$where .= " AND ed.post_locations LIKE '[".$city."],%' ";
}
$sql = "SELECT COALESCE(SUM(ed.rating_count),0) FROM `" . $listing_table . "` AS ed INNER JOIN " . EVENT_SCHEDULE . " AS es ON (es.event_id = ed.post_id) WHERE ed.post_status = 'publish' " . $where . " AND ed.rating_count > 0 AND FIND_IN_SET(" . $term_id . ", ed." . $taxonomy . ")";
$sql .= " AND (es.event_date >= '" . $current_date . "' OR (es.event_date <= '" . $current_date . "' AND es.event_enddate >= '" . $current_date . "'))";
}
}
return $sql;
}