кнопка минус и плюс не работает после обновления корзины - PullRequest
0 голосов
/ 30 марта 2020

Я копирую и вставляю этот файл (глобальный / количество-ввод. php) в каталог моей темы. И сделал эти изменения

количество-ввод. php

<div class="quantity">
        <?php do_action( 'woocommerce_before_quantity_input_field' ); ?>
        <label class="screen-reader-text" for="<?php echo esc_attr( $input_id ); ?>"><?php echo esc_attr( $label ); ?></label>
    <button type="button" class="minus" >-</button>
        <input
            type="number"
            id="<?php echo esc_attr( $input_id ); ?>"
            class="<?php echo esc_attr( join( ' ', (array) $classes ) ); ?>"
            step="<?php echo esc_attr( $step ); ?>"
            min="<?php echo esc_attr( $min_value ); ?>"
            max="<?php echo esc_attr( 0 < $max_value ? $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' ); ?>"
            size="4"
            placeholder="<?php echo esc_attr( $placeholder ); ?>"
            inputmode="<?php echo esc_attr( $inputmode ); ?>" />
          <button type="button" class="plus" >+</button>
        <?php do_action( 'woocommerce_after_quantity_input_field' ); ?>
    </div>

jquery

   jQuery(document).ready(function(){

      $('.product-quantity').on( 'click', 'button.plus, button.minus', function() {

         // Get current quantity values
         var qty = $( this ).parent().find('input');
         var val   = parseFloat(qty.val());
         var max = parseFloat(qty.attr( 'max' ));
         var min = parseFloat(qty.attr( 'min' ));
         var step = parseFloat(qty.attr( 'step' ));

         // Change the value if plus or minus
         if ( $( this ).is( '.plus' ) ) {
            if ( max && ( max <= val ) ) {
               qty.val( max );
            } else {
               qty.val( val + step );
            }
         } else {
            if ( min && ( min >= val ) ) {
               qty.val( min );
            } else if ( val > 1 ) {
               qty.val( val - step );
            }
         }


  $('button[name="update_cart"]' ).prop( 'disabled', false );
$('button[name="update_cart"]' ).trigger("click");

});

   });


   jQuery(document).ajaxComplete(function(){
       jQuery('.quantity').off('click', '.plus').on('click', '.plus', function(e) {        
           $input = jQuery(this).prev('input.qty');
           var val = parseInt($input.val());
           $input.val( val+1 ).change();
       });



           jQuery('.quantity').off('click', '.minus').on('click', '.minus',
           function(e) {
           $input = jQuery(this).next('input.qty');
           var val = parseInt($input.val());
           if (val > 1) {
               $input.val( val-1 ).change();
           }
       });
   });

работает нормально, но проблема в том, когда я обновляю любой продукт на странице корзины это больше не работает. Я попытался добавить функцию ajaxcomplete тоже безуспешно. есть какое-то решение? Пожалуйста, поправьте меня, если я сделал что-то не так? Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...