【发布时间】: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