function delete_event($force_delete = false)
 {
     if ($force_delete) {
         wp_delete_post($this->id);
     } else {
         wp_trash_post($this->id);
     }
     //delete event ticket types
     $args = array('post_type' => 'tc_tickets', 'meta_key' => 'event_name', 'meta_value' => $this->id);
     $ticket_types = get_posts($args);
     foreach ($ticket_types as $ticket_type) {
         $ticket_type_instance = new TC_Ticket($ticket_type->ID);
         $ticket_type_instance->delete_ticket();
     }
 }
 function ticket_content($ticket_instance_id = false, $ticket_type_id = false)
 {
     if ($ticket_instance_id) {
         $ticket_instance = new TC_Ticket((int) $ticket_instance_id);
         $ticket = new TC_Ticket();
         $event_id = $ticket->get_ticket_event($ticket_instance->details->ticket_type_id);
         return apply_filters('tc_event_location_element', get_post_meta($event_id, 'event_location', true));
     } else {
         if ($ticket_type_id) {
             $ticket_type = new TC_Ticket((int) $ticket_type_id);
             $event_id = $ticket_type->get_ticket_event($ticket_type_id);
             $event = new TC_Event($event_id);
             return apply_filters('tc_event_location_element', $event->details->event_location);
         } else {
             return apply_filters('tc_event_location_element_default', __('Grosvenor Square, Mayfair, London', 'tc'));
         }
     }
 }
 function ticket_content($ticket_instance_id = false, $ticket_type_id = false)
 {
     if ($ticket_instance_id) {
         $ticket_instance = new TC_Ticket((int) $ticket_instance_id);
         $ticket = new TC_Ticket();
         $event_id = $ticket->get_ticket_event($ticket_instance->details->ticket_type_id);
         $event_terms = apply_filters('tc_the_content', get_post_meta($event_id, 'event_terms', true));
         return apply_filters('tc_event_terms_element', $event_terms);
     } else {
         if ($ticket_type_id) {
             $ticket_type = new TC_Ticket((int) $ticket_type_id);
             $event_id = $ticket_type->get_ticket_event($ticket_type_id);
             $event = new TC_Event($event_id);
             return apply_filters('tc_event_terms_element', apply_filters('tc_the_content', $event->details->event_terms));
         } else {
             return apply_filters('tc_event_terms_element_default', __('You must retain this Ticket on Your person at all times during the Event. In addition, for The Great Event, entrance to certain performances is subject to the purchase of an additional Ticket or “top-up” Ticket and for those performances only persons holding such a Ticket will be allowed access. Your Ticket may be invalidated if any part of it is removed, altered or defaced. Upon purchase, please check Tickets carefully as mistakes cannot always be rectified after purchase. Tickets are not issued on a sale or return basis and refunds will not be made on returned Tickets unless provided for under these Terms and Conditions. The Promoter will not be responsible for any Ticket that is lost, stolen or destroyed. You are solely responsible for the safe-keeping of Your Ticket. It is not always possible to issue duplicate Tickets. If duplicates are issued, a reasonable administration fee may be charged.', 'tc'));
         }
     }
 }
 function ticket_content($ticket_instance_id = false, $ticket_type_id = false)
 {
     if ($ticket_instance_id) {
         $ticket_instance = new TC_Ticket((int) $ticket_instance_id);
         $ticket = new TC_Ticket();
         $event_id = $ticket->get_ticket_event($ticket_instance->details->ticket_type_id);
         $event_name = get_the_title($event_id);
         //, 'event_name', true);
         return apply_filters('tc_event_name_element', $event_name);
     } else {
         if ($ticket_type_id) {
             $ticket_type = new TC_Ticket((int) $ticket_type_id);
             $event_id = $ticket_type->get_ticket_event($ticket_type_id);
             $event = new TC_Event($event_id);
             return apply_filters('tc_event_name', $event->details->post_title);
         } else {
             return apply_filters('tc_event_name_element', __('Great Event', 'tc'));
         }
     }
 }
 function ticket_content($ticket_instance_id = false, $ticket_type_id = false)
 {
     if ($ticket_instance_id) {
         $ticket_instance = new TC_Ticket((int) $ticket_instance_id);
         $ticket = new TC_Ticket();
         $event_id = $ticket->get_ticket_event(apply_filters('tc_ticket_type_id', $ticket_instance->details->ticket_type_id));
         $event_date = $this->get_event_date($event_id);
         return apply_filters('tc_event_date_time_element_ticket_type', $event_date, apply_filters('tc_ticket_type_id', $ticket_instance->details->ticket_type_id), $ticket_instance_id);
         //date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), strtotime( get_post_meta( $event_id, 'event_date_time', true ) ) )
     } else {
         if ($ticket_type_id) {
             $ticket_type = new TC_Ticket((int) $ticket_type_id);
             $event_id = $ticket_type->get_ticket_event($ticket_type_id);
             $event_date = $this->get_event_date($event_id);
             return $event_date;
             ////date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), strtotime( get_post_meta( $event_id, 'event_date_time', true ) ) );
         } else {
             return apply_filters('tc_event_date_time_element_default', date_i18n(get_option('date_format') . ' ' . get_option('time_format'), time(), false));
             //date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), time(), false )
         }
     }
 }
 function ticket_content($ticket_instance_id = false, $ticket_type_id = false)
 {
     if ($ticket_instance_id) {
         $ticket_instance = new TC_Ticket((int) $ticket_instance_id);
         $ticket = new TC_Ticket();
         $event_id = $ticket->get_ticket_event($ticket_instance->details->ticket_type_id);
         $sponsors_logo = apply_filters('tc_sponsors_logos_element', get_post_meta($event_id, 'sponsors_logo_file_url', true));
         if ($sponsors_logo) {
             return '<img src="' . $sponsors_logo . '" />';
         } else {
             return '';
         }
     } else {
         if ($ticket_type_id) {
             $ticket_type = new TC_Ticket((int) $ticket_type_id);
             $event_id = $ticket_type->get_ticket_event($ticket_type_id);
             $event = new TC_Event($event_id);
             return apply_filters('tc_sponsors_logos_element', '<img src="' . $event->details->sponsors_logo_file_url . '" />');
         } else {
             return apply_filters('tc_sponsors_logos_element_default', __('Sponsor Logos', 'tc'));
         }
     }
 }
 function ticket_content($ticket_instance_id = false, $ticket_type_id = false)
 {
     global $tc;
     if ($ticket_instance_id) {
         $ticket_instance = new TC_Ticket((int) $ticket_instance_id);
         $ticket = new TC_Ticket();
         $event_id = $ticket->get_ticket_event(apply_filters('tc_ticket_type_id', $ticket_instance->details->ticket_type_id));
         $event_logo = apply_filters('tc_event_logo_element', get_post_meta($event_id, 'event_logo_file_url', true));
         if ($event_logo) {
             return '<img src="' . $event_logo . '" />';
         } else {
             return '';
         }
     } else {
         if ($ticket_type_id) {
             $ticket_type = new TC_Ticket((int) $ticket_type_id);
             $event_id = $ticket_type->get_ticket_event($ticket_type_id);
             $event = new TC_Event($event_id);
             return apply_filters('tc_event_logo_element', '<img src="' . $event->details->event_logo_file_url . '" />');
         } else {
             return apply_filters('tc_event_logo_element_default', '<img src="' . $tc->plugin_dir . 'images/tickera_logo.png' . '" />');
         }
     }
 }
 function ticket_cart_button($atts)
 {
     global $tc;
     $tc_general_settings = get_option('tc_general_setting', false);
     extract(shortcode_atts(array('id' => false, 'title' => __('Add to Cart', 'tc'), 'show_price' => false, 'price_position' => 'after', 'price_wrapper' => 'span', 'price_wrapper_class' => 'price', 'soldout_message' => __('Tickets are sold out.', 'tc'), 'type' => 'cart', 'wrapper' => ''), $atts));
     $show_price = (bool) $show_price;
     if (isset($id)) {
         $ticket_type = new TC_Ticket($id, 'publish');
     }
     $event_id = get_post_meta($id, 'event_name', true);
     if (isset($ticket_type->details->ID) && get_post_status($event_id) == 'publish') {
         //check if ticket still exists
         if ($show_price) {
             $with_price_content = ' <span class="' . $price_wrapper_class . '">' . do_shortcode('[ticket_price id="' . $id . '"]') . '</span> ';
         } else {
             $with_price_content = '';
         }
         if (is_array($tc->get_cart_cookie()) && array_key_exists($id, $tc->get_cart_cookie())) {
             $button = sprintf('<' . $price_wrapper . ' class="tc_in_cart">%s <a href="%s">%s</a></' . $price_wrapper . '>', __('Ticket added to', 'tc'), $tc->get_cart_slug(true), __('Cart', 'tc'));
         } else {
             if ($ticket_type->is_ticket_exceeded_quantity_limit() === false) {
                 if (isset($tc_general_settings['force_login']) && $tc_general_settings['force_login'] == 'yes' && !is_user_logged_in()) {
                     $button = '<form class="cart_form">' . ($price_position == 'before' ? $with_price_content : '') . '<a href="' . wp_login_url(get_permalink()) . '" class="add_to_cart_force_login" id="ticket_' . $id . '"><span class="title">' . $title . '</span></a>' . ($price_position == 'after' ? $with_price_content : '') . '<input type="hidden" name="ticket_id" class="ticket_id" value="' . $id . '"/>' . '</form>';
                 } else {
                     $button = '<form class="cart_form">' . ($price_position == 'before' ? $with_price_content : '') . '<a href="#" class="add_to_cart" data-button-type="' . $type . '" id="ticket_' . $id . '"><span class="title">' . $title . '</span></a>' . ($price_position == 'after' ? $with_price_content : '') . '<input type="hidden" name="ticket_id" class="ticket_id" value="' . $id . '"/>' . '</form>';
                 }
             } else {
                 $button = '<span class="tc_tickets_sold">' . $soldout_message . '</span>';
             }
         }
         if ($id && get_post_type($id) == 'tc_tickets') {
             return $button;
         } else {
             return __('Unknown ticket ID', 'tc');
         }
     } else {
         return '';
     }
 }
 function ticket_checkin($echo = true)
 {
     if ($this->get_api_key_id()) {
         $api_key_id = $this->get_api_key_id();
         $ticket_id = ticket_code_to_id($this->ticket_code);
         if ($ticket_id) {
             $ticket_instance = new TC_Ticket_Instance($ticket_id);
             $ticket_type_id = apply_filters('tc_ticket_type_id', $ticket_instance->details->ticket_type_id);
             $ticket_type = new TC_Ticket($ticket_type_id);
             $order = new TC_Order($ticket_instance->details->post_parent);
             if ($order->details->post_status == 'order_paid') {
                 $order_is_paid = true;
             } else {
                 $order_is_paid = false;
             }
             $order_is_paid = apply_filters('tc_order_is_paid', $order_is_paid, $order->details->ID);
             if ($order_is_paid) {
                 //all good, continue with check-in process
             } else {
                 _e('Ticket does not exist', 'tc');
                 exit;
             }
             $ticket_event_id = $ticket_type->get_ticket_event($ticket_type_id);
         } else {
             _e('Ticket does not exist', 'tc');
             exit;
         }
         if ($this->get_api_event() != $ticket_event_id) {
             //Only API key for the parent event can check-in this ticket
             if ($this->get_api_event() !== 'all') {
                 if ($echo) {
                     _e('Insufficient permissions. This API key cannot check-in this ticket.', 'tc');
                 } else {
                     return 403;
                     //error code for incufficient persmissions
                 }
                 exit;
             }
         }
         $check_ins = $ticket_instance->get_ticket_checkins();
         $num_of_check_ins = apply_filters('tc_num_of_checkins', is_array($check_ins) ? count($check_ins) : 0);
         $available_checkins = get_post_meta($ticket_type_id, 'available_checkins_per_ticket', true);
         $alternate_available_checkins = get_post_meta($ticket_type_id, '_available_checkins_per_ticket', true);
         $available_checkins = !empty($available_checkins) ? $available_checkins : $alternate_available_checkins;
         $available_checkins = is_numeric($available_checkins) ? $available_checkins : 9999;
         //9999 means unlimited check-ins but it's set for easier comparation
         if ($available_checkins > $num_of_check_ins) {
             $check_in_status = apply_filters('tc_checkin_status_name', true);
             $check_in_status_bool = true;
             do_action('tc_check_in_notification', $ticket_id);
         } else {
             $check_in_status = apply_filters('tc_checkin_status_name', false);
             $check_in_status_bool = false;
         }
         $new_checkins = array();
         if (is_array($check_ins)) {
             foreach ($check_ins as $check_in) {
                 $new_checkins[] = $check_in;
             }
         }
         $new_checkin = array("date_checked" => time(), "status" => $check_in_status ? apply_filters('tc_checkin_status_name', 'Pass') : apply_filters('tc_checkin_status_name', 'Fail'), "api_key_id" => $api_key_id);
         $new_checkins[] = apply_filters('tc_new_checkin_array', $new_checkin);
         do_action('tc_before_checkin_array_update');
         update_post_meta($ticket_id, "tc_checkins", $new_checkins);
         do_action('tc_after_checkin_array_update');
         $payment_date = apply_filters('tc_checkin_payment_date', tc_format_date(apply_filters('tc_ticket_checkin_order_date', $order->details->tc_order_date, $order->details->ID)));
         //date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), $order->details->tc_order_date, false )
         if ($payment_date == '') {
             $payment_date = 'N/A';
         }
         $name = apply_filters('tc_checkin_owner_name', $ticket_instance->details->first_name . ' ' . $ticket_instance->details->last_name);
         if (trim($name) == '') {
             $name = 'N/A';
         }
         $address = apply_filters('tc_checkin_owner_address', $ticket_instance->details->address);
         if ($address == '') {
             $address = 'N/A';
         }
         $city = apply_filters('tc_checkin_owner_city', $ticket_instance->details->city);
         if ($city == '') {
             $city = 'N/A';
         }
         $state = apply_filters('tc_checkin_owner_state', $ticket_instance->details->state);
         if ($state == '') {
             $state = 'N/A';
         }
         $country = apply_filters('tc_checkin_owner_country', $ticket_instance->details->country);
         if ($country == '') {
             $country = 'N/A';
         }
         $data = array('status' => $check_in_status_bool, 'previous_status' => '', 'pass' => true, 'name' => $name, 'payment_date' => $payment_date, 'address' => $address, 'city' => $city, 'state' => $state, 'country' => $country, 'checksum' => $this->ticket_code);
         $buyer_full_name = isset($order->details->tc_cart_info['buyer_data']['first_name_post_meta']) ? $order->details->tc_cart_info['buyer_data']['first_name_post_meta'] . ' ' . $order->details->tc_cart_info['buyer_data']['last_name_post_meta'] : '';
         $buyer_email = isset($order->details->tc_cart_info['buyer_data']['email_post_meta']) ? $order->details->tc_cart_info['buyer_data']['email_post_meta'] : '';
         $data['custom_fields'] = array(array(apply_filters('tc_ticket_checkin_custom_field_title', 'Ticket Type'), apply_filters('tc_checkout_owner_info_ticket_title', $ticket_type->details->post_title, $ticket_type->details->ID)), array(apply_filters('tc_ticket_checkin_custom_field_title', 'Buyer Name'), apply_filters('tc_ticket_checkin_buyer_full_name', $buyer_full_name, $order->details->ID)), array(apply_filters('tc_ticket_checkin_custom_field_title', 'Buyer E-mail'), apply_filters('tc_ticket_checkin_buyer_email', $buyer_email, $order->details->ID)));
         $data['custom_fields'] = apply_filters('tc_checkin_custom_fields', $data['custom_fields'], $ticket_instance->details->ID, $ticket_event_id, $order, $ticket_type);
         apply_filters('tc_checkin_output_data', $data);
         if ($echo === true || $echo == 'echo') {
             echo json_encode($data);
             exit;
         } else {
             return $data;
         }
     }
 }
 function create_order($order_id, $cart_contents, $cart_info, $payment_info, $paid)
 {
     global $wpdb;
     if (empty($order_id)) {
         $order_id = $this->generate_order_id();
     } else {
         if ($this->get_order($order_id)) {
             //don't continue if the order exists
             return false;
         }
     }
     if (!session_id()) {
         session_start();
     }
     $this->set_cart_info_cookie($cart_info);
     $this->set_order_cookie($order_id);
     if (!isset($_SESSION['cart_info']['total']) || is_null($_SESSION['cart_info']['total'])) {
         $cart_total = $_SESSION['cart_total_pre'];
         $_SESSION['cart_info']['total'] = $_SESSION['tc_cart_total'];
         $cart_info = $_SESSION['cart_info'];
     } else {
         $cart_total = $_SESSION['cart_info']['total'];
     }
     $fraud = $this->check_for_total_paid_fraud($payment_info['total'], $cart_total);
     $user_id = get_current_user_id();
     //insert post type
     $status = $paid ? $fraud ? 'order_fraud' : 'order_paid' : 'order_received';
     $order = array();
     $order['post_title'] = $order_id;
     $order['post_name'] = $order_id;
     $order['post_content'] = serialize($cart_contents);
     $order['post_status'] = $status;
     $order['post_type'] = 'tc_orders';
     if ($user_id != 0) {
         $order['post_author'] = $user_id;
     }
     $post_id = wp_insert_post($order);
     /* add post meta */
     //Cart Contents
     add_post_meta($post_id, 'tc_cart_contents', $cart_contents);
     //Cart Info
     add_post_meta($post_id, 'tc_cart_info', $cart_info);
     //save row data - buyer and ticket owners data, gateway, total, currency, coupon code, etc.
     //Payment Info
     add_post_meta($post_id, 'tc_payment_info', $payment_info);
     //transaction_id, total, currency, method
     //Order Date & Time
     add_post_meta($post_id, 'tc_order_date', time());
     //Discount code
     if (isset($_SESSION['tc_discount_code'])) {
         add_post_meta($post_id, 'tc_discount_code', $_SESSION['tc_discount_code']);
     }
     //Order Paid Time
     add_post_meta($post_id, 'tc_paid_date', $paid ? time() : '');
     //empty means not yet paid
     //Event(s) - could be more events at once since customer may have tickets from more than one event in the cart
     add_post_meta($post_id, 'tc_parent_event', $this->get_cart_events($cart_contents));
     add_post_meta($post_id, 'tc_event_creators', $this->get_events_creators($cart_contents));
     //Discount Code
     add_post_meta($post_id, 'tc_paid_date', $paid ? time() : '');
     //Save Ticket Owner(s) data
     $owner_data = $_SESSION['cart_info']['owner_data'];
     $owner_records = array();
     $different_ticket_types = array_keys($owner_data['ticket_type_id_post_meta']);
     $n = 0;
     $i = 1;
     foreach ($different_ticket_types as $different_ticket_type) {
         $i = $i + 10;
         foreach ($owner_data as $field_name => $field_values) {
             $inner_count = count($field_values[$different_ticket_type]);
             foreach ($field_values[$different_ticket_type] as $field_value) {
                 $owner_records[((int) $n + (int) $inner_count) * (int) $i][$field_name] = $field_value;
                 $inner_count = $inner_count + 1;
             }
         }
         $n = $n++;
     }
     $owner_record_num = 1;
     foreach ($owner_records as $owner_record) {
         foreach ($owner_record as $owner_field_name => $owner_field_value) {
             if (preg_match('/_post_title/', $owner_field_name)) {
                 $title = $owner_field_value;
             }
             if (preg_match('/_post_excerpt/', $owner_field_name)) {
                 $excerpt = $owner_field_value;
             }
             if (preg_match('/_post_content/', $owner_field_name)) {
                 $content = $owner_field_value;
             }
             if (preg_match('/_post_meta/', $owner_field_name)) {
                 $metas[str_replace('_post_meta', '', $owner_field_name)] = $owner_field_value;
             }
         }
         if (apply_filters('tc_use_only_digit_order_number', false) == true) {
             $metas['ticket_code'] = apply_filters('tc_ticket_code', $order_id . '' . $owner_record_num);
         } else {
             $metas['ticket_code'] = apply_filters('tc_ticket_code', $order_id . '-' . $owner_record_num);
         }
         do_action('tc_after_owner_post_field_type_check');
         $arg = array('post_author' => isset($user_id) ? $user_id : '', 'post_parent' => $post_id, 'post_excerpt' => isset($excerpt) ? $excerpt : '', 'post_content' => isset($content) ? $content : '', 'post_status' => 'publish', 'post_title' => isset($title) ? $title : '', 'post_type' => 'tc_tickets_instances');
         $owner_record_id = @wp_insert_post($arg, true);
         foreach ($metas as $meta_name => $mata_value) {
             update_post_meta($owner_record_id, $meta_name, $mata_value);
         }
         $ticket_type_id = get_post_meta($owner_record_id, 'ticket_type_id', true);
         $ticket_type = new TC_Ticket($ticket_type_id);
         $event_id = $ticket_type->get_ticket_event();
         update_post_meta($owner_record_id, 'event_id', $event_id);
         $owner_record_num++;
     }
     foreach ($metas as $meta_name => $mata_value) {
         update_post_meta($owner_record_id, $meta_name, $mata_value);
     }
     //Send order status email to the customer
     $payment_class_name = $_SESSION['cart_info']['gateway_class'];
     $payment_gateway = new $payment_class_name();
     do_action('tc_order_created', $order_id, $status, $cart_contents, $cart_info, $payment_info);
     return $order_id;
 }
	<?php 
