rep__get_listing_events( $args = [] )
This function is responsible for retrieving listing upcoming events based on various parameters and returning the result as an array.
Namespace
REP_Malcolm
Parameters
$post_type
string
The custom post type of the log file to display.
Return
array
An array of associative arrays.
Source
File: \includes\rep-helper-functions.php
function rep__get_listing_events( $args = [] ){
global $wpdb, $pagenow, $post;
$post_type = REP__PREFIX.'_listing';
$default_listing_id = '';
if( ! isset( $args['listing_id'] ) ){
if( is_admin() && isset($post) && is_object($post) ){
$default_listing_id = lp__table_column_value( $post->ID, $post_type, 'listing_id' );
} elseif( ! is_admin() && get_post_type() == $post_type ){
$default_listing_id = lp__table_column_value( get_the_ID(), $post_type, 'listing_id' );
}
}
$args = wp_parse_args(
$args,
array(
'listing_id' => $default_listing_id,
'event_type' => '',
'id' => '',
'event__in' => array(),
'event_datetime' => date("Y-m-d H:i:s"),
'event_date' => '',
'order' => '',
'orderby' => array( 'event_date' => 'ASC', 'event_time' => 'ASC' ),
)
);
extract( $args );
$post_table = $wpdb->prefix.'rep_listing_event';
$selects = ["event_date","event_time","event_type","event_agent","event_venue","event_duration_minutes","event_end_time"];
$wheres = ['%d'];
$param = [1];
if( $listing_id ){
$wheres[] = "listing_id = %d";
$param[] = $listing_id;
}
if( $id ){
$wheres[] = "id = %d";
$param[] = $id;
}
if( $event__in && is_array( $event__in ) ){
$in_ids = [];
foreach($event__in as $in_id){
$in_ids[] = "%d";
$param[] = $in_id;
}
if( $in_ids ){
$in_ids = implode(",", $in_ids);
$wheres[] = "id IN ({$in_ids})";
}
}
if($event_type){
$wheres[] = "event_type = %s";
$param[] = $event_type;
}
if($event_datetime){
$wheres[] = "CONCAT(event_date, ' ', event_time) > %s";
$param[] = $event_datetime;
}
if( $event_date ){
$wheres[] = "event_date = %s";
$param[] = date("Y-m-d", strtotime( $event_date ) );
}
$orders = [];
if( $orderby ){
if( is_array( $orderby ) ){
foreach( $orderby as $key => $order ){
$orders[] = "{$key} {$order}";
}
} else {
$orders[] = "{$orderby} {$order}";
}
}
if(is_array($selects)) $selects = implode(", ",$selects);
if($selects) $selects = "SELECT {$selects}";
if(is_array($wheres)) $wheres = implode(" AND ", $wheres);
if($wheres) $wheres = "WHERE {$wheres}";
if(is_array($orders)) $orders = implode(", ", $orders);
$sql = "{$selects} FROM {$post_table} {$wheres} ORDER BY {$orders}";
$sql = $wpdb->prepare( $sql , $param);
$data = $wpdb->get_results($sql , 'ARRAY_A');
return $data;
}