Ваш код действительно устарел с ошибками и ошибками.Кроме того, Woocommerce уже включает в себя мини-корзину (с редактируемым шаблоном), которую можно использовать * .
1) HTML / PHP-код, который заменит ваш (в вашем файле тематуры hearder.phpЯ полагаю) :
// echo '<ul>'; // (Used for testing)
echo '<li><a class="parents mini-cart-count" href="'.wc_get_cart_url().'"><i class="fa fa-shopping-cart"></i> Cart - ';
## Ajax refresh: Cart subtotal near the cart icon
echo '<span id="mcart-stotal">'.WC()->cart->get_cart_subtotal().'</span>';
echo '</a>';
echo '<ul class="mega_menu cart">';
echo '<li class="mega_sub">';
echo '<span id="mcart-widget">';
## Ajax refresh: Mini cart widget
woocommerce_mini_cart();
echo '</span>';
echo '</li></ul>';
// echo '</li></ul>'; // (Used for testing)
2) Код, который Ajax обновит промежуточный итог вашей мини-корзины и виджет:
add_filter( 'woocommerce_add_to_cart_fragments', 'wc_mini_cart_ajax_refresh' );
function wc_mini_cart_ajax_refresh( $fragments ){
## 1. Refreshing mini cart subtotal amount
$fragments['#mcart-stotal'] = '<span id="mcart-stotal">'.WC()->cart->get_cart_subtotal().'</span>';
## 2. Refreshing cart subtotal
ob_start();
echo '<span id="mcart-widget">';
woocommerce_mini_cart();
echo '</span>';
$fragments['#mcart-widget'] = ob_get_clean();
return $fragments;
}
Код входит в файл function.phpвашей активной детской темы (или активной темы).Протестировано и работает.
Связано: Отображение количества элементов корзины в виджете корзины Woocommerce