При проектировании интернет-магазинов на WooCommerce часто возникает необходимость с помощью ajax обновлять количество товаров в корзине, а также их сумму. Решается задача довольно просто. Вам необходимо в function.php добавить следующий код:
add_filter( 'woocommerce_add_to_cart_fragments', 'woocommerce_header_add_to_cart_fragment' );
function woocommerce_header_add_to_cart_fragment( $fragments ) {
ob_start(); ?>
<div class="cart-price"><p><span class="first-name">Товаров:</span> <span id="cart_total_amount"><?php echo sprintf (_n( '%d', '%d', WC()->cart->cart_contents_count ), WC()->cart->cart_contents_count ); ?></span></p><p><span class="first-name">На сумму:</span> <span id="cart_total" class="pink-price"><?php echo WC()->cart->get_cart_total(); ?></span></p></div>
<?php $fragments['div.cart-price'] = ob_get_clean(); // селектор блока обертки
return $fragments;
}
Далее, для успешной работы фильтра, необходимо в том месте, где хотите выводить информацию (например, в файле header.php) нужно добавить такой код:
<div class="cart-price"><p><span class="first-name">Товаров:</span> <span id="cart_total_amount"><?php echo sprintf (_n( '%d', '%d', WC()->cart->cart_contents_count ), WC()->cart->cart_contents_count ); ?></span></p><p><span class="first-name">На сумму:</span> <span id="cart_total" class="pink-price"><?php echo WC()->cart->get_cart_total(); ?></span></p></div>
Особых, пояснений, полагаю, не требуется. Если возникнут вопросы - задавайте их в комментариях.
Олег - 02:58
Огромное спасибо!