<?php

defined('ABSPATH') || exit;
global $wpdb;
$payment_gateway = wc_get_payment_gateway_by_order($order);
$line_items = $order->get_items(apply_filters('woocommerce_admin_order_item_types', 'line_item'));
$discounts = $order->get_items('discount');
$line_items_fee = $order->get_items('fee');
$line_items_shipping = $order->get_items('shipping');
if (wc_tax_enabled()) {
    $order_taxes = $order->get_taxes();
    $tax_classes = WC_Tax::get_tax_classes();
    $classes_options = wc_get_product_tax_class_options();
    $show_tax_columns = count($order_taxes) === 1;
}
?>
<div class="woocommerce_order_items_wrapper wc-order-items-editable">
	<table cellpadding="0" cellspacing="0" class="woocommerce_order_items">
		<thead>
			<tr>
				<th class="item sortable" colspan="2" data-sort="string-ins"><?php 
esc_html_e('Item', 'woocommerce');
?></th>
				<?php 
do_action('woocommerce_admin_order_item_headers', $order);
?>
				<th class="item_cost sortable" data-sort="float"><?php 
esc_html_e('Cost', 'woocommerce');
?></th>
				<th class="quantity sortable" data-sort="int"><?php 
esc_html_e('Qty', 'woocommerce');
?></th>
				<th class="line_cost sortable" data-sort="float"><?php 
esc_html_e('Total', 'woocommerce');
?></th>
				<?php 
if (!empty($order_taxes)) {
    foreach ($order_taxes as $tax_id => $tax_item) {
        $tax_class = wc_get_tax_class_by_tax_id($tax_item['rate_id']);
        $tax_class_name = isset($classes_options[$tax_class]) ? $classes_options[$tax_class] : __('Tax', 'woocommerce');
        $column_label = !empty($tax_item['label']) ? $tax_item['label'] : __('Tax', 'woocommerce');
        $column_tip = sprintf(esc_html__('%1$s (%2$s)', 'woocommerce'), $tax_item['name'], $tax_class_name);
        ?>
						<th class="line_tax tips" data-tip="<?php 
        echo esc_attr($column_tip);
        ?>">
							<?php 
        echo esc_attr($column_label);
        ?>
							<input type="hidden" class="order-tax-id" name="order_taxes[<?php 
        echo esc_attr($tax_id);
        ?>]" value="<?php 
        echo esc_attr($tax_item['rate_id']);
        ?>">
							<?php 
        if ($order->is_editable()) {
            ?>
								<a class="delete-order-tax" href="#" data-rate_id="<?php 
            echo esc_attr($tax_id);
            ?>"></a>
							<?php 
        }
        ?>
						</th>
						<?php 
    }
}
?>
				<th class="wc-order-edit-line-item" width="1%">&nbsp;</th>
			</tr>
		</thead>
		<tbody id="order_line_items">
			<?php 
foreach ($line_items as $item_id => $item) {
    do_action('woocommerce_before_order_item_' . $item->get_type() . '_html', $item_id, $item, $order);
    include __DIR__ . '/html-order-item.php';
    do_action('woocommerce_order_item_' . $item->get_type() . '_html', $item_id, $item, $order);
}
do_action('woocommerce_admin_order_items_after_line_items', $order->get_id());
?>
		</tbody>
		<tbody id="order_fee_line_items">
			<?php 
foreach ($line_items_fee as $item_id => $item) {
    include __DIR__ . '/html-order-fee.php';
}
do_action('woocommerce_admin_order_items_after_fees', $order->get_id());
?>
		</tbody>
		<tbody id="order_shipping_line_items">
			<?php 
$shipping_methods = WC()->shipping() ? WC()->shipping()->load_shipping_methods() : array();
foreach ($line_items_shipping as $item_id => $item) {
    include __DIR__ . '/html-order-shipping.php';
}
do_action('woocommerce_admin_order_items_after_shipping', $order->get_id());
?>
		</tbody>
		<tbody id="order_refunds">
			<?php 
$refunds = $order->get_refunds();
if ($refunds) {
    foreach ($refunds as $refund) {
        include __DIR__ . '/html-order-refund.php';
    }
    do_action('woocommerce_admin_order_items_after_refunds', $order->get_id());
}
?>
		</tbody>
	</table>
</div>
<div class="wc-order-data-row wc-order-totals-items wc-order-items-editable">
	<?php 