if (isset($message)) {
    ?>
		<div id="message" class="updated fade"><p><?php 
    echo esc_attr($message);
    ?>
</p></div>
		<?php 
}
?>

	<?php 
if (isset($_GET['action']) && $_GET['action'] == 'details' && isset($_GET['ID'])) {
    $ticket_instance = new TC_Ticket_Instance((int) $_GET['ID']);
    $ticket_type = new TC_Ticket($ticket_instance->details->ticket_type_id);
    $ticket_event_id = $ticket_type->get_ticket_event($ticket_instance->details->ticket_type_id);
    if (isset($_POST['api_key'])) {
        $api_key = new TC_API_Key($_POST['api_key']);
        $checkin = new TC_Checkin_API($api_key->details->api_key, apply_filters('tc_checkin_request_name', 'tickera_scan'), 'return', $ticket_instance->details->ticket_code, false);
        $checkin_result = $checkin->ticket_checkin(false);
        if ($checkin_result['status'] == 1) {
            $message_type = 'updated';
            $message = __('Ticket checked in successfully.', 'tc');
        } else {
            $message_type = 'error';
            $message = __('Ticket expired.', 'tc');
        }
    }
    $ticket_checkins = $ticket_instance->get_ticket_checkins();
    if (isset($_GET['checkin_action']) && $_GET['checkin_action'] == 'delete_checkin' && check_admin_referer('delete_checkin') && !isset($_POST['api_key'])) {
            $tickets->add_new_ticket();
            $message = __('Ticket Type data has been saved successfully.', 'tc');
        } else {
            $message = __('You do not have required permissions for this action.', 'tc');
        }
    }
}
if (isset($_GET['action']) && $_GET['action'] == 'edit') {
    $ticket = new TC_Ticket($_GET['ID']);
    $post_id = (int) $_GET['ID'];
}
if (isset($_GET['action']) && $_GET['action'] == 'delete') {
    if (!isset($_POST['_wpnonce'])) {
        check_admin_referer('delete_' . $_GET['ID']);
        if (current_user_can('manage_options') || current_user_can('delete_ticket_cap')) {
            $ticket = new TC_Ticket((int) $_GET['ID']);
            $ticket->delete_ticket();
            $message = __('Ticket Type has been successfully deleted.', 'tc');
        } else {
            $message = __('You do not have required permissions for this action.', 'tc');
        }
    }
}
if (isset($_GET['page_num'])) {
    $page_num = (int) $_GET['page_num'];
} else {
    $page_num = 1;
}
if (isset($_GET['s'])) {
    $ticketssearch = $_GET['s'];
} else {
function tc_get_ticket_instance_event($field_name = false, $field_id = false, $ticket_instance_id)
{
    $ticket_type_id = get_post_meta($ticket_instance_id, 'ticket_type_id', true);
    $ticket_type = new TC_Ticket($ticket_type_id);
    $event_id = $ticket_type->get_ticket_event(apply_filters('tc_ticket_type_id', $ticket_type_id));
    if (!empty($event_id)) {
        $event = new TC_Event($event_id);
        echo $event->details->post_title;
    } else {
        echo __('N/A');
    }
}
function tc_get_order_event($field_name = '', $post_id = '')
{
    $order_status = get_post_status($post_id);
    $order_status = $order_status == 'trash' ? 'trash' : 'publish';
    $orders = new TC_Orders();
    $user_id = get_current_user_id();
    $order_id = get_the_title($post_id);
    $cart_contents = get_post_meta($post_id, 'tc_cart_contents', true);
    $cart_info = get_post_meta($post_id, 'tc_cart_info', true);
    $owner_data = $cart_info['owner_data'];
    $tickets = count($cart_contents);
    if (isset($_POST['recreate_tickets'])) {
        //recreating tickets
        //Save Ticket Owner(s) data
        //$owner_data		 = $_SESSION[ 'cart_info' ][ 'owner_data' ];
        $owner_records = array();
        $different_ticket_types = array_keys($owner_data['ticket_type_id_post_meta']);
        $n = 0;
        $i = 1;
        foreach ($different_ticket_types as $different_ticket_type) {
            $i = $i + 10;
            foreach ($owner_data as $field_name => $field_values) {
                $inner_count = count($field_values[$different_ticket_type]);
                foreach ($field_values[$different_ticket_type] as $field_value) {
                    $owner_records[((int) $n + (int) $inner_count) * (int) $i][$field_name] = $field_value;
                    $inner_count = $inner_count + 1;
                }
            }
            $n = $n++;
        }
        $owner_record_num = 1;
        foreach ($owner_records as $owner_record) {
            foreach ($owner_record as $owner_field_name => $owner_field_value) {
                if (preg_match('/_post_title/', $owner_field_name)) {
                    $title = $owner_field_value;
                }
                if (preg_match('/_post_excerpt/', $owner_field_name)) {
                    $excerpt = $owner_field_value;
                }
                if (preg_match('/_post_content/', $owner_field_name)) {
                    $content = $owner_field_value;
                }
                if (preg_match('/_post_meta/', $owner_field_name)) {
                    $metas[str_replace('_post_meta', '', $owner_field_name)] = $owner_field_value;
                }
            }
            $metas['ticket_code'] = apply_filters('tc_ticket_code', $order_id . '-' . $owner_record_num);
            $arg = array('post_author' => isset($user_id) ? $user_id : '', 'post_parent' => $post_id, 'post_excerpt' => isset($excerpt) ? $excerpt : '', 'post_content' => isset($content) ? $content : '', 'post_status' => $order_status, 'post_title' => isset($title) ? $title : '', 'post_type' => 'tc_tickets_instances');
            $owner_record_id = @wp_insert_post($arg, true);
            foreach ($metas as $meta_name => $mata_value) {
                update_post_meta($owner_record_id, $meta_name, $mata_value);
            }
            $ticket_type_id = get_post_meta($owner_record_id, 'ticket_type_id', true);
            $ticket_type = new TC_Ticket($ticket_type_id);
            $event_id = $ticket_type->get_ticket_event();
            update_post_meta($owner_record_id, 'event_id', $event_id);
            $owner_record_num++;
        }
    }
    //END recreating tickets
    $args = array('posts_per_page' => -1, 'orderby' => 'post_date', 'order' => 'ASC', 'post_type' => 'tc_tickets_instances', 'post_status' => array('trash', 'publish'), 'post_parent' => $post_id);
    $tickets = get_posts($args);
    $columns = $orders->get_owner_info_fields();
    $columns = apply_filters('tc_order_details_owner_columns', $columns);
    $style = '';
    ?>
	<table class="order-details widefat shadow-table">
		<tr>
			<?php 
    foreach ($columns as $column) {
        ?>
				<th><?php 
        echo $column['field_title'];
        ?>
</th>
				<?php 
    }
    ?>
		</tr>

		<?php 
    foreach ($tickets as $ticket) {
        $style = ' class="alternate"' == $style ? '' : ' class="alternate"';
        ?>
			<tr <?php 
        echo $style;
        ?>
>
				<?php 
        foreach ($columns as $column) {
            ?>
					<td class="<?php 
            echo esc_attr($column['field_name']);
            ?>
" data-id="<?php 
            echo $column['field_name'] == 'ID' ? $ticket->ID : '';
            ?>
">
						<?php 
            if ($column['field_type'] == 'function') {
                eval($column['function'] . '("' . $column['field_name'] . '", "' . (isset($column['field_id']) ? $column['field_id'] : '') . '", "' . $ticket->ID . '");');
            } else {
                if ($column['post_field_type'] == 'post_meta') {
                    $value = get_post_meta($ticket->ID, $column['field_name'], true);
                    if (empty($value)) {
                        echo '-';
                    } else {
                        echo $value;
                    }
                }
                if ($column['post_field_type'] == 'ID') {
                    echo $ticket->ID;
                }
            }
            ?>
					</td>
				<?php 
        }
        ?>
			</tr>
			<?php 
    }
    ?>
	</table>
	<?php 
    if (count($tickets) == 0 && count($cart_contents) > 0) {
        ?>
		<div class="status_red tc_order_tickets_warning">
			<?php 
        _e('There are not any tickets. Would you like to try to recreate them? ', 'tc');
        ?>
			<form name="tc_recreate_tickets" method="POST">
				<input type="submit" name="recreate_tickets" value="<?php 
        echo esc_attr(__('Recrete Tickets', 'tc'));
        ?>
" />
			</form>
		</div>
		<?php 
    }
}