Привет всем, использую функцию woocommerce_mini_cart() в модальки что бы ее выводить, но проблема в том что после добавлние в корзину данные не обновляються AJAX да и удаление происходит только после перегрузки странице, вот моя разметка
Я оставлял родой код файла mini-cart.php тоже самое,
счетчик для корзины я так обновляю
Тут все нормально но содержимое корзины не обновляться по Ajax подскажите что может быть не так
PHP:
<?php
defined( 'ABSPATH' ) || exit;
do_action( 'woocommerce_before_mini_cart' ); ?>
<?php if ( ! WC()->cart->is_empty() ) : ?>
<div class="cart-header__body woocommerce-mini-cart cart_list product_list_widget <?php echo esc_attr( $args['list_class'] ); ?>">
<?php
do_action( 'woocommerce_before_mini_cart_contents' );
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
$product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_widget_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
$product_name = apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key );
$thumbnail = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key );
$product_price = apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key );
$product_permalink = apply_filters( 'woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink( $cart_item ) : '', $cart_item, $cart_item_key );
?>
<?php
$iconRemove = '<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M10.625 1.25C5.4475 1.25 1.25 5.4475 1.25 10.625C1.25 15.8025 5.4475 20 10.625 20C15.8025 20 20 15.8025 20 10.625C20 5.4475 15.8025 1.25 10.625 1.25ZM14.9688 7.165L11.485 10.6488L14.5675 14.085C14.6813 14.2029 14.7443 14.3608 14.7429 14.5246C14.7415 14.6885 14.6758 14.8453 14.5599 14.9611C14.444 15.077 14.2872 15.1427 14.1234 15.1442C13.9595 15.1456 13.8016 15.0826 13.6837 14.9688L10.6012 11.5325L7.165 14.9688C7.04712 15.0826 6.88925 15.1456 6.72537 15.1442C6.5615 15.1427 6.40474 15.077 6.28886 14.9611C6.17298 14.8453 6.10725 14.6885 6.10583 14.5246C6.1044 14.3608 6.1674 14.2029 6.28125 14.085L9.765 10.6012L6.6825 7.165C6.56865 7.04712 6.50565 6.88925 6.50708 6.72537C6.5085 6.5615 6.57423 6.40474 6.69011 6.28886C6.80599 6.17298 6.96275 6.10725 7.12662 6.10583C7.2905 6.1044 7.44837 6.1674 7.56625 6.28125L10.6488 9.7175L14.085 6.28125C14.2029 6.1674 14.3608 6.1044 14.5246 6.10583C14.6885 6.10725 14.8453 6.17298 14.9611 6.28886C15.077 6.40474 15.1427 6.5615 15.1442 6.72537C15.1456 6.88925 15.0826 7.04712 14.9688 7.165Z"
fill="#9B9B9B" />
</svg>';
?>
<div class="cart-header__item woocommerce-mini-cart-item <?php echo esc_attr( apply_filters( 'woocommerce_mini_cart_item_class', 'mini_cart_item', $cart_item, $cart_item_key ) ); ?>">
<div class="cart-header__item-img">
<?php echo kama_thumb_img('w=103 &h=102 &crop=false &post_id='.$product_id.' &alt='.get_the_title( ).''); ?>
</div>
<div class="cart-header__item-desc">
<div class="cart-header__item-title">
<?php echo $product_name; ?>
</div>
<div class="cart-header__item-code">
Код: <?php echo $_product->get_sku(); ?>
</div>
</div>
<div class="cart-header__item-prise">
<?php echo $product_price; ?>
</div>
<div class="cart-header__item-delete">
<?php
echo apply_filters( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
'woocommerce_cart_item_remove_link',
sprintf(
'<a href="%s" class="cart-header__item-delete remove remove_from_cart_button" aria-label="%s" data-product_id="%s" data-cart_item_key="%s" data-product_sku="%s">'.$iconRemove.'</a>',
esc_url( wc_get_cart_remove_url( $cart_item_key ) ),
esc_attr__( 'Remove this item', 'woocommerce' ),
esc_attr( $product_id ),
esc_attr( $cart_item_key ),
esc_attr( $_product->get_sku() )
),
$cart_item_key
);
?>
</div>
</div>
<?php
}
}
do_action( 'woocommerce_mini_cart_contents' );
?>
</div>
<p class="woocommerce-mini-cart__total total">
<?php
/**
* Hook: woocommerce_widget_shopping_cart_total.
*
* @hooked woocommerce_widget_shopping_cart_subtotal - 10
*/
do_action( 'woocommerce_widget_shopping_cart_total' );
?>
</p>
<?php do_action( 'woocommerce_widget_shopping_cart_before_buttons' ); ?>
<p class="woocommerce-mini-cart__buttons buttons"><?php do_action( 'woocommerce_widget_shopping_cart_buttons' ); ?></p>
<?php do_action( 'woocommerce_widget_shopping_cart_after_buttons' ); ?>
<?php else : ?>
<p class="woocommerce-mini-cart__empty-message"><?php esc_html_e( 'No products in the cart.', 'woocommerce' ); ?></p>
<?php endif; ?>
<?php do_action( 'woocommerce_after_mini_cart' ); ?>
счетчик для корзины я так обновляю
PHP:
// Обновление мини-корзины
add_filter( 'woocommerce_add_to_cart_fragments', function ( $fragments ) {
$fragments['.mini-cart-cnt'] = '<span class="mini-cart-cnt">' . count( WC()->cart->get_cart() ) . '</span>';
return $fragments;
} );