我正在尝试使用 WooCommerce's Layered Nav attribute filter sidebar widget 在WooCommerce商店中过滤约30,000种产品 . 这需要使用预定义的产品属性分类,而不是在每个产品的基础上使用自定义属性 .
商店中的每个产品都具有导入的自定义'Brand'属性 . 在导入产品之前,我在wp-admin中创建了一个名为 'Brand' ( pa_brand )的属性分类 . 但是,导入的产品尚未将品牌属性(和术语名称)添加到品牌( pa_brand )分类中 . 相反,所有产品都有一个名为 'Brand' 的自定义属性,该属性未链接到 pa_brand 分类法 .
Does anyone know how to convert custom product attributes into defined attributes within the pre-defined taxonomy (with terms not yet created)?
我假设我需要运行一个执行以下操作的PHP脚本,但不知道我是否错过了任何步骤:
-
获取数据库中所有产品的ID数组
-
遍历每个产品ID(foreach)
来自每个产品ID的 -
get_attributes() - 这将返回自定义'Brand'属性(还没有pa_brand分配)
-
检查:如果品牌术语已存在于pa_brand分类中,则不执行任何操作;如果没有,请将该术语添加到pa_brand分类中
-
将产品分配给pa_brand分类中的术语
-
删除旧的自定义品牌产品属性
我不确定如何最好地执行此操作,因此非常感谢任何帮助 .
PS:说明'custom attributes'与分类中定义的属性之间的区别,
我在WooCommerce中编辑产品时添加了 2 screenshots below 它们的不同之处 . 请注意,如果不是来自定义的分类,则可以更改属性的名称 .
分类中定义的属性:
自定义属性:
谢谢
1 回答
看起来有人之前已经这样做了 - https://gist.github.com/birgire/0ed300ae4436fcaf508c