• Resolved smallbizgeek

    (@smallbizgeek)


    Hi there,

    I’m looking to edit mini-cart.php in order to produce the results shown in the following link, which contains two images:

    View post on imgur.com

    ? Note that the first image shows an item in the cart with a total and sub total.

    ? The second image shows the desirable result, but is using display:none CSS, which while is okay, means HTML is still being printed and only hidden.

    I’ve copied the mini-cart.php file to the following path on my localhost:

    C:\wamp64-3.2.0\www\site-name\wp-content\themes\theme-name\woocommerce\cart\mini-cart.php

    I’m unsure what needs to be changed.

    The answer may not be straightforward or indeed possible, as this request most likely falls outside the remit of WooCommerce support, as it involves custom code.

    Here’s the code from the mini cart file.

    Thanks for reading, and I hope there’s a simple way. If not, I’m stuck with the CSS method.

    <?php
    /**
     * Mini-cart
     *
     * Contains the markup for the mini-cart, used by the cart widget.
     *
     * This template can be overridden by copying it to yourtheme/woocommerce/cart/mini-cart.php.
     *
     * HOWEVER, on occasion WooCommerce 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.
     *
     * @see     https://docs.woocommerce.com/document/template-structure/
     * @package WooCommerce/Templates
     * @version 3.7.0
     */
    
    defined( 'ABSPATH' ) || exit;
    
    do_action( 'woocommerce_before_mini_cart' ); ?>
    
    <?php if ( ! WC()->cart->is_empty() ) : ?>
    
    	<ul class="woocommerce-mini-cart cart_list product_list_widget <?php echo esc_attr( $args['list_class'] ); ?>">
    		<?php
    		do_action( 'woocommerce_before_mini_cart_contents' );
    
    		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 );
    
    			if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_widget_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
    				$product_name      = apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key );
    				$thumbnail         = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key );
    				$product_price     = apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $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 );
    				?>
    				<li class="woocommerce-mini-cart-item <?php echo esc_attr( apply_filters( 'woocommerce_mini_cart_item_class', 'mini_cart_item', $cart_item, $cart_item_key ) ); ?>">
    					<?php
    					echo apply_filters( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
    						'woocommerce_cart_item_remove_link',
    						sprintf(
    							'<a href="%s" class="remove remove_from_cart_button" aria-label="%s" data-product_id="%s" data-cart_item_key="%s" data-product_sku="%s">&times;</a>',
    							esc_url( wc_get_cart_remove_url( $cart_item_key ) ),
    							esc_attr__( 'Remove this item', 'woocommerce' ),
    							esc_attr( $product_id ),
    							esc_attr( $cart_item_key ),
    							esc_attr( $_product->get_sku() )
    						),
    						$cart_item_key
    					);
    					?>
    					<?php if ( empty( $product_permalink ) ) : ?>
    						<?php echo $thumbnail . $product_name; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
    					<?php else : ?>
    						<a href="<?php echo esc_url( $product_permalink ); ?>">
    							<?php echo $thumbnail . $product_name; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
    						</a>
    					<?php endif; ?>
    					<?php echo wc_get_formatted_cart_item_data( $cart_item ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
    					<?php echo apply_filters( 'woocommerce_widget_cart_item_quantity', '<span class="quantity">' . sprintf( '%s &times; %s', $cart_item['quantity'], $product_price ) . '</span>', $cart_item, $cart_item_key ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
    				</li>
    				<?php
    			}
    		}
    
    		do_action( 'woocommerce_mini_cart_contents' );
    		?>
    	</ul>
    
    	<p class="woocommerce-mini-cart__total total">
    		<?php
    		/**
    		 * Hook: woocommerce_widget_shopping_cart_total.
    		 *
    		 * @hooked woocommerce_widget_shopping_cart_subtotal - 10
    		 */
    		do_action( 'woocommerce_widget_shopping_cart_total' );
    		?>
    	</p>
    
    	<?php do_action( 'woocommerce_widget_shopping_cart_before_buttons' ); ?>
    
    	<p class="woocommerce-mini-cart__buttons buttons"><?php do_action( 'woocommerce_widget_shopping_cart_buttons' ); ?></p>
    
    	<?php do_action( 'woocommerce_widget_shopping_cart_after_buttons' ); ?>
    
    <?php else : ?>
    
    	<p class="woocommerce-mini-cart__empty-message"><?php esc_html_e( 'No products in the cart.', 'woocommerce' ); ?></p>
    
    <?php endif; ?>
    
    <?php do_action( 'woocommerce_after_mini_cart' ); ?>
    
Viewing 2 replies - 1 through 2 (of 2 total)
  • Plugin Support kellymetal a11n

    (@kellymetal)

    Hi there,

    To clarify, were you looking to have the Mini-cart display without any items in it (empty), even if there are actually items in the Cart? So, the actual Cart page displays as usual, but the mini-cart just doesn’t display anything even when items are added?

    How about when the Cart is actually empty, did you still want to display the default “No products in the cart.” text? Or still just not display anything?

    Would you prefer to just not have a mini-cart in the header at all?

    Please let me know about the above points, or if you have any questions! Thank you!

    Plugin Support Thu P. a11n

    (@thup90)

    Hi there,

    I hope you found the previous reply helpful. We haven’t heard back from you in a while, so I’m going to mark this as resolved – if you have any further questions, you can start a new thread.

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Remove HTML from the minicart when product is in cart’ is closed to new replies.