$coupons = $order->get_items('coupon');
if ($coupons) {
    ?>
		<div class="wc-used-coupons">
			<ul class="wc_coupon_list">
				<li><strong><?php 
    esc_html_e('Coupon(s)', 'woocommerce');
    ?></strong></li>
				<?php 
    foreach ($coupons as $item_id => $item) {
        $post_id = $wpdb->get_var($wpdb->prepare("SELECT ID FROM {$wpdb->posts} WHERE post_title = %s AND post_type = 'shop_coupon' AND post_status = 'publish' LIMIT 1;", $item->get_code()));
        $class = $order->is_editable() ? 'code editable' : 'code';
        ?>
					<li class="<?php 
        echo esc_attr($class);
        ?>">
						<?php 
        if ($post_id) {
            ?>
							<?php 
            $post_url = apply_filters('woocommerce_admin_order_item_coupon_url', add_query_arg(array('post' => $post_id, 'action' => 'edit'), admin_url('post.php')), $item, $order);
            ?>
							<a href="<?php 
            echo esc_url($post_url);
            ?>" class="tips" data-tip="<?php 
            echo esc_attr(wc_price($item->get_discount(), array('currency' => $order->get_currency())));
            ?>">
								<span><?php 
            echo esc_html($item->get_code());
            ?></span>
							</a>
						<?php 
        } else {
            ?>
							<span class="tips" data-tip="<?php 
            echo esc_attr(wc_price($item->get_discount(), array('currency' => $order->get_currency())));
            ?>">
								<span><?php 
            echo esc_html($item->get_code());
            ?></span>
							</span>
						<?php 
        }
        ?>
						<?php 
        if ($order->is_editable()) {
            ?>
							<a class="remove-coupon" href="javascript:void(0)" aria-label="Remove" data-code="<?php 
            echo esc_attr($item->get_code());
            ?>"></a>
						<?php 
        }
        ?>
					</li>
				<?php 
    }
    ?>
			</ul>
		</div>
	<?php 
}
?>
	<table class="wc-order-totals">
			<tr>
				<td class="label"><?php 
esc_html_e('Items Subtotal:', 'woocommerce');
?></td>
				<td width="1%"></td>
				<td class="total">
					<?php 
echo wc_price($order->get_subtotal(), array('currency' => $order->get_currency()));
?>
				</td>
			</tr>
		<?php 
if (0 < $order->get_total_discount()) {
    ?>
			<tr>
				<td class="label"><?php 
    esc_html_e('Coupon(s):', 'woocommerce');
    ?></td>
				<td width="1%"></td>
				<td class="total">-
					<?php 
    echo wc_price($order->get_total_discount(), array('currency' => $order->get_currency()));
    ?>
				</td>
			</tr>
		<?php 
}
?>
		<?php 
if (0 < $order->get_total_fees()) {
    ?>
			<tr>
				<td class="label"><?php 
    esc_html_e('Fees:', 'woocommerce');
    ?></td>
				<td width="1%"></td>
				<td class="total">
					<?php 
    echo wc_price($order->get_total_fees(), array('currency' => $order->get_currency()));
    ?>
				</td>
			</tr>
		<?php 
}
?>

		<?php 
do_action('woocommerce_admin_order_totals_after_discount', $order->get_id());
?>

		<?php 
if ($order->get_shipping_methods()) {
    ?>
			<tr>
				<td class="label"><?php 
    esc_html_e('Shipping:', 'woocommerce');
    ?></td>
				<td width="1%"></td>
				<td class="total">
					<?php 
    echo wc_price($order->get_shipping_total(), array('currency' => $order->get_currency()));
    ?>
				</td>
			</tr>
		<?php 
}
?>

		<?php 
do_action('woocommerce_admin_order_totals_after_shipping', $order->get_id());
?>

		<?php 
if (wc_tax_enabled()) {
    ?>
			<?php 
    foreach ($order->get_tax_totals() as $code => $tax_total) {
        ?>
				<tr>
					<td class="label"><?php 
        echo esc_html($tax_total->label);
        ?>:</td>
					<td width="1%"></td>
					<td class="total">
						<?php 
        echo wc_price(wc_round_tax_total($tax_total->amount), array('currency' => $order->get_currency()));
        ?>
					</td>
				</tr>
			<?php 
    }
    ?>
		<?php 
}
?>

		<?php 
do_action('woocommerce_admin_order_totals_after_tax', $order->get_id());
?>

		<tr>
			<td class="label"><?php 
esc_html_e('Order Total', 'woocommerce');
?>:</td>
			<td width="1%"></td>
			<td class="total">
				<?php 
