2017-08-08 245 views
0

我想在数量发生变化时自动更新购物车。我在functions.php中得到了这个工作代码,但它仅适用于第一次点击。如何调整它,使其适用于每次点击?点击WooCommerce自动更新购物车

add_action('wp_footer', 'cart_update_qty_script'); 
function cart_update_qty_script() { 
    if (is_cart()) : 
    ?> 
    <script> 
     jQuery('div.woocommerce').on('click', '.quantity .button', function(){ 
      jQuery("[name='update_cart']").trigger("click"); }); 
    </script> 
    <?php 
    endif; 
} 
+0

使用这个插件还有:HTTPS://wordpress.org/plugins/woocommerce-ajax-cart/ –

回答

1

您可以使用像下面这样的插件。

https://wordpress.org/plugins/woo-update-cart-on-quantity-change/

而且这个插件是为你工作。

https://wordpress.org/plugins/woocommerce-ajax-cart/

请使用插件为您的安全起见,因为插件中每一个WordPress版本和woocommerce版本的作品。

OR

您可以尝试像下面稍作修改自定义代码。

add_action('wp_footer', 'cart_update_qty_script'); 
function cart_update_qty_script() { 
    if (is_cart()) : 
     ?> 
     <script type="text/javascript"> 
      jQuery(document).on("click", "div.woocommerce .quantity .button", function(e) { 
       jQuery("[name='update_cart']").trigger("click"); 
      }); 

OR 
      jQuery("body").on("click", "div.woocommerce .quantity .button", function(e) { 
       jQuery("[name='update_cart']").trigger("click"); 
      }); 
     </script> 
     <?php 
    endif; 
} 
+0

感谢的答案,但我不会使用不能很好地支持插件坏评级。 您的代码仅适用于第二次点击。那么没有更多的发生。 –

+0

@KrystianManthey请检查我编辑的答案。尝试一下,让我知道。 – Jalpa

+0

这两个版本的第一次点击更新,但然后点击是不可能的(数量不会改变)。 –

1

尝试一下这样的..

add_action('wp_footer', 'cart_update_qty_script'); 
function cart_update_qty_script() { 
    if (is_cart()) : 
    ?> 
    <script> 
     jQuery('body').on('click', 'div.woocommerce .quantity .button', function(){ 
      jQuery("[name='update_cart']").trigger("click"); 
     }); 
    </script> 
    <?php 
    endif; 
} 

我这是因为HTML被替换,div.woocommerce点击事件不再有......如果你连接它的身体,它可能工作...

+0

不幸的是同样的问题,但多谢告诉为什么会发生这种情况 –

+0

我试过了代码,它在我的最后工作。你有我们可以检查的链接吗?或者如果在点击 – Reigel

+0

时出现错误,请查看浏览器的控制台我正在尝试登台网站(pw-protected)。但是你可以在ergotopia.de上看到问题。问题在于,只有每第二次点击才会触发自动更新。功能是: add_action('wp_footer','cart_update_qty_script'); 功能cart_update_qty_script(){ 如果(is_cart()):。 > <?php endif; } –

0

由于我不知道你的HTML结构,所以我建立了一个样本jQuery的店面主题工作。

这里是一个示例代码。

add_action('wp_footer', 'cart_update_qty_script'); 
function cart_update_qty_script() { 
    if (is_cart()) : 
    ?> 
    <script> 
     jQuery('div.woocommerce').on('keyup', '.quantity .qty', function(){ 
      //console.log('clicked'); 
      jQuery("[name='update_cart']").trigger("click"); }); 
    </script> 
    <?php 
    endif; 
} 
+0

也许是因为我们有最新的woocommerce,wordpress等 有了这段代码,没有更新。但是,谢谢你试图帮助! –

+0

我已经在Woo'Version 3.1.1'和WP'Version 4.8.1'中测试过。你能分享你的网站网址吗? –

+0

我尝试在分段网站(pw保护)。但是你可以在ergotopia.de上看到类似的问题。问题在于,只有每第二次点击才会触发自动更新。功能是:add_action('wp_footer','cart_update_qty_script');函数cart_update_qty_script(){if(is_cart()):?><?php endif; } –

相关问题