<?php

/**
 * Cart Page
 *
 * Added block columns
 * Merge thumbnail, name, attribute, price dst to column product-name
 * Added product class to cart item
 *
 * @see     https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/templates/cart/cart.php
 * @package WooCommerce\Templates
 * @version 11.0.0
 */

defined('ABSPATH') || exit;

do_action('woocommerce_before_cart'); ?>

<div class="wp-block-columns rt-cart-form is-layout-flex is-stacked-on-tablet md:gap-60">
	<div class="wp-block-column">
		<form class="woocommerce-cart-form" action="<?php echo esc_url(wc_get_cart_url()); ?>" method="post">
			<?php do_action('woocommerce_before_cart_table'); ?>

			<table class="shop_table cart woocommerce-cart-form__contents" cellspacing="0">
				<thead>
					<tr>
						<th scope="col" class="product-name"><?php esc_html_e('Product', 'kubelio'); ?></th>
						<th scope="col" class="product-subtotal"><?php esc_html_e('Subtotal', 'kubelio'); ?></th>
					</tr>
				</thead>
				<tbody>
					<?php do_action('woocommerce_before_cart_contents'); ?>

					<?php
					foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
						$_product   = apply_filters('woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key);
						$product_id = apply_filters('woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key);

						/**
						 * Filter whether this cart item is visible in the cart.
						 *
						 * @since 2.1.0
						 * @param bool   $visible       Whether the cart item is visible. Default true.
						 * @param array  $cart_item     The cart item data.
						 * @param string $cart_item_key The cart item key.
						 */
						$visible = apply_filters('woocommerce_cart_item_visible', true, $cart_item, $cart_item_key);

						if ($_product instanceof WC_Product && $_product->exists() && $cart_item['quantity'] > 0 && $visible) {
							/**
							 * Filter the product name.
							 *
							 * @since 2.1.0
							 * @param string $product_name Name of the product in the cart.
							 * @param array $cart_item The product in the cart.
							 * @param string $cart_item_key Key for the product in the cart.
							 */
							$product_name      = apply_filters('woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key);
							$product_permalink = apply_filters('woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink($cart_item) : '', $cart_item, $cart_item_key);
					?>
							<tr
								class="woocommerce-cart-form__cart-item <?php echo esc_attr(apply_filters('woocommerce_cart_item_class', 'cart_item', $cart_item, $cart_item_key)); ?>">

								<td class="product-item" colspan="2">
									<div class="rt-product-items flex gap-30">

										<div class="rt-product-item flex flex-1 nowrap gap-30">
											<div class="rt-product-item__thumbnail rt-img has-aspect-ratio is-fixed-width rounded-md" style="flex-basis:70px; aspect-ratio: 1/1;">

												<?php
												/**
												 * Filter the product thumbnail displayed in the WooCommerce cart.
												 *
												 * This filter allows developers to customize the HTML output of the product
												 * thumbnail. It passes the product image along with cart item data
												 * for potential modifications before being displayed in the cart.
												 *
												 * @param string $thumbnail     The HTML for the product image.
												 * @param array  $cart_item     The cart item data.
												 * @param string $cart_item_key Unique key for the cart item.
												 *
												 * @since 2.1.0
												 */
												$thumbnail = apply_filters('woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key);

												if (! $product_permalink) {
													echo $thumbnail; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
												} else {
													printf('<a href="%s">%s</a>', esc_url($product_permalink), $thumbnail); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
												}
												?>

											</div>

											<div class="rt-product-item__body">
												<div
													class="rt-product-item__name has-heading-color has-link-current-color has-x-small-font-size leading-lg">
													<?php
													if (! $product_permalink) {
														echo wp_kses_post($product_name . '&nbsp;');
													} else {
														/**
														 * This filter is documented above.
														 *
														 * @since 2.1.0
														 */
														echo wp_kses_post(apply_filters('woocommerce_cart_item_name', sprintf('<a href="%s">%s</a>', esc_url($product_permalink), $_product->get_name()), $cart_item, $cart_item_key));
													}

													do_action('woocommerce_after_cart_item_name', $cart_item, $cart_item_key);

													// Meta data.
													echo wc_get_formatted_cart_item_data($cart_item); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped

													// Backorder notification.
													if ($_product->backorders_require_notification() && $_product->is_on_backorder($cart_item['quantity'])) {
														echo wp_kses_post(apply_filters('woocommerce_cart_item_backorder_notification', '<p class="backorder_notification">' . esc_html__('Available on backorder', 'kubelio') . '</p>', $product_id));
													}
													?>
												</div>

												<div class="rt-product-item__price has-xx-small-font-size leading-lg mt-20">
													<?php
													echo apply_filters('woocommerce_cart_item_price', WC()->cart->get_product_price($_product), $cart_item, $cart_item_key); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
													?>
												</div>

												<div class="rt-product-item__quantity my-20 flex items-center gap-30">
													<?php
													if ($_product->is_sold_individually()) {
														$min_quantity = 1;
														$max_quantity = 1;
													} else {
														$min_quantity = 0;
														$max_quantity = $_product->get_max_purchase_quantity();
													}

													$product_quantity = woocommerce_quantity_input(
														array(
															'input_name' => "cart[{$cart_item_key}][qty]",
															'input_value' => $cart_item['quantity'],
															'max_value' => $max_quantity,
															'min_value' => $min_quantity,
															'product_name' => $product_name,
														),
														$_product,
														false
													);

													echo apply_filters('woocommerce_cart_item_quantity', $product_quantity, $cart_item_key, $cart_item); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
													?>
													<?php
													$remove_link_icon = '<i class="rt-icon has-interaction"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-trash3" viewBox="0 0 16 16"><path d="M6.5 1h3a.5.5 0 0 1 .5.5v1H6v-1a.5.5 0 0 1 .5-.5M11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3A1.5 1.5 0 0 0 5 1.5v1H1.5a.5.5 0 0 0 0 1h.538l.853 10.66A2 2 0 0 0 4.885 16h6.23a2 2 0 0 0 1.994-1.84l.853-10.66h.538a.5.5 0 0 0 0-1zm1.958 1-.846 10.58a1 1 0 0 1-.997.92h-6.23a1 1 0 0 1-.997-.92L3.042 3.5zm-7.487 1a.5.5 0 0 1 .528.47l.5 8.5a.5.5 0 0 1-.998.06L5 5.03a.5.5 0 0 1 .47-.53Zm5.058 0a.5.5 0 0 1 .47.53l-.5 8.5a.5.5 0 1 1-.998-.06l.5-8.5a.5.5 0 0 1 .528-.47M8 4.5a.5.5 0 0 1 .5.5v8.5a.5.5 0 0 1-1 0V5a.5.5 0 0 1 .5-.5" /></svg></i>';

													echo apply_filters( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
														'woocommerce_cart_item_remove_link',
														sprintf(
															'<span class="product-remove has-meta-color has-link-current-color"><a role="button" href="%s" class="delete" aria-label="%s" data-product_id="%s" data-product_sku="%s">%s</a></span>',
															esc_url(wc_get_cart_remove_url($cart_item_key)),
															esc_attr(sprintf(/* translators: %s: product name. */ __('Remove %s from cart', 'kubelio'), wp_strip_all_tags($product_name))),
															esc_attr($product_id),
															esc_attr($_product->get_sku()),
															$remove_link_icon
														),
														$cart_item_key
													);
													?>
												</div>

											</div>
										</div>

										<div class="product-subtotal has-x-small-font-size text-right">
											<?php
											echo apply_filters('woocommerce_cart_item_subtotal', WC()->cart->get_product_subtotal($_product, $cart_item['quantity']), $cart_item, $cart_item_key); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
											?>
										</div>

									</div>
								</td>
							</tr>
					<?php
						}
					}
					?>

					<?php do_action('woocommerce_cart_contents'); ?>

					<tr>
						<td colspan="2" class="actions">

							<div class="is-layout-flex justify-between gap-20 items-start">

								<?php if (wc_coupons_enabled()) { ?>
									<div class="coupon">
										<label for="coupon_code"
											class="screen-reader-text"><?php esc_html_e('Coupon:', 'kubelio'); ?></label>
										<input type="text" name="coupon_code" class="input-text" id="coupon_code" value=""
											placeholder="<?php esc_attr_e('Coupon code', 'kubelio'); ?>" />
										<button type="submit"
											class="button<?php echo esc_attr(wc_wp_theme_get_element_class_name('button') ? ' ' . wc_wp_theme_get_element_class_name('button') : ''); ?>"
											name="apply_coupon"
											value="<?php esc_attr_e('Apply coupon', 'kubelio'); ?>"><?php esc_html_e('Apply coupon', 'kubelio'); ?></button>
										<?php do_action('woocommerce_cart_coupon'); ?>
									</div>
								<?php } ?>

								<button type="submit"
									class="button<?php echo esc_attr(wc_wp_theme_get_element_class_name('button') ? ' ' . wc_wp_theme_get_element_class_name('button') : ''); ?>"
									name="update_cart"
									value="<?php esc_attr_e('Update cart', 'kubelio'); ?>"><?php esc_html_e('Update cart', 'kubelio'); ?></button>

								<?php do_action('woocommerce_cart_actions'); ?>

								<?php wp_nonce_field('woocommerce-cart', 'woocommerce-cart-nonce'); ?>
							</div>

						</td>
					</tr>

					<?php do_action('woocommerce_after_cart_contents'); ?>
				</tbody>
			</table>

			<?php do_action('woocommerce_after_cart_table'); ?>
		</form>
	</div>
	<div class="wp-block-column rt-cart-collaterals">
		<div class="wp-block-group has-surface-background-color py-30 px-30 border rounded-lg">
			<?php do_action('woocommerce_before_cart_collaterals'); ?>

			<div class="cart-collaterals">
				<?php
				/**
				 * Cart collaterals hook.
				 *
				 * @hooked woocommerce_cross_sell_display
				 * @hooked woocommerce_cart_totals - 10
				 */
				do_action('woocommerce_cart_collaterals');
				?>
			</div>

			<?php do_action('woocommerce_after_cart'); ?>
		</div>
	</div>
</div>