【问题标题】:Reload page after Update cart button clicked(on cart page) Woocommerce点击更新购物车按钮后重新加载页面(在购物车页面上) Woocommerce
【发布时间】:2017-03-01 02:51:44
【问题描述】:

当点击更新按钮并触发更新时,有人可以帮我编写钩子或 jQuery 代码以重新加载购物车页面吗? Woo-commerce 是插件!

【问题讨论】:

  • 为什么需要这个?请编辑您的答案以详细说明。此外,请考虑添加您的研究以及您尝试过的内容,并解释为什么这没有达到您的预期。
  • @helgatheviking 事情是这样的:我正在修复一些以前让开发人员很糟糕的主题。在购物车页面上,我有每个购物车产品数量按钮和按钮更新购物车。当我第一次加载购物车页面并更改产品数量并单击更新购物车时,我看到它通过 Ajax 更新。之后,第一次更新操作数量按钮不起作用。加号和减号不再是字段中的 inc/dec 值。然后我意识到,当我在浏览器中重新加载购物车页面时,它又可以工作了。我知道这可能不是优雅的解决方案,但我只想重新加载。
  • 我很同情试图修复一个糟糕的主题。我自己之前做过。与其试图找出主题出了什么问题并将其用作创可贴,我建议您只删除主题的模板覆盖并使用默认的 WC 模板。也许也删除了与购物车有关的任何主题的自定义代码/脚本。回到默认值,然后只添加最低限度。
  • 如果您需要加号/减号按钮,我刚刚发布了一个gist,可能会有所帮助。

标签: jquery wordpress woocommerce


【解决方案1】:

如果更新功能是自定义的而不是 woocommerce 默认的,那么可能发生的情况是在按下按钮时触发 ajax 的 javascript 功能最初绑定到该事件,但是当通过 ajax 重新加载元素时,该事件不受这些新元素的约束。

默认情况下,woocommerce 在通过 ajax、updated_wc_div 和 updated_cart_totals 更新购物车时会触发两个事件。您可以将函数绑定到这些事件中的任何一个以重新加载页面,如下所示:

jQuery( document.body ).on( 'updated_cart_totals', function() {
    // code to reload page here
}); 

但在我个人看来,这不是最好的方法。如果自定义完全搞砸了 woocommerce 的默认购物车功能(这里似乎就是这种情况)。最好修复它们以恢复默认功能,或者如果无法从默认模板开始并从那里重建自定义项(以不干扰核心功能的方式)。

【讨论】:

    【解决方案2】:

    我认为您的模板可能有错误。更新后旧版本的 woocommerce 会重新加载购物车。但是在较新的版本中,有一个 ajax 操作绑定到它。此操作会阻止默认表单操作并触发 ajax。

    可能脚本会阻止您的表单,但 ajax 操作失败...您使用标准主题还是自定义主题?

    尝试更新主题和插件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-18
      • 2020-05-09
      • 1970-01-01
      • 2021-04-29
      • 1970-01-01
      相关资源
      最近更新 更多