WooCommerce добавить в корзину ajax load
Я создал пакет продуктов на своем веб-сайте. Поэтому, когда кто-то его купит, он увидит в корзине всего продуктов 4.Кроме того, я показываю общий продукт на верхней мини-тележке. Теперь я хочу обновить это топовое количество мини-корзины с помощью ajax, когда кто-то нажимает на кнопку Добавить в корзину.
Вот мой код ниже:
$total_products=0;
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$total_products=$total_products+$cart_item['quantity'];
}
?>
<div class="shopping-cart-header <?php echo $height; ?>">
<a class="mk-shoping-cart-link-2" href="<?php echo WC()->cart->get_cart_url();?>">
<?php Mk_SVG_Icons::get_svg_icon_by_class_name(true, 'mk-moon-cart-2'); ?>
<span class="mk-header-cart-count"><?php echo $total_products;?></span>
</a>
<div class="mk-shopping-cart-box">
<?php the_widget('WC_Widget_Cart');?>
<div class="clearboth"></div>
</div>
</div>
1 ответ:
Woocommerce имеет свои собственные события ajax, которые вы можете найти в wp-content / plugins/woocommerce/assets/js/frontend / add-to-cart.файл js. Внутри него вы можете найти такой триггер
// Trigger event so themes can refresh other areas. $( document.body ).trigger( 'added_to_cart', [ response.fragments, response.cart_hash, $thisbutton ] );Вам нужно переопределить эти события в файле JS вашей темы.
(function( $, document, window ) { // Add to cart event // NOTE: called on document ready event $( function() { $( document ).off( 'added_to_cart' ).on( 'added_to_cart', function( event, fragments, cart_hash, $button ) { $button = typeof $button === 'undefined' ? false : $button; // update counter var $counter = $( '.mk-header-cart-count' ); var currentQuantity = parseInt( $counter.data( 'eg-product-count' ), 10 ); var addedQuantity = parseInt( $button.data( 'quantity' ), 10 ); var newQuantity = currentQuantity + addedQuantity; $counter.text( newQuantity ); // Replace fragments. if ( fragments ) { $.each( fragments, function( key, value ) { $( key ).replaceWith( value ); }); $( document.body ).trigger( 'wc_fragments_loaded' ); } $( document.body ).trigger( 'cart_page_refreshed' ); } ); } ); })(jQuery, document, window);Я не знаю, как вы интегрируете реализацию bundle, поэтому, возможно, вам нужно реализовать ее в переменной addedQuantity.
Comments