Woocommerce 2.6.2 agrega un atributo desactivado para actualizar el botón del carro

Estoy usando WordPress 4.5.3 y Woocommerce 2.6.2 .

Código dentro de woocommerce / cart / cart.php

  <input type="submit" class="button" id="update_cart_button" name="update_cart" value="" />   

Que genera después de html:

    

Entonces, lo extraño es que dentro del campo de entrada se agrega el atributo ‘deshabilitado’. Cuando elimino el valor deshabilitado con las herramientas de desarrollador, puedo hacer clic en el botón y el carro se actualiza correctamente.

Por lo tanto, quiero eliminar este atributo, lo que he intentado:

Intento 1

  document.getElementById('update_cart_button').disabled = false;  

Intento 2

  jQuery('#update_cart_button').prop('disabled', false);  

Intento 3

  jQuery('#update_cart_button').removeAttr('disabled');  

pero ninguna de las soluciones elimina el atributo deshabilitado.

Puedes probar a continuación código

 jQuery(document).ready(function() { jQuery( '.shop_table.cart' ).closest( 'form' ).find( 'input[name="update_cart"]' ).removeProp( 'disabled'); }); 

He tenido el mismo problema. Creo que mi manera de resolverlo no es la mejor, pero debería funcionar para el momento en que esperemos el parche, por lo que es posible que desee escucharlo.

Entrar en

wp-content / plugins / woocommerce / assets / js / frontend / cart.min.js

Es un poco confuso pero puedes buscar

.prop (“deshabilitado”,! 0)}, input_changed

Cambiar el ! 0 en un ! 1

Guarde y cargue el archivo después de que el botón vuelva a funcionar bien. Hay un problema: la función que habilita el botón después de un cambio, se ha eliminado, el botón ahora está siempre habilitado. Es como si dijera una solución temporal después del parche, no debería haber más ediciones.

Saluda a Lukas

Si desea habilitar el botón luego de cambiar la cantidad de productos, puede hacer algo como esto:

 $(document).on("click",".woocommerce-cart .control-prod", function (e) { $( ".woocommerce-cart .control-prod" ).click(function() { $('input[name="update_cart"]' ).removeProp( 'disabled'); }); }); 

donde el elemento .control-prod es donde se cambia el número de productos. También puede usar el cambio en lugar de hacer clic.

Este código funciona para mí:

 jQuery (ventana) .on ('load', function () {
  jQuery ('.shop_table.cart') .find ('input [name = "update_cart"]') .prop ("disabled", false);
 });

¡La solución perfecta de Wallace! Pero en realidad tenía un defecto que eliminaba la propiedad ‘desactivada’ solo después de dos clics. He actualizado el código para que funcione cada vez que haga clic en + o –

Agregue esto a header.php entre tags principales: