0,'show_image'=>'true','show_meta'=>'true','show_content'=>'true','show_gallery'=>'true','show_tickets'=>'true'],$atts,'evqra_single_event');$id=absint($atts['id']);if(!$id||get_post_type($id)!=='evqra_event'||get_post_status($id)!=='publish')return '
'.esc_html__('Event not found or not published.','eventqora').'
';$event=get_post($id);$date=get_post_meta($id,'_evqra_event_date',true);$start=get_post_meta($id,'_evqra_event_start_time',true)?:get_post_meta($id,'_evqra_event_time',true);$end=get_post_meta($id,'_evqra_event_end_time',true);$venue_id=absint(get_post_meta($id,'_evqra_event_venue_id',true));$organizer_id=absint(get_post_meta($id,'_evqra_event_organizer_id',true));$categories=wp_get_post_terms($id,'evqra_event_category');ob_start();echo '
';if(evqra_sc_bool($atts['show_image'],true)&&has_post_thumbnail($id))echo '
'.get_the_post_thumbnail($id,'large',['loading'=>'lazy']).'
';echo '

'.esc_html(get_the_title($id)).'

';if(evqra_sc_bool($atts['show_meta'],true)){echo '
';if($date)echo ''.esc_html__('Date','eventqora').': '.esc_html($date).'';if($start)echo ''.esc_html__('Time','eventqora').': '.esc_html($start.($end?' – '.$end:'' )).'';if($venue_id&&get_post_type($venue_id)==='evqra_venue')echo ''.esc_html__('Venue','eventqora').': '.esc_html(get_the_title($venue_id)).'';if($organizer_id&&get_post_type($organizer_id)==='evqra_organizer')echo ''.esc_html__('Organizer','eventqora').': '.esc_html(get_the_title($organizer_id)).'';if(!is_wp_error($categories)&&$categories)echo ''.esc_html__('Categories','eventqora').': '.esc_html(implode(', ',wp_list_pluck($categories,'name'))).'';echo '
';}if(evqra_sc_bool($atts['show_content'],true))echo '
'.wp_kses_post(apply_filters('the_content',$event->post_content)).'
';if(evqra_sc_bool($atts['show_gallery'],true)){$gallery=get_post_meta($id,'_evqra_event_gallery',true);$ids=array_filter(array_map('absint',is_array($gallery)?$gallery:explode(',',(string)$gallery)));if($ids){echo '';}}if(evqra_sc_bool($atts['show_tickets'],true)&&class_exists('EVQRA_Ticket_Inventory')){$rows=EVQRA_Ticket_Inventory::all_for_event($id);if($rows){echo '

'.esc_html__('Tickets','eventqora').'

';foreach($rows as $row){$available=max(0,(int)$row->available);echo '
'.esc_html($row->ticket_key).''.esc_html(sprintf(_n('%d available','%d available',$available,'eventqora'),absint($available))).'
';}echo '
';}}echo '
';return ob_get_clean();} function evqra_sc_event_details($atts=[]){return evqra_sc_single_event($atts);} function evqra_sc_single_directory_item($atts,$post_type,$shortcode){evqra_sc_page_assets();$atts=shortcode_atts(['id'=>0,'show_content'=>'true'],$atts,$shortcode);$id=absint($atts['id']);if(!$id||get_post_type($id)!==$post_type||get_post_status($id)!=='publish')return '
'.esc_html__('Item not found or not published.','eventqora').'
';$post=get_post($id);ob_start();echo '
';if(has_post_thumbnail($id))echo '
'.get_the_post_thumbnail($id,'large',['loading'=>'lazy']).'
';echo '

'.esc_html(get_the_title($id)).'

';if($post_type==='evqra_venue'){$address=implode(', ',array_filter([get_post_meta($id,'_evqra_venue_address',true),get_post_meta($id,'_evqra_venue_city',true),get_post_meta($id,'_evqra_venue_state',true),get_post_meta($id,'_evqra_venue_country',true)]));if($address)echo '

'.esc_html($address).'

';}else{$email=sanitize_email(get_post_meta($id,'_evqra_organizer_email',true));$website=esc_url(get_post_meta($id,'_evqra_organizer_website',true));if($email)echo '

'.esc_html($email).'

';elseif($website)echo '

'.esc_html__('Visit website','eventqora').'

';}if(evqra_sc_bool($atts['show_content'],true))echo '
'.wp_kses_post(apply_filters('the_content',$post->post_content)).'
';echo '
';return ob_get_clean();} function evqra_sc_register_page_shortcodes(){add_shortcode('evqra_single_event','evqra_sc_single_event');add_shortcode('evqra_event_details','evqra_sc_event_details');add_shortcode('evqra_single_venue',function($atts){return evqra_sc_single_directory_item($atts,'evqra_venue','evqra_single_venue');});add_shortcode('evqra_single_organizer',function($atts){return evqra_sc_single_directory_item($atts,'evqra_organizer','evqra_single_organizer');});} add_action('init','evqra_sc_register_page_shortcodes',101); require_once EVQRA_PLUGIN_DIR . 'shortcodes/booking-shortcodes.php';