echo wc_price($order->get_total(), array('currency' => $order->get_currency()));
?>
			</td>
		</tr>

	</table>

	<div class="clear"></div>

	<?php 
if (in_array($order->get_status(), array('processing', 'completed', 'refunded'), true) && !empty($order->get_date_paid())) {
    ?>

		<table class="wc-order-totals" style="border-top: 1px solid #999; margin-top:12px; padding-top:12px">
			<tr>
				<td class="<?php 
    echo $order->get_total_refunded() ? 'label' : 'label label-highlight';
    ?>"><?php 
    esc_html_e('Paid', 'woocommerce');
    ?>: <br /></td>
				<td width="1%"></td>
				<td class="total">
					<?php 
    echo wc_price($order->get_total(), array('currency' => $order->get_currency()));
    ?>
				</td>
			</tr>
			<tr>
				<td>
					<span class="description">
					<?php 
    if ($order->get_payment_method_title()) {
        echo esc_html(sprintf(__('%1$s via %2$s', 'woocommerce'), $order->get_date_paid()->date_i18n(get_option('date_format')), $order->get_payment_method_title()));
    } else {
        echo esc_html($order->get_date_paid()->date_i18n(get_option('date_format')));
    }
    ?>
					</span>
				</td>
				<td colspan="2"></td>
			</tr>
		</table>

	<div class="clear"></div>

	<?php 
}
?>

	<?php 
if ($order->get_total_refunded()) {
    ?>
		<table class="wc-order-totals" style="border-top: 1px solid #999; margin-top:12px; padding-top:12px">
			<tr>
				<td class="label refunded-total"><?php 
    esc_html_e('Refunded', 'woocommerce');
    ?>:</td>
				<td width="1%"></td>
				<td class="total refunded-total">-<?php 
    echo wc_price($order->get_total_refunded(), array('currency' => $order->get_currency()));
    ?></td>
			</tr>

			<?php 
    do_action('woocommerce_admin_order_totals_after_refunded', $order->get_id());
    ?>

			<tr>
				<td class="label label-highlight"><?php 
    esc_html_e('Net Payment', 'woocommerce');
    ?>:</td>
				<td width="1%"></td>
				<td class="total">
				<?php 
    echo wc_price($order->get_total() - $order->get_total_refunded(), array('currency' => $order->get_currency()));
    ?>
				</td>
			</tr>

		</table>
	<?php 
}
?>

	<div class="clear"></div>

	<table class="wc-order-totals">
		<?php 
do_action('woocommerce_admin_order_totals_after_total', $order->get_id());
?>
	</table>

	<div class="clear"></div>
</div>
<div class="wc-order-data-row wc-order-bulk-actions wc-order-data-row-toggle">
	<p class="add-items">
		<?php 
if ($order->is_editable()) {
    ?>
			<button type="button" class="button add-line-item"><?php 
    esc_html_e('Add item(s)', 'woocommerce');
    ?></button>
			<?php 
    if (wc_coupons_enabled()) {
        ?>
				<button type="button" class="button add-coupon"><?php 
        esc_html_e('Apply coupon', 'woocommerce');
        ?></button>
			<?php 
    }
    ?>
		<?php 
} else {
    ?>
			<span class="description"><?php 
    echo wc_help_tip(__('To edit this order change the status back to "Pending payment"', 'woocommerce'));
    ?> <?php 
    esc_html_e('This order is no longer editable.', 'woocommerce');
    ?></span>
		<?php 
}
?>
		<?php 
if (0 < $order->get_total() - $order->get_total_refunded() || 0 < absint($order->get_item_count() - $order->get_item_count_refunded())) {
    ?>
			<button type="button" class="button refund-items"><?php 
    esc_html_e('Refund', 'woocommerce');
    ?></button>
		<?php 
}
?>
		<?php 
do_action('woocommerce_order_item_add_action_buttons', $order);
?>
		<?php 
if ($order->is_editable()) {
    ?>
			<button type="button" class="button button-primary calculate-action"><?php 
    esc_html_e('Recalculate', 'woocommerce');
    ?></button>
		<?php 
}
?>
	</p>
</div>
<div class="wc-order-data-row wc-order-add-item wc-order-data-row-toggle" style="display:none;">
	<button type="button" class="button add-order-item"><?php 
esc_html_e('Add product(s)', 'woocommerce');
?></button>
	<button type="button" class="button add-order-fee"><?php 
esc_html_e('Add fee', 'woocommerce');
?></button>
	<button type="button" class="button add-order-shipping"><?php 
esc_html_e('Add shipping', 'woocommerce');
?></button>
	<?php 
