Обновление кол-ва и суммы товаров в корзине WooCommerce

При проектировании интернет-магазинов на 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>

Особых, пояснений, полагаю, не требуется. Если возникнут вопросы - задавайте их в комментариях.

Рейтинг: 4.25

2022-07-01 / / 1 Комментарий / Про кодинг и сервер / , , ,