【问题标题】:WooCommerce returns number of products in category inconsistentlyWooCommerce 不一致地返回类别中的产品数量
【发布时间】:2017-07-03 00:36:11
【问题描述】:

在一个带有 WooCommerce 的 WordPress 网站上,我使用此功能来查询一个类别中的产品数量

 $check_products = get_terms( array( 'taxonomy' => 'product_cat', 'include' => $element->object_id ) );

这是在 menu_walker 类中,用于将产品数量添加到菜单选项中的类别名称中,例如 New Products (10)。该网站销售独特的产品,因此在售出一件商品后,该商品就缺货了。

这工作正常,但安装 WPML 后计数会有所不同。该站点具有默认语言和 WPML 翻译版本。当您使用默认语言购买商品时,菜单选项将显示正确调整的产品数量。切换到WPML翻译版本,数字不变(太高了)。

当您从 WPML 翻译版本购买东西然后切换到默认语言版本时,也会发生同样的错误。

同一个函数如何返回不同的值?

如果已经尝试在 WooCommerce 的工具菜单中清除/重置信息但还没有成功。

【问题讨论】:

  • 我认为问题可能在于,一旦安装了 WPML,产品就会存在两次,每种语言一次。你能证实这一点吗?我认为如果他们在不同的语言上有不同的 ID,那就意味着他们有。
  • 你是对的,每个产品都有两条记录。当您浏览到任何一种语言的类别页面时,仍然很奇怪,它显示了正确的产品。同样在后端,它显示产品的正确库存。
  • 所以在你只从一种语言购买后,它会在后端显示两种语言的 0 种产品?编辑:当我说 0 时,我的意思是 0 库存
  • 是的。我刚刚检查了两个类别 ID 的数据库 termmeta 表,发现一个的 product_count_product_cat 设置为 5(这是正确的),另一个显示 7。所以这是错误,现在我必须找出如何获取那些同步的:(
  • @LL 感谢您的帮助。我现在知道,在“错误”语言中按术语计数时,事情会正确调整。否则它将无法正常工作。你会称之为 WooCommerce 或 WPML 的错误吗

标签: php wordpress woocommerce


【解决方案1】:

在与 WPML 支持来回反复几次后,他们愿意将问题升级到第二线支持。

当有关于此事的消息时会更新这个答案。

简而言之: 当 WooCommerce 在购买后更新类别的 product_count_product_cat 条目时,WPML 不会通知 WooCommerce 对该类别的其他(已翻译)实例执行相同操作。

【讨论】:

    猜你喜欢
    • 2015-01-12
    • 2018-07-23
    • 2016-05-08
    • 2021-05-08
    • 2019-06-20
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多