if (wc_tax_enabled()) {
    ?>
		<button type="button" class="button add-order-tax"><?php 
    esc_html_e('Add tax', 'woocommerce');
    ?></button>
	<?php 
}
?>
	<?php 
do_action('woocommerce_order_item_add_line_buttons', $order);
?>
	<button type="button" class="button cancel-action"><?php 
esc_html_e('Cancel', 'woocommerce');
?></button>
	<button type="button" class="button button-primary save-action"><?php 
esc_html_e('Save', 'woocommerce');
?></button>
</div>
<?php 
if (0 < $order->get_total() - $order->get_total_refunded() || 0 < absint($order->get_item_count() - $order->get_item_count_refunded())) {
    ?>
<div class="wc-order-data-row wc-order-refund-items wc-order-data-row-toggle" style="display: none;">
	<table class="wc-order-totals">
		<?php 
    if ('yes' === get_option('woocommerce_manage_stock')) {
        ?>
			<tr>
				<td class="label"><label for="restock_refunded_items"><?php 
        esc_html_e('Restock refunded items', 'woocommerce');
        ?>:</label></td>
				<td class="total"><input type="checkbox" id="restock_refunded_items" name="restock_refunded_items" <?php 
        checked(apply_filters('woocommerce_restock_refunded_items', true));
        ?> /></td>
			</tr>
		<?php 
    }
    ?>
		<tr>
			<td class="label"><?php 
    esc_html_e('Amount already refunded', 'woocommerce');
    ?>:</td>
			<td class="total">-<?php 
    echo wc_price($order->get_total_refunded(), array('currency' => $order->get_currency()));
    ?></td>
		</tr>
		<tr>
			<td class="label"><?php 
    esc_html_e('Total available to refund', 'woocommerce');
    ?>:</td>
			<td class="total"><?php 
    echo wc_price($order->get_total() - $order->get_total_refunded(), array('currency' => $order->get_currency()));
    ?></td>
		</tr>
		<tr>
			<td class="label">
				<label for="refund_amount">
					<?php 
    echo wc_help_tip(__('Refund the line items above. This will show the total amount to be refunded', 'woocommerce'));
    ?>
					<?php 
    esc_html_e('Refund amount', 'woocommerce');
    ?>:
				</label>
			</td>
			<td class="total">
				<input type="text" id="refund_amount" name="refund_amount" class="wc_input_price"
				<?php 
    if (wc_tax_enabled()) {
        echo 'readonly';
    }
    ?>
				/>
				<div class="clear"></div>
			</td>
		</tr>
		<tr>
			<td class="label">
				<label for="refund_reason">
					<?php 
    echo wc_help_tip(__('Note: the refund reason will be visible by the customer.', 'woocommerce'));
    ?>
					<?php 
    esc_html_e('Reason for refund (optional):', 'woocommerce');
    ?>
				</label>
			</td>
			<td class="total">
				<input type="text" id="refund_reason" name="refund_reason" />
				<div class="clear"></div>
			</td>
		</tr>
	</table>
	<div class="clear"></div>
	<div class="refund-actions">
		<?php 
    $refund_amount = '<span class="wc-order-refund-amount">' . wc_price(0, array('currency' => $order->get_currency())) . '</span>';
    $gateway_name = false !== $payment_gateway ? !empty($payment_gateway->method_title) ? $payment_gateway->method_title : $payment_gateway->get_title() : __('Payment gateway', 'woocommerce');
    if (false !== $payment_gateway && $payment_gateway->can_refund_order($order)) {
        echo '<button type="button" class="button button-primary do-api-refund">' . sprintf(esc_html__('Refund %1$s via %2$s', 'woocommerce'), wp_kses_post($refund_amount), esc_html($gateway_name)) . '</button>';
    }
    ?>
		<?php 
    ?>
		<button type="button" class="button button-primary do-manual-refund tips" data-tip="<?php 
    esc_attr_e('You will need to manually issue a refund through your payment gateway after using this.', 'woocommerce');
    ?>"><?php 
    printf(esc_html__('Refund %s manually', 'woocommerce'), wp_kses_post($refund_amount));
    ?></button>
		<button type="button" class="button cancel-action"><?php 
    esc_html_e('Cancel', 'woocommerce');
    ?></button>
		<input type="hidden" id="refunded_amount" name="refunded_amount" value="<?php 
    echo esc_attr($order->get_total_refunded());
    ?>" />
		<div class="clear"></div>
	</div>
</div>
<?php 
}
?>

