2016-04-22 6 views
2

私は子供のテーマでカートテンプレートのコピーを作成し、カートの動作(hibr.comのようなCSSサイドカート)をカスタム変更しました。私は私のheader.phpの中でこれらのカート関連のスニペットを持っている:WooCommerce Cart数量ボタンは再ロード後にのみ表示されます

<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_before_cart ...またはwoocommerce_cart_ ...またはwoocommerce_after_cartで始まるwoocommerceフックの後に見て、あまりにも試してみてください... 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(); 
 
    } 
 
});

関連する問題