Вот рабочий пример.
functions.php :
/**
* Cart Fragments.
*
* Ensure cart contents update when products are added to the cart via AJAX.
*
* @param array $fragments Fragments to refresh via AJAX.
* @return array Fragments to refresh via AJAX.
*/
function my_woocommerce_cart_link_fragment( $fragments ) {
ob_start();
my_woocommerce_cart_link();
$fragments['#header-cart-contents'] = ob_get_clean();
return $fragments;
}
}
add_filter( 'woocommerce_add_to_cart_fragments', 'my_woocommerce_cart_link_fragment' );
/**
* Cart Link.
*
* Displayed a link to the cart including the number of items present and the cart total.
*
* @return void
*/
function my_woocommerce_cart_link() {
?>
<div id="header-cart-contents" class="header-cart">
<span><?= wp_kses_data( WC()->cart->get_cart_contents_count());?></span>
<a href="<?php echo esc_url( wc_get_cart_url() ); ?>"><img src="<?= get_template_directory_uri();?>/img/header-cart.png" alt="shop-cart"></a>
</div>
<?php
}
}
В шаблоне, в нужном месте вызываете
my_woocommerce_cart_link();
Разметку меняйте под себя. Главное, что бы в
$fragments['#header-cart-contents'] = ob_get_clean();
Обязательно был верный селектор вашего блока с корзиной
Полный список методов класса WC_Cart
https://docs.woocommerce.com/wc-apidocs/class-WC_C...
Обращаться к нему нужно через WC()->cart, как в примере