简体   繁体   English

woocommerce定制ajax顶级购物车

[英]woocommerce custom ajax top cart

HiI'm trying to get the top cart in woocommerce to update the quantity and price automatically. 我正试图在woocommerce中获得顶级购物车自动更新数量和价格。

I have got it to work to some extent by using this as a template: 通过使用它作为模板,我已经在某种程度上使用它:

http://www.amberweinberg.com/developing-custom-woocommerce-themes/ http://www.amberweinberg.com/developing-custom-woocommerce-themes/

The issue is that I need it to use ajax to alter 2 elements not just one, 问题是我需要使用ajax来改变2个元素而不仅仅是一个元素,

here is the html I am using in the themes fuctions.php file 这是我在主题fuctions.php文件中使用的html

                <div class="cartWrapper"> 
                <a href="#" title="Checkout">
                    <div id="cartsummary"><p>
                        <span class="cart-bubble cart-contents"><a class="cart-bubble cart-contents"><?php echo sprintf(_n('%d', '%d', $woocommerce->cart->cart_contents_count, 'woothemes'), $woocommerce->cart->cart_contents_count);?></a>
                <?php if($woocommerce->cart->get_cart_url() != ''){ $cart=$woocommerce->cart->get_cart_url();}
                else {$cart = home_url().'/cart/';};
                ?></span> 
                    </div> 
                </a>
                <div id="carttotal">
                    <div id="cartprice">
                    <p>
                        <a class="cart-total"><?php echo $woocommerce->cart->get_cart_total() ?></a>
                    </p>
                    </div> 
                    <a class="button" href="#" title="Checkout" type="button">View Basket</a>
                </div>
            </div>

and the code to auto update the cart without refresh: 以及无需刷新即可自动更新购物车的代码:

    // Ensure cart contents update when products are added to the cart via AJAX (place the following in functions.php)
add_filter('add_to_cart_fragments', 'woocommerce_header_add_to_cart_fragment');

function woocommerce_header_add_to_cart_fragment( $fragments ) {
    global $woocommerce;
    ob_start();
    ?>
    <a class="cart-bubble cart-contents"><?php echo sprintf(_n('%d', '%d', $woocommerce->cart->cart_contents_count, 'woothemes'), $woocommerce->cart->cart_contents_count);?></a>
    <a class="cart-total"><?php echo $woocommerce->cart->get_cart_total() ?></a>
    <?php

    $fragments['a.cart-contents a.cart-total'] = ob_get_clean();

    return $fragments;

}

The issue is that whilst this works it produces a long list of cart totals and items in the cart which I have to hide using css style oveflow:hidden on the relevant element. 问题是,虽然这有效,但它会在购物车中生成一长串购物车总数和物品,我必须使用css样式隐藏oveflow:隐藏在相关元素上。 Presumably this is because I have coded the ajax element wrongly, can anyone point me in the right direction? 大概这是因为我错误地编码了ajax元素,有人能指出我正确的方向吗?

Thanks 谢谢

Try this: 尝试这个:

Functions.php 的functions.php

add_filter('add_to_cart_fragments', 'woocommerce_header_add_to_cart_fragment');

function woocommerce_header_add_to_cart_fragment( $fragments ) 
{
    global $woocommerce;
    ob_start(); ?>

    <a class="cart-contents" href="<?php echo $woocommerce->cart->get_cart_url(); ?>" title="<?php _e('View your shopping cart', 'woothemes'); ?>"><?php echo sprintf(_n('%d item', '%d items', $woocommerce->cart->cart_contents_count, 'woothemes'), $woocommerce->cart->cart_contents_count);?> <?php echo $woocommerce->cart->get_cart_total(); ?></a>

    <?php
    $fragments['a.cart-contents'] = ob_get_clean();
    return $fragments;
}

Cart Code: 购物车代码:

<div class="header_cart">
    <h5><a href="<?php echo $woocommerce->cart->get_cart_url(); ?>" title="<?php _e('View your shopping cart', 'woothemes'); ?>"><?php _e('Shopping Cart', 'home-shopper'); ?></a></h5>
    <div class="cart_contents">
        <a class="cart-contents" href="<?php echo $woocommerce->cart->get_cart_url(); ?>" title="<?php _e('View your shopping cart', 'woothemes'); ?>"><?php echo sprintf(_n('%d item', '%d items', $woocommerce->cart->cart_contents_count, 'woothemes'), $woocommerce->cart->cart_contents_count);?> <?php echo $woocommerce->cart->get_cart_total(); ?></a>
    </div>
</div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM