У меня есть пункт меню, указывающий на корзину и считывающий количество продуктов, находящихся в настоящее время в корзине.
CART (3)
Когда на странице корзины я изменяю количество продуктов и нажимаю"Update cart"
или удалите элемент, номер не обновляется.Любая идея, почему?
/*CHANGE CART MENU TITLE IN MENU*/
add_filter( 'wp_setup_nav_menu_item','my_item_setup' );
function my_item_setup($item) {
if ( ! is_admin() ) {
if ( class_exists( 'woocommerce' ) ) {
global $woocommerce;
if ( $item->url == esc_url( wc_get_cart_url() ) ) {
if (is_null($woocommerce->cart)){
} else {
if( get_locale() == 'fr_FR' ) {
$item->title = 'PANIER ('. '<span class="count-cart">' . $woocommerce->cart->get_cart_contents_count() . '</span>)';
} else {
$item->title = 'MY CART ('. '<span class="count-cart">' . $woocommerce->cart->get_cart_contents_count() . '</span>)';
}
}
}
}
}
return $item;
}
И
add_filter( 'woocommerce_add_to_cart_fragments', 'my_woocommerce_add_to_cart_fragments' );
function my_woocommerce_add_to_cart_fragments( $fragments ) {
// Add our fragment
$fragments['li.menu-item-type-woocommerce-cart'] = my_item_setup( '');
return $fragments;
}
РЕДАКТИРОВАТЬ:
Использование Ajaxify количество элементов корзины в Woocommerce код ответа, кажется, работает немного лучше.Номер продукта обновляется, когда я удаляю товар со страницы корзины или меняю количество товаров, но не обновляется, когда я очищаю корзину.Кроме того, есть пробел до и после номера продукта (см. Рисунок с пустой корзиной и "CART ( 1 )"
.
add_filter( 'woocommerce_add_to_cart_fragments', 'wc_refresh_cart_fragments');
function wc_refresh_cart_fragments($fragments){
ob_start();
?>
<span class="count-cart"><?php echo WC()->cart->get_cart_contents_count(); ?></span>
<?php
$fragments['li a span.count-cart'] = ob_get_clean();
return $fragments;
}