<?php
/**
 * Customer withdrawal items
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/emails/email-withdrawal-items.php.
 *
 * HOWEVER, on occasion EU OWB will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @package Vendidero/OrderWithdrawalButton/Templates
 * @version 2.1.0
 */
defined( 'ABSPATH' ) || exit;

$margin_side = is_rtl() ? 'left' : 'right';

$email_improvements_enabled = \Vendidero\OrderWithdrawalButton\Package::has_email_improvements_enabled();
$price_text_align           = $email_improvements_enabled ? 'right' : 'left';

foreach ( $items as $item_id => $item_data ) :
	$item        = $item_data['item'];
	$quantity    = $item_data['quantity'];
	$product     = $item->get_product();
	$org_item    = $item->get_parent() ? $item->get_parent() : $item;
	$org_item_id = $item->get_parent_id() > 0 ? $item->get_parent_id() : $item_id;
	$sku         = '';
	$image       = '';

	if ( is_object( $product ) ) {
		$sku   = $product->get_sku();
		$image = $product->get_image( $image_size );
	}
	?>
	<tr class="order_item withdrawal_item">
		<td class="td font-family text-align-left" style="vertical-align: middle; word-wrap:break-word;">
			<?php if ( $email_improvements_enabled ) { ?>
				<table class="order-item-data" role="presentation">
					<tr>
						<?php
						// Show title/image etc.
						if ( $show_image && $image ) {
							/**
							 * Email Order Item Thumbnail hook.
							 *
							 * @param string                $image The image HTML.
							 * @param WC_Order_Item_Product $item  The item being displayed.
							 * @since 2.1.0
							 */
							echo '<td>' . wp_kses_post( apply_filters( 'woocommerce_order_item_thumbnail', $image, $org_item ) ) . '</td>';
						}
						?>
						<td>
							<?php
							/**
							 * Order Item Name hook.
							 *
							 * @param string                $item_name The item name HTML.
							 * @param WC_Order_Item_Product $item      The item being displayed.
							 * @since 2.1.0
							 */
							$order_item_name = $withdrawal->has_parent() ? apply_filters( 'woocommerce_order_item_name', $item->get_name(), $org_item, false ) : $item->get_name();
							echo wp_kses_post( "<h3 style='font-size: inherit;font-weight: inherit;'>{$order_item_name}</h3>" );

							// SKU.
							if ( $show_sku && $sku ) {
								echo wp_kses_post( ' (#' . $sku . ')' );
							}

							if ( $withdrawal->has_parent() ) {
								/**
								 * Allow other plugins to add additional product information.
								 *
								 * @param int                   $item_id    The item ID.
								 * @param WC_Order_Item_Product $item       The item object.
								 * @param WC_Order              $order      The order object.
								 * @param bool                  $plain_text Whether the email is plain text or not.
								 * @since 2.3.0
								 */
								do_action( 'woocommerce_order_item_meta_start', $org_item_id, $org_item, $order, $plain_text );

								$item_meta = wc_display_item_meta(
									$item,
									array(
										'before'       => '',
										'after'        => '',
										'separator'    => '<br>',
										'echo'         => false,
										'label_before' => '<span>',
										'label_after'  => ':</span> ',
									)
								);
								echo '<div class="email-order-item-meta">';
								// Using wp_kses instead of wp_kses_post to remove all block elements.
								echo wp_kses(
									$item_meta,
									array(
										'br'   => array(),
										'span' => array(),
										'a'    => array(
											'href'   => true,
											'target' => true,
											'rel'    => true,
											'title'  => true,
										),
									)
								);
								echo '</div>';

								/**
								 * Allow other plugins to add additional product information.
								 *
								 * @param int                   $item_id    The item ID.
								 * @param WC_Order_Item_Product $item       The item object.
								 * @param WC_Order              $order      The order object.
								 * @param bool                  $plain_text Whether the email is plain text or not.
								 * @since 2.3.0
								 */
								do_action( 'woocommerce_order_item_meta_end', $item_id, $item, $order, $plain_text );
							}
							?>
						</td>
					</tr>
				</table>
				<?php
			} else {

				// Show title/image etc.
				if ( $show_imag && $image ) {
					/**
					 * Email Order Item Thumbnail hook.
					 *
					 * @param string                $image The image HTML.
					 * @param WC_Order_Item_Product $item  The item being displayed.
					 * @since 2.1.0
					 */
					echo wp_kses_post( apply_filters( 'woocommerce_order_item_thumbnail', $image, $org_item ) ) . '</td>';
				}

				/**
				 * Order Item Name hook.
				 *
				 * @param string                $item_name The item name HTML.
				 * @param WC_Order_Item_Product $item      The item being displayed.
				 * @since 2.1.0
				 */
				echo wp_kses_post( $withdrawal->has_parent() ? apply_filters( 'woocommerce_order_item_name', $item->get_name(), $org_item, false ) : $item->get_name() );

				// SKU.
				if ( $show_sku && $sku ) {
					echo wp_kses_post( ' (#' . $sku . ')' );
				}

				if ( $withdrawal->has_parent() ) {
					/**
					 * Allow other plugins to add additional product information.
					 *
					 * @param int $item_id The item ID.
					 * @param WC_Order_Item_Product $item The item object.
					 * @param WC_Order $order The order object.
					 * @param bool $plain_text Whether the email is plain text or not.
					 *
					 * @since 2.3.0
					 */
					do_action( 'woocommerce_order_item_meta_start', $item_id, $item, $order, $plain_text );

					wc_display_item_meta(
						$item,
						array(
							'label_before' => '<strong class="wc-item-meta-label" style="float: ' . ( is_rtl() ? 'right' : 'left' ) . '; margin-' . esc_attr( $margin_side ) . ': .25em; clear: both">',
						)
					);

					/**
					 * Allow other plugins to add additional product information.
					 *
					 * @param int $item_id The item ID.
					 * @param WC_Order_Item_Product $item The item object.
					 * @param WC_Order $order The order object.
					 * @param bool $plain_text Whether the email is plain text or not.
					 *
					 * @since 2.3.0
					 */
					do_action( 'woocommerce_order_item_meta_end', $item_id, $item, $order, $plain_text );
				}
			}
			?>
		</td>
		<td class="td font-family text-align-<?php echo esc_attr( $price_text_align ); ?>" style="vertical-align:middle;">
			<?php
			echo $email_improvements_enabled ? '&times;' : '';
			echo wp_kses_post( apply_filters( 'eu_owb_woocommerce_withdrawal_item_quantity', esc_html( $quantity ), $item ) );
			?>
		</td>
	</tr>
<?php endforeach; ?>
