我已经在我的子主题中创建了购物车模板的副本,并对购物车行为进行了一些自定义更改(像hibr.com中的CSS侧购物车)。我在header.php中有这些与购物车相关的片段:
<div class="close-me2"></div>
<?php echo do_shortcode('[woocommerce_cart]'); ?>
<div class="cart-outer" data-user-set-ocm="<?php echo $userSetSideWidgetArea; ?>">
<div class="cart-menu-wrap">
<div class="cart-menu">
<a class="cart-contents" href="<?php //echo $woocommerce->cart->get_cart_url(); ?>"><div class="cart-icon-wrap"><i class="icon-salient-cart"></i> <div class="cart-wrap"><span><?php echo $woocommerce->cart->cart_contents_count; ?> </span></div> </div></a>
</div>
</div>
<div id="side-cart">
<div class="close-me2"></div>
<?php echo do_shortcode('[woocommerce_cart]'); ?>
<?php if ( is_active_sidebar( 'sidebar-4' ) ) : ?>
<div class="widget-area">
<?php dynamic_sidebar( 'sidebar-4' ); ?>
</div>
<?php endif; ?>
不幸的是,似乎每当向购物车添加产品时,&#34;错误&#34;从没有数量按钮&#34; - +&#34;显示。刷新页面后,将使用数量按钮显示购物车:http://screencast.com/t/gzkb6QPfz
我也安装了这个插件:wordpress.org/plugins/woocommerce-ajax-add-to-cart-for-variable-products/changelog /
这些是我自己添加的自定义更改,因为我的副驾驶需要被触发:
// Changes button classes
$thisbutton.addClass( 'added' );
var rightVal = 0; // base value
$('#side-cart').animate({right: rightVal + 'px'}, {queue: false, duration: 500});
$('.cart-outer a').attr("href", "javascript:void(0)");
$('#side-cart .woocommerce').removeAttr('style');
$('#side-cart .widget-area').removeAttr('style');
$('.cart_empty3').attr('style', 'display:none !important;');
在我看来,在将产品添加到购物车后,某些脚本无法正确加载,但我不知道从哪里开始查找错误。
如果您有任何想法,请告诉我。我会在需要时分享网站的链接,因为我目前正在运行http auth。
谢谢!
答案 0 :(得分:0)
我在覆盖了quantity-input.php之后解决了显示问题:
<div class="quantity buttons_added">
<input type="button" value="-" class="minus">
<input type="number" step="<?php echo esc_attr( $step ); ?>" min="<?php echo esc_attr( $min_value ); ?>" max="<?php echo esc_attr( $max_value ); ?>" name="<?php echo esc_attr( $input_name ); ?>" value="<?php echo esc_attr( $input_value ); ?>" title="<?php echo esc_attr_x( 'Qty', 'Product quantity input tooltip', 'woocommerce' ) ?>" class="input-text qty text" size="4" />
<input type="button" value="+" class="plus"></div>
</div>
并使用此jquery为qty按钮提供触发器:
jQuery(document).ready(function($){
$('.quantity').on('click', '.plus', function(e) {
$input = $(this).prev('input.qty');
var val = parseInt($input.val());
$input.val( val+1 ).change();
});
$('.quantity').on('click', '.minus',
function(e) {
$input = $(this).next('input.qty');
var val = parseInt($input.val());
if (val > 0) {
$input.val( val-1 ).change();
}
});
});
然而现在问题仍然是在将产品添加到购物车后,只有在重新加载页面后才能点击数量按钮“+”和“ - ”。
在我看来,jquery没有正确加载。你对此有所了解还是我的jquery错了?
谢谢!
答案 1 :(得分:0)
更新
我通过像这样修改jQuery解决了这个问题:
jQuery(document).on('click', '.quantity .plus', function(e) {
$input = jQuery(this).prev('input.qty');
var val = parseInt($input.val());
$input.val(val + 1).change();
}).on('click', '.quantity .minus', function(e) {
$input = jQuery(this).next('input.qty');
var val = parseInt($input.val());
if(val > 0) {
$input.val(val - 1).change();
}
});