function tc_order_details_table_front($order_id, $return = false)
{
    if ($return) {
        ob_start();
    }
    $order = new TC_Order($order_id);
    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_id);
    if ($order_is_paid == true) {
        $orders = new TC_Orders();
        $args = array('posts_per_page' => -1, 'orderby' => 'post_date', 'order' => 'ASC', 'post_type' => 'tc_tickets_instances', 'post_parent' => $order->details->ID);
        $tickets = get_posts($args);
        $columns = $orders->get_owner_info_fields_front();
        $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>
							<?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') {
                        echo get_post_meta($ticket->ID, $column['field_name'], true);
                    }
                    if ($column['post_field_type'] == 'ID') {
                        echo $ticket->ID;
                    }
                }
                ?>
						</td>
					<?php 
            }
            ?>
				</tr>
				<?php 
        }
        ?>
		</table>
		<?php 
    }
    if ($return) {
        $content = wpautop(ob_get_clean(), true);
        return $content;
    }
}
function tc_get_order_details_front($order_id = '', $order_key = '', $return = false)
{
    global $tc;
    if ($return) {
        ob_start();
    }
    $tc_general_settings = get_option('tc_general_setting', false);
    $order = new TC_Order($order_id);
    if ($order->details->tc_order_date == $order_key) {
        //key must match order creation date for security reasons
        if ($order->details->post_status == 'order_received') {
            $order_status = __('Pending Payment', 'tc');
        } else {
            if ($order->details->post_status == 'order_fraud') {
                $order_status = __('Under Review', 'tc');
            } else {
                if ($order->details->post_status == 'order_paid') {
                    $order_status = __('Payment Completed', 'tc');
                } else {
                    if ($order->details->post_status == 'trash') {
                        $order_status = __('Order Deleted', 'tc');
                    } else {
                        $order_status = $order->details->post_status;
                    }
                }
            }
        }
        $fees_total = apply_filters('tc_cart_currency_and_format', $order->details->tc_payment_info['fees_total']);
        $tax_total = apply_filters('tc_cart_currency_and_format', $order->details->tc_payment_info['tax_total']);
        $subtotal = apply_filters('tc_cart_currency_and_format', $order->details->tc_payment_info['subtotal']);
        $total = apply_filters('tc_cart_currency_and_format', $order->details->tc_payment_info['total']);
        $transaction_id = isset($order->details->tc_payment_info['transaction_id']) ? $order->details->tc_payment_info['transaction_id'] : '';
        $order_id = strtoupper($order->details->post_name);
        $order_date = $payment_date = apply_filters('tc_order_date', tc_format_date($order->details->tc_order_date, true));
        //date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), $order->details->tc_order_date, false )
        ?>

		<label><span class="order_details_title"><?php 
        _e('Order: ', 'tc');
        ?>
</span> <?php 
        echo $order_id;
        ?>
</label>
		<label><span class="order_details_title"><?php 
        _e('Order date: ', 'tc');
        ?>
</span> <?php 
        echo $order_date;
        ?>
</label>
		<label><span class="order_details_title"><?php 
        _e('Order status: ', 'tc');
        ?>
</span> <?php 
        echo $order_status;
        ?>
</label>
		<?php 
        if (isset($transaction_id) && $transaction_id !== '') {
            ?>
			<label><span class="order_details_title"><?php 
            _e('Transaction ID: ', 'tc');
            ?>
</span> <?php 
            echo $transaction_id;
            ?>
</label>
		<?php 
        }
        ?>
		<label><span class="order_details_title"><?php 
        _e('Subtotal: ', 'tc');
        ?>
</span> <?php 
        echo $subtotal;
        ?>
</label>
		<?php 
        if (!isset($tc_general_settings['show_fees']) || isset($tc_general_settings['show_fees']) && $tc_general_settings['show_fees'] == 'yes') {
            ?>
			<label><span class="order_details_title"><?php 
            echo $tc_general_settings['fees_label'];
            ?>
</span> <?php 
            echo $fees_total;
            ?>
</label>
		<?php 
        }
        ?>
		<?php 
        if (!isset($tc_general_settings['show_tax_rate']) || isset($tc_general_settings['show_tax_rate']) && $tc_general_settings['show_tax_rate'] == 'yes') {
            ?>
			<label><span class="order_details_title"><?php 
            echo $tc_general_settings['tax_label'];
            ?>
</span> <?php 
            echo $tax_total;
            ?>
</label>
		<?php 
        }
        ?>
		<hr />
		<label><span class="order_details_title"><?php 
        _e('Total: ', 'tc');
        ?>
</span> <?php 
        echo $total;
        ?>
</label>

		<?php 
        if ($order->details->post_status == 'order_paid') {
            $orders = new TC_Orders();
            $args = array('posts_per_page' => -1, 'orderby' => 'post_date', 'order' => 'ASC', 'post_type' => 'tc_tickets_instances', 'post_parent' => $order->details->ID);
            $tickets = get_posts($args);
            $columns = $orders->get_owner_info_fields_front();
            $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>
								<?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') {
                            echo get_post_meta($ticket->ID, $column['field_name'], true);
                        }
                        if ($column['post_field_type'] == 'ID') {
                            echo $ticket->ID;
                        }
                    }
                    ?>
							</td>
						<?php 
                }
                ?>
					</tr>
					<?php 
            }
            ?>
			</table>
			<?php 
        }
    } else {
        _e("You don't have required permissions to access this page.", 'tc');
    }
    if ($return) {
        $content = wpautop(ob_get_clean(), true);
        return $content;
    }
}