I noticed that the woocommerce add to cart button was not working on some mobile devices and browsers on a client website. So let’s start debugging…
I tested this on iPhone 5c with Safari and the product did not get added to the cart. Using the Safari developer tools I managed to detect an error in some JavaScript that was not showing up in any other browsers on the desktop running mobile user agents.
Error: Syntax error, unrecognized expression: form.cart input[name="variation_id] |
The error seems to be generating from this file:
/wp-content/plugins/synmedia-woocommerce-rewards/assets/js/jquery.swr.product.js
There is an error in this file from the plug-in: Syn Media WooCommerce Rewards, version 2.3.6
On line 9 both quotes are missing arround the variable: variation_id
function swr_variations_options_changed(){ if($('form input[name=variation_id]').val() != ''){ swr_options_changed(); } } |
On line 18 and 19
variation_id variable is missing the closing quote (“) on both lines.
function swr_options_changed(){ var product_id = 0; var variation_id = 0; var qtys = ''; if( $( 'form.cart input[name="variation_id]' ).length > 0 ){ v ariation_id = $('form.cart input[name="variation_id]').val(); ..... |
Changing the above code with the correct quotes fixed the issue on the website. Now also mobile devices can add products to the shopping cart.