将 WooCommerce 自定义产品属性转换为定义的产品属性

Jam*_*mie 6 php mysql wordpress attributes woocommerce

我正在尝试使用WooCommerce 的分层导航属性过滤器侧边栏小部件在 WooCommerce 商店中过滤约 30,000 种产品。这需要使用预定义的产品属性分类,而不是在每个产品的基础上使用自定义属性。

商店中的每个产品都有一个导入的自定义“品牌”属性。在导入产品之前,我在 wp-admin 中创建了一个名为'Brand'( pa_brand)的属性分类法。但是,进口产品尚未将其品牌属性(和术语名称)添加到品牌 ( pa_brand) 分类法中。相反,所有产品都有一个名为'Brand'未链接到pa_brand分类法的自定义属性。

有谁知道如何将自定义产品属性转换为预定义分类法中的定义属性(尚未创建术语)?

我假设我需要运行一个执行以下操作的 PHP 脚本,但不知道我是否遗漏了任何步骤:

  1. 获取数据库中所有产品的 ID 数组
  2. 循环遍历每个产品 ID(foreach)
    • get_attributes() 从每个产品 ID - 这将返回自定义“品牌”属性(还没有 pa_brand 分配)
    • 检查:如果 pa_brand 分类法中已经存在品牌术语,则不执行任何操作;如果不是,则将该术语添加到 pa_brand 分类法中
    • 将产品分配给 pa_brand 分类法中的术语
    • 删除旧的自定义品牌产品属性

我不确定如何最好地执行此操作,因此非常感谢任何帮助。

PS:为了说明“自定义属性”和分类法中定义的属性之间的区别,
我在下面添加了2 个屏幕截图,说明在 WooCommerce 中编辑产品时它们有何不同。请注意,如果不是来自定义的分类法,如何更改属性的名称。

分类中定义的属性:

分类中定义的属性

自定义属性:

自定义属性

谢谢