2016-04-22 92 views
2

我在我的子主題中創建了購物車模板的副本,並對購物車行爲進行了一些自定義更改(如hibr.com中的CSS購物車)。我有這些車相關的片段在我的header.php:WooCommerce購物車qty按鈕僅在重新加載後顯示

<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; ?> 

不幸的是,好像只要將產品添加到購物車,「錯誤」車是因爲沒有量過的按鈕顯示「 - +「被顯示。刷新頁面後,購物車顯示數量按鈕: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驗證。

謝謝!

+0

嘗試過尋找woocommerce鉤與woocommerce_before_cart ...或woocommerce_cart_ ...或woocommerce_after_cart開始後...在add_action()和add_filter()函數中。你不用你的頭部迷你車? – LoicTheAztec

回答

0

我已經解決了覆蓋量,input.php這樣後顯示問題:

<div class="quantity buttons_added"> 
 
<input type="button" value="-" class="minus"> 
 
\t <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給予數量按鈕觸發,以及:

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錯了?

謝謝!

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(); 
 
    } 
 
});

相關問題