<script type="text/template" id="tmpl-wc-modal-add-products">
	<div class="wc-backbone-modal">
		<div class="wc-backbone-modal-content">
			<section class="wc-backbone-modal-main" role="main">
				<header class="wc-backbone-modal-header">
					<h1><?php 
esc_html_e('Add products', 'woocommerce');
?></h1>
					<button class="modal-close modal-close-link dashicons dashicons-no-alt">
						<span class="screen-reader-text">Close modal panel</span>
					</button>
				</header>
				<article>
					<form action="" method="post">
						<table class="widefat">
							<thead>
								<tr>
									<th><?php 
esc_html_e('Product', 'woocommerce');
?></th>
									<th><?php 
esc_html_e('Quantity', 'woocommerce');
?></th>
								</tr>
							</thead>
							<?php 
$row = '
									<td><select class="wc-product-search" name="item_id" data-allow_clear="true" data-display_stock="true" data-exclude_type="variable" data-placeholder="' . esc_attr__('Search for a product&hellip;', 'woocommerce') . '"></select></td>
									<td><input type="number" step="1" min="0" max="9999" autocomplete="off" name="item_qty" placeholder="1" size="4" class="quantity" /></td>';
?>
							<tbody data-row="<?php 
echo esc_attr($row);
?>">
								<tr>
									<?php 
echo $row;
?>
								</tr>
							</tbody>
						</table>
					</form>
				</article>
				<footer>
					<div class="inner">
						<button id="btn-ok" class="button button-primary button-large"><?php 
esc_html_e('Add', 'woocommerce');
?></button>
					</div>
				</footer>
			</section>
		</div>
	</div>
	<div class="wc-backbone-modal-backdrop modal-close"></div>
</script>

<script type="text/template" id="tmpl-wc-modal-add-tax">
	<div class="wc-backbone-modal">
		<div class="wc-backbone-modal-content">
			<section class="wc-backbone-modal-main" role="main">
				<header class="wc-backbone-modal-header">
					<h1><?php 
esc_html_e('Add tax', 'woocommerce');
?></h1>
					<button class="modal-close modal-close-link dashicons dashicons-no-alt">
						<span class="screen-reader-text">Close modal panel</span>
					</button>
				</header>
				<article>
					<form action="" method="post">
						<table class="widefat">
							<thead>
								<tr>
									<th>&nbsp;</th>
									<th><?php 
esc_html_e('Rate name', 'woocommerce');
?></th>
									<th><?php 
esc_html_e('Tax class', 'woocommerce');
?></th>
									<th><?php 
esc_html_e('Rate code', 'woocommerce');
?></th>
									<th><?php 
esc_html_e('Rate %', 'woocommerce');
?></th>
								</tr>
							</thead>
						<?php 
$rates = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}woocommerce_tax_rates ORDER BY tax_rate_name LIMIT 100");
foreach ($rates as $rate) {
    echo '
									<tr>
										<td><input type="radio" id="add_order_tax_' . absint($rate->tax_rate_id) . '" name="add_order_tax" value="' . absint($rate->tax_rate_id) . '" /></td>
										<td><label for="add_order_tax_' . absint($rate->tax_rate_id) . '">' . esc_html(WC_Tax::get_rate_label($rate)) . '</label></td>
										<td>' . (isset($classes_options[$rate->tax_rate_class]) ? esc_html($classes_options[$rate->tax_rate_class]) : '-') . '</td>
										<td>' . esc_html(WC_Tax::get_rate_code($rate)) . '</td>
										<td>' . esc_html(WC_Tax::get_rate_percent($rate)) . '</td>
									</tr>
								';
}
?>
						</table>
						<?php 
if (absint($wpdb->get_var("SELECT COUNT(tax_rate_id) FROM {$wpdb->prefix}woocommerce_tax_rates;")) > 100) {
    ?>
							<p>
								<label for="manual_tax_rate_id"><?php 
    esc_html_e('Or, enter tax rate ID:', 'woocommerce');
    ?></label><br/>
								<input type="number" name="manual_tax_rate_id" id="manual_tax_rate_id" step="1" placeholder="<?php 
    esc_attr_e('Optional', 'woocommerce');
    ?>" />
							</p>
						<?php 
}
?>
					</form>
				</article>
				<footer>
					<div class="inner">
						<button id="btn-ok" class="button button-primary button-large"><?php 
esc_html_e('Add', 'woocommerce');
?></button>
					</div>
				</footer>
			</section>
		</div>
	</div>
	<div class="wc-backbone-modal-backdrop modal-close"></div>
</script>