我正试图在woocommerce中获得顶级购物车以自动更新数量和价格。
我在某种程度上通过使用它作为模板来实现它:
http://www.amberweinberg.com/developing-custom-woocommerce-themes/
问题在于我需要使用ajax来改变2个元素而不仅仅是一个,
这是我在主题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>
以及无需刷新即可自动更新购物车的代码:
// 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;
}
问题在于,虽然这有效,但它会在购物车中生成一长列购物车总数和商品,我必须使用css样式隐藏oveflow:隐藏在相关元素上。大概这是因为我错误地编码了ajax元素,有人能指出我正确的方向吗?
由于
答案 0 :(得分:14)
试试这个:
<强>的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;
}
购物车代码:
<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>