OwlCyberSecurity - MANAGER
Edit File: MiniCartItemsBlock.php
<?php namespace Automattic\WooCommerce\Blocks\BlockTypes; use Automattic\WooCommerce\Admin\Features\Features; /** * MiniCartItemsBlock class. */ class MiniCartItemsBlock extends AbstractInnerBlock { /** * Block name. * * @var string */ protected $block_name = 'mini-cart-items-block'; /** * Render the markup for the Mini-Cart Contents block. * * @param array $attributes Block attributes. * @param string $content Block content. * @param WP_Block $block Block instance. * @return string Rendered block type output. */ protected function render( $attributes, $content, $block ) { if ( Features::is_enabled( 'experimental-iapi-mini-cart' ) ) { return $this->render_experimental_iapi_markup( $attributes, $content, $block ); } return $content; } /** * Render experimental iAPI block markup. * * @param array $attributes Block attributes. * @param string $content Block content. * @param WP_Block $block Block instance. * @return string Rendered block type output. */ protected function render_experimental_iapi_markup( $attributes, $content, $block ) { $screen_reader_text = __( 'Products in cart', 'woocommerce' ); $remove_item_label = __( 'Remove item', 'woocommerce' ); // translators: %s is the name of the product in cart. $reduce_quantity_label = __( 'Reduce quantity of %s', 'woocommerce' ); // translators: %s is the name of the product in cart. $increase_quantity_label = __( 'Increase quantity of %s', 'woocommerce' ); // translators: %s is the name of the product in cart. $quantity_description_label = __( 'Quantity of %s in your cart', 'woocommerce' ); // translators: %s is the name of the product in cart. $remove_from_cart_label = __( 'Remove %s from cart', 'woocommerce' ); wp_interactivity_config( $this->get_full_block_name(), array( 'reduceQuantityLabel' => $reduce_quantity_label, 'increaseQuantityLabel' => $increase_quantity_label, 'quantityDescriptionLabel' => $quantity_description_label, 'removeFromCartLabel' => $remove_from_cart_label, ) ); wp_interactivity_state( $this->get_full_block_name(), array( 'cartItems' => wp_interactivity_state( 'woocommerce' )['cart']['items'] ?? [], ) ); ob_start(); ?> <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> <div data-wp-interactive="<?php echo esc_attr( $this->get_full_block_name() ); ?>" class="wp-block-woocommerce-mini-cart-items-block wc-block-mini-cart__items" tabindex="-1"> <div class="wp-block-woocommerce-mini-cart-products-table-block wc-block-mini-cart__products-table"> <table class="wc-block-cart-items wc-block-mini-cart-items" tabindex="-1"> <caption class="screen-reader-text"> <h2> <?php echo esc_html( $screen_reader_text ); ?> </h2> </caption> <tbody> <template data-wp-each--cart-item="state.cartItems" data-wp-each-key="context.cartItem.id" > <tr class="wc-block-cart-items__row" tabindex="-1"> <td class="wc-block-cart-item__image" aria-hidden="true"> <a data-wp-bind--href="context.cartItem.permalink" tabindex="-1"> <img data-wp-bind--src="state.itemThumbnail" data-wp-bind--alt="state.cartItemName"> </a> </td> <td class="wc-block-cart-item__product"> <div class="wc-block-cart-item__wrap"> <a data-wp-text="context.cartItemName" data-wp-bind--href="context.cartItem.permalink" class="wc-block-components-product-name"></a> <div class="wc-block-cart-item__prices"> <span class="price wc-block-components-product-price"> <span data-wp-text="context.itemPrice" class="wc-block-formatted-money-amount wc-block-components-formatted-money-amount wc-block-components-product-price__value"> </span> </span> </div> <div class="wc-block-components-product-metadata"> <div data-wp-watch="state.itemShortDescription" > <div class="wc-block-components-product-metadata__description"></div> </div> </div> <div class="wc-block-cart-item__quantity"> <div class="wc-block-components-quantity-selector"> <input data-wp-bind--aria-label="state.quantityDescriptionLabel" data-wp-bind--value="context.cartItem.quantity" class="wc-block-components-quantity-selector__input" type="number" step="1" min="1" max="9999" > <button data-wp-on--click="actions.decrementQuantity" data-wp-bind--aria-label="state.reduceQuantityLabel" class="wc-block-components-quantity-selector__button wc-block-components-quantity-selector__button--minus">-</button> <button data-wp-on--click="actions.incrementQuantity" data-wp-bind--aria-label="state.increaseQuantityLabel" class="wc-block-components-quantity-selector__button wc-block-components-quantity-selector__button--plus">+</button> </div> <button data-wp-bind--aria-label="state.removeFromCartLabel" class="wc-block-cart-item__remove-link" > <?php echo esc_html( $remove_item_label ); ?> </button> </div> </div> </td> <td class="wc-block-cart-item__total"> <div class="wc-block-cart-item__total-price-and-sale-badge-wrapper"> <span class="price wc-block-components-product-price"> <span data-wp-text="state.lineItemTotal" class="wc-block-formatted-money-amount wc-block-components-formatted-money-amount wc-block-components-product-price__value"> </span> </span> </div> </td> </tr> </template> </tbody> </table> </div> </div> <?php return ob_get_clean(); } }