Woocommerce 2.6.2 adds disabled attribute to update cart button

牧云@^-^@ 提交于 2021-02-07 09:49:44

问题


I am using Wordpress 4.5.3 and Woocommerce 2.6.2 .

Code inside woocommerce/cart/cart.php

 <input type="submit" class="button" id="update_cart_button" name="update_cart" value="<?php esc_attr_e( 'Update Cart', 'woocommerce' ); ?>" />

    <?php do_action( 'woocommerce_cart_actions' ); ?>

    <?php wp_nonce_field( 'woocommerce-cart' ); ?>

Which generates following html:

<input type="submit" class="button" id="update_cart_button" name="update_cart" value="Winkelmand bijwerken" disabled="">
<input type="hidden" id="_wpnonce" name="_wpnonce" value="847e1da0f8">
<input type="hidden" name="_wp_http_referer" value="/winkelmand/">

So the strange thing is that inside the input field the 'disabled' attribute is added. When i remove the disabled value with developer tools i can click the button and the cart is updated correctly.

So i want to remove this attribute, what i have tried:

Attempt 1

<script>
 document.getElementById('update_cart_button').disabled = false;
</script>

Attempt 2

<script>
 jQuery('#update_cart_button').prop('disabled', false);
</script>

Attempt 3

<script>
 jQuery('#update_cart_button').removeAttr('disabled'); 
</script>

but none of the solutions remove the disabled attribute.


回答1:


You can try below code-

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



回答2:


I've had the same issue. I think my way to solve it is not the best but it should work for the time we wait for the patch so you may want to hear it.

Go into

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

Its a bit confusing but you can search for

.prop("disabled",!0)},input_changed

Change the !0 into a !1

Save and upload the file after this the button should work fine again. there is one Problem the function which is enable the button after a change, has been taken out the button is now always enabled. Its like i said a temporarily solution after the patch there should be no need for further edits.

Greets Lukas




回答3:


If you want to enable the button after the quantity of products is changed you can do something like this:

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

where the element .control-prod is where you change the number of products. You can also use change insted of click.




回答4:


This code works for me :

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



回答5:


Perfect solution by Wallace! But actually it had a flaw that it removed the 'disabled' property only after two clicks. I have updated the code so this will work eveytime you click + or -

Add this to header.php between head tags:

<script>
    $(document).on("click",".bw-quantity", function (e) {
        $('input[name="update_cart"]' ).removeProp( 'disabled');
    });
</script>


来源:https://stackoverflow.com/questions/38454434/woocommerce-2-6-2-adds-disabled-attribute-to-update-cart-button

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!